Data Structure数据结构 课件 第一章
合集下载
数据结构第01章概论.ppt
高等学校精品课程
(第2版)
李云清 杨庆红 揭安全
人民邮电出版社
1
第一章 概述
什么是数据结构 数据类型和抽象数据类型
算法和算法分析
退出
第一章 概述
瑞士著名的计算机科学家Nicklaus Wirth在1976 年出版了一本书,书名为《算法+数据结构 = 程序设 计》,它正说明了数据结构在程序设计中的作用。程序 设计的实质即为计算机处理问题编制一组"指令",首先 需要解决两个问题:即算法和数据结构。算法即处理问 题的策略,而数据结构即为问题的数学模型。
退出
1.1.4数据的运算集合
对于一批数据,数据的运算是定义在数据的逻 辑结构之上的,而运算的具体实现就依赖于数据的 存储结构。
数据的运算集合要视情况而定,一般而言,数据的 运算包括插入、删除、检索、输出、排序等。
插入:在一个结构中增加一个新的结点。
删除:在一个结构删除一个结点。
检索:在一个结构中查找满足条件的结点。
98
I 79
F
(a)城市距离图
A
34
12
B
H9
8
C
G
31
21
E 10
D
I 79
F
(b)联通各城市最小生成树
退出
以上所举例子中的数学模型正是数据结构要讨论 的问题。因此,简单地说,数据结构是一门讨论"描述 现实世界实体的数学模型(非数值计算)及其上的操作 在计算机中如何表示和实现"的学科。
退出
综上所述
对于一个数据结构B=(K,R),必须建立从结点 集合到计算机某个存储区域M的一个映象,这个映象 要直接或间接地表达结点之间的关系R。数据在计算 机中的存储方式称为数据的存储结构。
(第2版)
李云清 杨庆红 揭安全
人民邮电出版社
1
第一章 概述
什么是数据结构 数据类型和抽象数据类型
算法和算法分析
退出
第一章 概述
瑞士著名的计算机科学家Nicklaus Wirth在1976 年出版了一本书,书名为《算法+数据结构 = 程序设 计》,它正说明了数据结构在程序设计中的作用。程序 设计的实质即为计算机处理问题编制一组"指令",首先 需要解决两个问题:即算法和数据结构。算法即处理问 题的策略,而数据结构即为问题的数学模型。
退出
1.1.4数据的运算集合
对于一批数据,数据的运算是定义在数据的逻 辑结构之上的,而运算的具体实现就依赖于数据的 存储结构。
数据的运算集合要视情况而定,一般而言,数据的 运算包括插入、删除、检索、输出、排序等。
插入:在一个结构中增加一个新的结点。
删除:在一个结构删除一个结点。
检索:在一个结构中查找满足条件的结点。
98
I 79
F
(a)城市距离图
A
34
12
B
H9
8
C
G
31
21
E 10
D
I 79
F
(b)联通各城市最小生成树
退出
以上所举例子中的数学模型正是数据结构要讨论 的问题。因此,简单地说,数据结构是一门讨论"描述 现实世界实体的数学模型(非数值计算)及其上的操作 在计算机中如何表示和实现"的学科。
退出
综上所述
对于一个数据结构B=(K,R),必须建立从结点 集合到计算机某个存储区域M的一个映象,这个映象 要直接或间接地表达结点之间的关系R。数据在计算 机中的存储方式称为数据的存储结构。
数据结构 课件 第一章绪论
2010-112010-11-18 4
1.1 数据结构(续) 数据结构(
很多问题求解最后都转化为求解数学方程或数学方程组。 很多问题求解最后都转化为求解数学方程或数学方程组。 在房屋设计或桥梁设计中的结构应力分析 结构应力分析计算可化解为 在房屋设计或桥梁设计中的结构应力分析计算可化解为 线性代数方程组求解的问题 的问题, 线性代数方程组求解的问题, 天天看到的天气预报 它的数学模型是一个环流模式方 天气预报, 天天看到的天气预报,它的数学模型是一个环流模式方 程。 预报人口增长情况的数学模型为微分方程。 情况的数学模型为微分方程 预报人口增长情况的数学模型为微分方程。 当计算机进入非数值计算领域 非数值计算领域, 当计算机进入非数值计算领域,特别是用在管理上的时 候,计算机的操作对象之间的关系就无法用数学方程加以 描述了。 描述了。
按书名
高等数学 理论力学 线性代数 ……
S01 L01 S01 S02 ……
索引表
分类号: 001,003…… 001,003…… 出版单位: 樊映川 002,…….. 002,…….. 出版时间: 华罗庚 004, 004,…… 栾汝书 价格:
…….. ……..
……. …….
按作者名
001,… 001,… 002,…. 002,… 004,… 004,…. ……. …….
2010-112010-11-18
7
例2 - 1
人机对奕问题
树形的数据结 构
……..
……..
2010-112010-11-18
…...
…...
…...
…...
8
例2 - 2
学校问题
树形的数据结 构
刘志刚
部门
…….. ..
1.1 数据结构(续) 数据结构(
很多问题求解最后都转化为求解数学方程或数学方程组。 很多问题求解最后都转化为求解数学方程或数学方程组。 在房屋设计或桥梁设计中的结构应力分析 结构应力分析计算可化解为 在房屋设计或桥梁设计中的结构应力分析计算可化解为 线性代数方程组求解的问题 的问题, 线性代数方程组求解的问题, 天天看到的天气预报 它的数学模型是一个环流模式方 天气预报, 天天看到的天气预报,它的数学模型是一个环流模式方 程。 预报人口增长情况的数学模型为微分方程。 情况的数学模型为微分方程 预报人口增长情况的数学模型为微分方程。 当计算机进入非数值计算领域 非数值计算领域, 当计算机进入非数值计算领域,特别是用在管理上的时 候,计算机的操作对象之间的关系就无法用数学方程加以 描述了。 描述了。
按书名
高等数学 理论力学 线性代数 ……
S01 L01 S01 S02 ……
索引表
分类号: 001,003…… 001,003…… 出版单位: 樊映川 002,…….. 002,…….. 出版时间: 华罗庚 004, 004,…… 栾汝书 价格:
…….. ……..
……. …….
按作者名
001,… 001,… 002,…. 002,… 004,… 004,…. ……. …….
2010-112010-11-18
7
例2 - 1
人机对奕问题
树形的数据结 构
……..
……..
2010-112010-11-18
…...
…...
…...
…...
8
例2 - 2
学校问题
树形的数据结 构
刘志刚
部门
…….. ..
数据结构ppt课件完整版
针对有序数据集合,每次通过中间元素将 待查找区间缩小为之前的一半,直到找到 元素或区间为空。
哈希查找
树形查找
通过哈希函数将数据映射到哈希表中,实 现快速查找。
如二叉搜索树、平衡树等,通过树形结构实 现高效查找。
排序算法分类及实现原理
插入排序
将待排序元素逐个插入到已排序序列中,直到所有元素均插入完毕。
由n(n>=0)个具有相同类型 的数据元素(结点)a1,a2,
...,an组成的有序序列。
同一性
每个元素必须是同一类型的数 据。
有序性
元素之间具有一对一的前驱和 后继关系,即除首尾元素外, 每个元素都有一个前驱和一个 后继。
可变性
线性表的长度可变,即可以插 入或删除元素。
顺序存储结构与链式存储结构比较
定义
用一段连续的存储单元依次存储线性 表的数据元素。
优点
可以随机存取表中任一元素,且存取 时间复杂度为O(1)。
顺序存储结构与链式存储结构比较
• 缺点:插入和删除操作需要移动大量元素,时间 复杂度高;需要预先分配存储空间,容易造成空 间浪费。
顺序存储结构与链式存储结构比较
定义
用一组任意的存储单元存储线性 表的数据元素(这组存储单元可 以是连续的,也可以是不连续的
查找操作
查找指定元素的位置。
遍历操作
访问线性表中的每个元素。
销毁操作
释放线性表占用的存储空间。
03
栈和队列
栈定义及特点
栈(Stack)是一种特殊的线性数据结构,其数据的存 取遵循后进先出(LIFO, Last In First Out)的原则。 栈的特点
具有记忆功能,能保存数据的状态。
栈的基本操作包括入栈(push)、出栈(pop)、查 看栈顶元素(top)等。 只能在栈顶进行数据的插入和删除操作。
03数据结构基本概念PPT课件
数据结构研究的主要内容
①数据元素之间的逻辑关系 ②采用的存储结构 ③对这些数据元素采用何种方式进行操作
2020/11/23
9
例:数据结构——学生成绩表
✓数据元素(学号、姓名、科目、成绩) ✓数据元素之间的关系(逻辑结构) ✓数据元素的存储(物理结构) ✓对数据元素的操作(增、减、查找、修改等)
33
数据结构上的常见操作
遍历、插入、更新、 删除、 查找、 排序 注意:每个问题都有一种和多种算法
找到效率最高的 以最容易理解的方式设计 设计的算法不容易出错或出错情况较少
2020/11/23
34
算法
算法的评价
时间复杂度
代码的执行时间,一般是以代码实际执行的指令数量(条)
空间复杂度
2020/11/23
11
数据的逻辑结构
数据元素之间关系的描述 描述逻辑结构的方法:描述法和图示法 描述法:
二元组 B = ( K, R )
K:元素集合 R:元素间关系的集合
注意:元素间的关系一般抽象为前驱与后继关 系,即表明结构中,一个元素的前一个元素是 谁,它的后一个元素又是谁
2020/11/23
24
索引存储
方法
为放在内存 中的元素建 索引表
K1
立索引表
1
K3
元素可以离 2
散存放
3
K4
通过查索引 4 表找到需要 索引号
K2
的元素
2020/11/23
联想:图书馆的查书卡
0300 0301 0302 0303 0304 0305 0306 0307 0308 0309
25
散列存储
散列存储方法
2020/11/23
《数据结构》课件
第二章 线性表
1
线性表的顺序存储结构
2
线性表的顺序存储结构使用数组来存储元素,
可以快速随机访问元素。
3
线性表的常见操作
4
线性表支持常见的操作,包括插入、删除、 查找等,可以灵活地操作其中的元素。
线性表的定义和实现
线性表是一种数据结构,它包含一组有序的 元素,可以通过数组和链表来实现。
线性表的链式存储结构
线性表的链式存储结构使用链表来存储元素, 支持动态扩展和插入删除操作。
第三章 栈与队列
栈的定义和实现
栈是一种特殊的线性表,只能在一 端进行插入和删除操作,遵循后进 先出的原则。
队列的定义和实现
队列是一种特殊的线性表,只能在 一端进行插入操作,在另一端进行 删除操作,遵循先进先出的原则。
栈和队列的应用场景和操作
哈希表是一种高效的查找数据结构, 通过哈希函数将关键字映射到数组 中,实现快速查找。
排序算法包括冒泡排序、插入排序 和快速排序等,可以根据数据规模 和性能要求选择合适的算法。
结语
数据结构的学习心得 总结
学习数据结构需要掌握基本概念 和常见操作,通过实践和练习加 深理解和熟练度。
下一步学习计划的安 排
在掌握基本数据结构的基础上, 可以进一步学习高级数据结构和 算法,提升编程技能。
相关学习资源推荐
推荐一些经典的数据结构教材和 在线学习资源,如《算法导论》 和LeetCode等。
栈和队列在计算机科学中有许多应 用,如函数调用、表达式求值和作 业调度等。
第四章 树与二叉树
树的定义和性质
树是由节点和边组成的一种非线性数据结构,每个 节点可以有多个子节点。
二叉树的遍历方式
二叉树的遍历方式包括前序遍历、中序遍历和后序 遍历,可以按不同顺序输出节点的值。
数据结构第一章ppt课件
一组操作 – ADT = ( D,S,P )
其中:D 是数据对象, S 是 D 上的关系集, P 是 D 的基本操作集
算法
• 算法 算法是对问题求解过程的一种描述,是 为解决一个或一类问题给出的一个确定 的、有限长的操作序列。重要特性:
– 有穷性 对于任意一组合法的输入值,在执行有穷步 骤之后一定能结束。
– 赋值方式不同
• 对字符指针变量,可用赋值语句赋值 • 字符数组,可在定义时初始化,不能整体赋值
– 指针变量的值是可以改变的
• 数组名代表数组的起始地址,是一个常量,而常 量是不能被改变的
结构体
• 结构体类型与结构体变量的定义 • 结构体变量的引用与初始化 • 结构体指针 • 结构体数组
结构体
– 形式参数和实际参数 – 值传递
函数
• 递归调用
– 一个函数在它的函数体内,直接或间接地调用它自 身
– 例如求N!(n>=0)
long power(int n) { long f; if(n>1) f=power(n-1)*n; else f=1; return (f); }
函数
• 数组作为函数参数
• 数组的定义 • 数组元素的引用 • 数组的元素的初始化 • 应用举例
数组
• 数组的定义 – 数据类型 数组名[常量表达式] – int a[10];
– 下标从0开始 – 数组名代表整个数组的首地址
数组
• 一维数组元素的引用
– 数组名[下标表达式]
• 一维数组的元素的初始化
– 数据类型 数组名[常量表达式]={初值表}
– 使用指向数组的指针变量来引用数组元素
main()
{ int array[10], *pointer=array, i;
其中:D 是数据对象, S 是 D 上的关系集, P 是 D 的基本操作集
算法
• 算法 算法是对问题求解过程的一种描述,是 为解决一个或一类问题给出的一个确定 的、有限长的操作序列。重要特性:
– 有穷性 对于任意一组合法的输入值,在执行有穷步 骤之后一定能结束。
– 赋值方式不同
• 对字符指针变量,可用赋值语句赋值 • 字符数组,可在定义时初始化,不能整体赋值
– 指针变量的值是可以改变的
• 数组名代表数组的起始地址,是一个常量,而常 量是不能被改变的
结构体
• 结构体类型与结构体变量的定义 • 结构体变量的引用与初始化 • 结构体指针 • 结构体数组
结构体
– 形式参数和实际参数 – 值传递
函数
• 递归调用
– 一个函数在它的函数体内,直接或间接地调用它自 身
– 例如求N!(n>=0)
long power(int n) { long f; if(n>1) f=power(n-1)*n; else f=1; return (f); }
函数
• 数组作为函数参数
• 数组的定义 • 数组元素的引用 • 数组的元素的初始化 • 应用举例
数组
• 数组的定义 – 数据类型 数组名[常量表达式] – int a[10];
– 下标从0开始 – 数组名代表整个数组的首地址
数组
• 一维数组元素的引用
– 数组名[下标表达式]
• 一维数组的元素的初始化
– 数据类型 数组名[常量表达式]={初值表}
– 使用指向数组的指针变量来引用数组元素
main()
{ int array[10], *pointer=array, i;
数据结构第一章 绪论PPT课件
28.11.2020
21
算法设计的要求
算法的正确性 l 可读性 l 健壮性 l 高效率和低存储量
例如要求n个数的最大值问题 给出算法如下:
max:=0; for(i=1 ;i<= n ;i++) { scanf("%f", x);
if (x>max) max=x; }
28.11.2020
22
算法描述的工具
算法可用自然语言、框图或高级程序设计语言 进行描述。
类语言是接近于高级语言而又不是严格的高级 语言,具有高级语言的一般语句设施,撇掉语言中 的细节,以便把注意力主要集中在算法处理步骤本 身的描述上。
28.11.2020
23
设计实现算法过程步骤
1. 找出与求解有关的数据元素之间的关系
2. 确定在某一数据对象上所施加运算 3. 考虑数据元素的存储表示 4. 选择描述算法的语言 5.设计实现求解的算法,并用程序语言加以描述。
例如:
树
28.11.2020
8
图状结构或网状结构
定义: 结构中的数据元素之间存在着多对
多的任意关系。
例如:
图
28.11.2020
9
逻辑结构
定义: 数据的逻辑结构是指数据元素之间逻辑关系描述。
l形式化描述: Data_Structure=(D,R)其中D是数据元素的
有限集,R是D上关系的有限集。
28.11.2020
5
集合结构
定义: 结构中的数据元素之间除了同属于
一个集合的关系外,无任何其它关系。
例如:
集合
28.11.2020
6
线性结构
定义: 结构中的数据元素之间存在着一对
数据结构课件Ch1
网络结构
2 3
4
1
2
21
19
11
6
6
33 14
5 18 4
5 3
6
23
数据的逻辑结构
从逻辑关系上描述数据,与数据的存储无关; 从具体问题抽象出来的数据模型; 与数据元素本身的形式、内容无关; 与数据元素的相对位置无关。
描述这类非数值计算问题的数学模型不是数学方程,而是 树、表和图之类的数据结构。 eg.数学模型:数学方程、表格、树、图…
8
地位:
·“数据结构”在计算机科学中是一门综合性的专业基础课。 ·数据结构是介于数学、计算机硬件和计算机软件三者之 间的一门核心课程。 ·数据结构这一门课的内容不仅是一般程序设计(特别是非 数值性程序设计)的基础,而且是设计和实现编译程序、 操作系统、数据库系统及其他系统程序的重要基础。
Data
Structure
1
第1章 绪论
1.1 什么是数据结构 1.2 基本概念和术语 1.3 抽象数据类型的表示和实现 1.4 算法和算法分析
2
计算机的功能: 处理信息(数据,包括数字、字符、声音、 图形、图像等 等)
3
计算机是一门研究用计算机进行信息表示和处理的科学。 信息的表示 信息的处理
20
eg.
树形结构
a
bc
de
图状结构
a bc de
21
Eg.
线性结构
bin
dev
etc
lib
user
树形结构
树
二叉树
1
23 4
2
二叉排序树
1
3
6
9
13
25 6 7 8 9 10 4
数据结构第一章市公开课获奖课件省名师示范课获奖课件
• 6. 【初程P71】 从供选择旳答案中,选 出应填入下面论述 内旳最确切旳解 答,把相应编号写在答卷旳相应栏内。
• 设有4个数据元素a1、a2、a3和a4,对 他们分别进行栈操作或队操作。在进栈 或进队操作时,按a1、a2、a3、a4顺序 每次进入一种元素。假设栈或队旳初始 状态都是空。
• 现要进行旳栈操作是进栈两次,出栈一次,再 进栈两次,出栈一次;这时,第一次出栈得到 旳元素是 A ,第二次出栈得到旳元素是 B 是;
• 类似地,考虑对这四个数据元素进行旳队操作 是进队两次,出队一次,再进队两次,出队一 次;这时,第一次出队得到旳元素是 C , 第二次出队得到旳元素是 D 。经操作后, 最终在栈中或队中旳元素还有 E 个。
• 供选择旳答案:
• A~D:①a1 ②a2 ③ a3 ④a4
• E: ①1 ②2 ③ 3 ④ 0
• 错,线性表是逻辑构造概念,能够顺序 存储或链式存储,与元素数据类型无关。
• ( )2. 在表构造中最常用旳是线 性表,栈和队列不太常用。
• ( × )2. 在表构造中最常用旳是线 性表,栈和队列不太常用。
• 错,不一定吧?调用子程序或函数常用, CPU中也用队列。
• ( )3. 栈是一种对全部插入、删 除操作限于在表旳一端进行旳线性表, 是一种后进先出型构造。
• 二、判断正误(判断下列概念旳正确性, 并作出简要旳阐明。)
• ( )1. 线性表旳每个结点只能是 一种简朴类型,而链表旳每个结点能够 是一种复杂类型。
•
• 二、判断正误(判断下列概念旳正确性, 并作出简要旳阐明。)
• ( × )1. 线性表旳每个结点只能是一 种简朴类型,而链表旳每个结点能够是 一种复杂类型。
第一种字节地址为
数据结构第一章
什么是数 据结构 基本概念 和术语 抽象数据 类型 算法和算 法分析
构在计算机中的表示和实现,故又称“存储结构”
1.2 基本概念和术语(续)
位(bit) :二进制数的一位。是计算机中表示
信息的最小单元。 表示一个数据元素时需要若干个位,这若干 个位组成位串,我们称这种位串为结点(Node)或 元素(Element)。而结点中对应于数据项的子位串 称为数据域(Data Field)。 例:用二进制位(bit)的位串表示数据元素: (321)10 = (501)8 = (101000001)2 A = (101)8 = (001000001)2 元素或结点可以看成是数据元素在计算机中 的映像。 数据元素之间的关系在计算机中有两种不同 的表示形式:顺序映像和非顺序映像,由此得到 两种存储结构:顺序存储结构和链式存储结构。
什么是数 据结构 基本概念 和术语 抽象数据 类型 算法和算 法分析
算法: ? 基本操作是“比较两个(名字) 字符串是否相等”
1.1什么是数据结构(续)
算法的设计,依赖于计算机如何存储人的名 字和对应的电话号码,或者说依赖于名字和其电 话号码的结构。 数据的结构,直接影响算法的选择和效率。 上述的问题是一种数据结构问题。可将名字 和对应的电话号码设计成:二维数组、表结构、 向量。 假定名字和其电话号码逻辑上已安排成N元 向量的形式,它的每个元素是一个数对(ai,bi), 1≤i≤n 数据结构还要提供每种结构类型所定义的各 种运算的算法。
什么是数 据结构 基本概念 和术语 抽象数据 类型 算法和算 法分析
姓 名学 号班 号性别出生日期入学成绩 年月日 原子项 称之为组合项
1.2 基本概念和术语(续)
数据对象(Data Object) :性质相同的数 据元素的集合。是数据的一个子集。 例如:在学生信息处理系统中,所处 理的所有学生信息的集合就是一个数据对 象。 数据结构(Data Structure) :相互之间 存在的一种或多种特定关系的数据元素的 集合。 数据结构是由数据对象及其相互之间 的关系两大部分组成。
201009_数据结构(第1章).ppt
姓名
李明 王刚 …
代数
90 84.5 …
216 220
0001 李明
224
228 232
80.5
90
对于这种含有多个数据项的数据元素,每个 数据项在结点中的对应部分称为数据域。
236
1.2 基本概念和术语
下面再来研究如何在计算机中表示数据元素之间的关系。共有两种 表示方法,一种是顺序映象,另一种是非顺序映象。
O(n3)
O(n2)
立方阶
平方阶 算法执行时间的这种度量称为算法的时间复杂度,它反映了当n增大 时,算法的执行时间的增长速度。 如果算法的基本操作语句的频度始终是常数,则该算法的时间复杂 度记为O(1),称为常量阶。常用的时间复杂度有: O(1)、 O(logn)、 O(n)、O(nlogn)、O(n2)、O(n3)、O(2n)
1.2 基本概念和术语
9.结点和数据域 一个数据元素在计算机中的表示称为结点,常由若干字节构成。 例一、 DS=(D,R) 200 王五 其中, D={张三、李四、王五} 204 R={r} 208 r={<王五,李四>,<李四,张三> } 例二、 期末成绩单
212 语文
80.5 85 …
学号
0001 0003 …
1.2 基本概念和术语
4.数据对象 数据对象是具有相同构成的数据元素的集合,是数据的一个子集。 学号 姓名 语文 代数 某班的期末成绩单 0001 80.5 90 李明 数组 0003 85 84.5 王刚 自然数数据对象 … … … … 5.数据结构 数据结构是相互之间存在多种特定关系的具有相同构成的数据 元素的有限集合。 由此看出,数据结构首先是一个数据对象, D={di | 1≤i ≤n, n≥0}; 另外,D中元素之间存在多种特定关系, R={rj | 1≤j ≤m, m≥0}, rj为D上的某个二元关系。于是,数据结构可表示为: DS=(D,R)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.4.1.1 Definition Algorithm is a set of finite rules which defined a sequence of operations to solve a given problem. 1.4.1.2 Characteristic Finiteness Doubtlessness Feasibility Input Output
1.3.2 Operations in Data Structure
• Insertion
• Deletion • Update/Modification • Retrieving/Search • Sorting
1.4 Algorithm and Efficiency 1.4.1 Algorithm
1.4.3 Measurement of Algorithm Analysis
1.4.3.1 Method Estimate in advance Test after the events 1.4.3.2 Guide Line Time Complexity Space Complexity 1.4.3.3 O(f(n)) if exist constant c, when n > n0, f(n) ≤ cg(n) Then T(n)= O(f(n))= O(g(n))
1.4.1.3 Description Natural Language Formalized Language Program Flow Chart
1.4.2 Algorithm Analysis
Correctness Readability Robustness Time and Space Efficiency
Data Structure
Zhuang Lei ielzhuang@
Chapter 1 Introduction
1.1 History of Data Structure 1.2 Contents of Data Structure 1.3 Basic Term and Operation
1.4 Algorithm and Efficiency
1.1 History of Data Structure
1.2 Applications of Data Structure
Examples:
Ex1: Scientific Calculation——Finite Element Method
∵Kij is a positive definite symmetric matrix ∴kij = kji then
k11 k 21 ... k n1 k12 k 22 ... kn 2 ... ... ... ... k1n k11 k2n k 21 ... ... k nn k n1 0 k 22 ... kn 2 ... ... ... ...
' 0 k11 0 0 ... ... k nn 0
0 k 22 ... 0
'
... ... ... ...
0 0 ... ' k nn
∴ only the elements on the diagonal need to store
We can model this problem with a mathematical structure known as a Graph.
Conclusion
Data Structure is a subject of studying the computer operational objects and their relationships in the non-numeric calculative program design.
} resultname ADT of process: description
Example: ADT Triplet { Data Objects: D={ e1, e2, e3 | e1, e2, e3 ∈ ElemSet } Data Relationships: R1= { < e1, e2 >, < e2, e3 > } Elementary Processes: InitTriplet ( &T, v1, v2, v3 ) result: Triplet T which elements e1, e2 and e3 assigned value v1, v2 and v3 constructed. DestroyTriplet ( &T ) condition: Triplet T exists. result: Triplet T destroyed. Get ( T, i, &e ) condition: Triplet T exists, 1 ≤ i ≤ 3.
Ex: f(n)=n2+4n+1
Then
f(n)=n2(1+4/n+1/n2)
(when n=4) =n2(1+4/4+1/42) < n2(1+1+1)
Therefore, when n > 4, f(n) < 3n2
so c=3, g(n)=n2, then O(f(n))=O(n2)
In General, O(f(n)) can be classified as 7 types
1.3 Basic Term and Operation 1.3.1 Basic conception
Data Type——all the data categories that each variable Data——the set of numbers, characters, which possessed defined in one program design language. describe the external objects, and all information which can be input into of data elements with some Data Structure——the set the computer and processed by computer programs. special relationships. Data Element——the basic unit of data; also called node, acme or record. Each data element can be consist of several Data Items (the minimal unit of Data). Data Object——the set of data elements with same attribute. It is the subset of Data and can be either finite or infie 1) Set 2) Linear list 3) Trees 4) Graphs Storage Structure 1) Sequential Storage 2) Linked Storage 3) Indexed Storage 4) Hashing Storage
P is processes in D
Definition:
ADT name {
Data objects: < definition > Data relationships: < definition > Elementary operation name ( parameter list ) Elementary operations: < definition > initial condition: description
To transform a quadratic functional equation to a group of linear equations with a positive definite symmetric coefficient matrix.
K
j 1
n
ij
X
j
i P 1, 2, ..., n i
Abstract Data Type (ADT)——a mathematic model and the set of all operations defined on it. ADT can be presented by a triplet ( D, S, P ), while
D is data objects S is set of relationship on D
1. Sorting by names with ascending/descending order. 2. Sorting by numbers with ascending/descending order.
3. Sorting by input order.
Ex3: Creating A Human Resource Document
Management School Business Administration Economy Accounting MIS Teachers 2001 2002 Technical Finance Students 2003 2004
Ex4: Traffic Light Problems on Multi-path Intersection A intersection are one way, the Roads C and Eoccurs by a watering D E hole called JoJo’s near Princeton others two way. There are 13 turns one C University, at this intersection. Some might make and it has been known to A cause some navigational difficulty, pairs of turns, like AB and EC can be B especially simultaneously, while carried outon the return trip. others, like AD and EB, cause lines of traffic to cross and therefore cannot be carried out simultaneously. The light at the intersection must permit turns in such an order that AD and EB are never permitted at the same time, while the light might permit AB and EC to be made simultaneously.