数据结构第一章概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、数据的运算:检索、排序、插入、删除、修改等。
图形结构——节点间的连结是任意的
1 2
4 3
D={ 1 , 2 , 3 , 4} R={(1,2) , (1,3) , (1,4) , (2,3)
(3,4) , (2,4) }
1
2
3
D={ 1 , 2 , 3 } R={ (1,2) , (2,3) , (3,2) , (1,3) }
且b c 若f(c) ·f(b)<0,则根的范围在后半部分(c,b]。 且a c 最后,若|a-b|< ε ,则结束,取根为(a+b)/2 否则,重复上述运算。
a
b
输入:所在区域[a,b],精度要求ε。 输出:满足精度要求的根的近视值c 。 While |b-a|> ε do { c (a+b)/2;
队 1.数据的逻辑结构
数 据
树形结构 B.非线性结构
结
构
图形结构
的
三 个
2、数据的存储结构 A 顺序存储
方 面
B 链式存储
3、数据的运算:检索、排序、插入、删除、修改等。
线性结构
A , B , C , ·······,X ,Y , Z
线性表——结点间是以线性关系联结
学号 9861109 9861107 9861103
每个节点都由两部分组成:数据域和指针域。 数据域存放元素本身的数据, 指针域存放指针。
数据元素之间逻辑上的联系由指针来体现。
head
1345 元素1 1400
链式存储
元素2 1536 元素3 1346 元素4 ∧
存储地址 1345 1346 ……. 1400 ……. 1536
存储内容 元素1 元素4
单一语句或{语句组}
• 循环语句
1)while语句 while 逻辑表达式 do 单一语句或{语句组}
2)for 语句 for i= 初值 to 终值 by step do 单一语句或{语句组}
注:当step =1时,可省略by step项。
• 其他常用语句
1)EXIT 用于退出循环
2)RETURN用于结束算法执行
…….. 元素2
…….. 元素3
指针 1400 ∧ ……. 1536 ……. 1346
h
链式存储
1345
元素1 1400 元素2 1536 元素3 1346 元素4 ∧
链接存储结构特点:
1.比顺序存储结构的存储密度小 (每个节点都由数据域和指针愈组成)。
2.逻辑上相邻的节点物理上不必相邻。 3.插入、删除灵活
全校学生档案管理的组织方式 计算机程序管理系统也是典型的树形结构
A
D
B
C
E F GH
A
B
C
D
E
F
G
H
树形结构 —— 结点间具有分层次的连接关系
线性表
A.线性结构 栈
队 1.数据的逻辑结构
数 据
树形结构 B.非线性结构
结
构
Hale Waihona Puke Baidu
图形结构
的
三 个
2、数据的存储结构 A 顺序存储
方 面
(亦称物理结构) B 链式存储
从大到小排列:9,8,7,6,5,4,3,2,1,0 输出偶数:0,2,4,6,8,1,3,5,7,9
第一章 数据结构与算法
1.1 概述
数据结构是一门研究数据组织、
存储和运算的一般方法的学科。
对数据结构中的节点进行 操作处理
(插入、删除、修改、查找、排序)
名词解释
数据元素(Data Element)
…….. Lo+(n-1)*m 元素n
每个元素所占用 的存储单元个数
Loc(a)=Lo+(i-1)*m
顺序存储结构常用于线性 数据结构,将逻辑上相邻
存储内容 元素1
的数据元素存储在物理上
元素2
相邻的存储单元里。
……..
顺序存储结构的三个弱点:
元素i
1.作插入或删除操作时,需移动大量元数。 2.长度变化较大时,需按最大空间分配。 3.表的容量难以扩充。
它不但要求给出问题的一种算法,还 要求算法的时空效率高、算法结构和可 读性好、容易验证等等。
1.2 算法的基本概念
算法:是对特定问题求解步骤的一种描述。
算法的五个特性:
有穷性、确定性、可行性、输入和输出。
评价算法:
正确性、易读性、健壮性、运行时间及占用空间。
for (i=1; i<=n; ++i) for (j=1; j<= n; ++j) c[i][j]= 0;
n 3i+2j+k if (m=600)and(n=100) then
output i, j, k } return
缺点:效率太低 只适用于有限情况
迭代法:
举例 求x3-x-1=0在x=1.5附近的一个根:
x 3 x 1
将x=1.5代入方程得出新的x1=1.35721 重复执行若干次,x2=1.33086 …… 根据次数或精确度决定。
}
输入n i≤n
Sum=sum+i
输入n的值 i从1到100
sum=sum+i 输出sum
输出sum
3.算法描述
(1) 自然语言表示法 (2) 伪代码表示法 (3) 流程图表示法 (4) 结构化流程图(N—S图)表示 法 (5) PAD图表示法 (6) 算法描述语言
1. 用流程图描述算法
一个算法可以用流程图的方式来描述,输入输出、 判断、处理分别用不同的框图表示,用箭头表示 流程的流向。这是一种描述算法的较好方法,目 前在一些高级语言程序设计中仍然采用。
第一章 数据结构与算法
1.1 概述
数据结构是一门研究数据组织、
存储和运算的一般方法的学科。
计算机管理图书问题 在图书馆里有各种卡片:有按书名编排的、
有按作者编排的、有按分类编排 如何将查询图书的这些信息存入计算机中 既要考虑查询时间短,又要考虑节省空间
第一章 数据结构与算法
1.1 概述 数据结构是一门研究数据组织、
归纳法:经过分析,找出一般规律。比列举法
更能反映问题本质。
例:输出如下矩阵: 12 3 4 5 01 3 4 5 00 1 4 5 00 0 1 5 00 0 0 1
for i=1 to 5 do for j=1 to i do { if i>j then A (i,j) i if i=j then A(i,j) 1 } if i<j then A(i,j) 0 for i=1 to 5 do for j=1 to 5 do output A(i,j) return
例:abc134√ 12gty× a67kh√
算术运算符:+、-、*、/ 关系运算符:=、≠、<、>、≤、≥ 逻辑运算符:and、or、not
• 赋值语句
ae
• 控制转移语句
1)无条件转移语句 goto 标号
2)条件转移语句 if 逻辑表达式 then if 逻辑表达式 then
else
单一语句或{语句组} 单一语句或{语句组}
…….. 元素n
线性表
A.线性结构 栈
队 1.数据的逻辑结构
数 据
树形结构 B.非线性结构
结
构
图形结构
的
三 个
2、数据的存储结构 A 顺序存储
方 面
(亦称物理结构) B 链式存储
3、数据的运算:检索、排序、插入、删除、修改等。
h
1345
元素1 1400
链式存储
元素2 1536 元素3 1346 元素4 ∧
3)READ(INPUT)输入 OUTPUT(PRINT,WRITE)输出
4)注释语句 用[ ]括起来,用;隔开
5)语句组用{ }括起来。
例:用算法描述语言写出1*2*3*4*……*n的算法
输入:n 输出:answer
for i=1 to n do answer=answer*i
output answer return
4.算法基本设计方法
• 常用算法
– 枚举法 – 迭代法 – 递归法 – 递推法 – 分治法 – 回溯法
枚举法:列举所有的情况,再根据条件,筛选出其中
需要的情况。
例1:设每只母鸡值3元,每只公鸡值2元,每只小鸡值1元。现用600 元买100只鸡,问能买公鸡、母鸡和小鸡各多少只?
for i=0 to 100 do for j=0 to 100 do for k=0 to 100 do { m i+j+k
数据元素是数据的基本单位,即数据 集合中的个体。
有时一个数据元数可由若干数据项 (Data Item)组成。数据项是数据的最小 单位。
数据元素亦称节点或记录。
数据结构可描述为 Group=(D,R) 有限个数据元素的集合
有限个节点间关系的集合
数据结构可描述为 Group=(D,R)
线性表
A.线性结构 栈
(不必移动节点,只要改变节点中的指针)。
线性表
A.线性结构 栈
队 1.数据的逻辑结构
数 据
树形结构 B.非线性结构
结
构
图形结构
的
三 个
2、数据的存储结构 A 顺序存储
方 面
(亦称物理结构) B 链式存储
3、数据的运算:检索、排序、插入、删除、修改等。
数据结构侧重于解决问题的策略和 方法,即研究算法。
算法时间复杂度表示为(n) = O(n2)
1.算法
通俗地讲,算法就是一种解题的方法。更严格地说, 算法是由若干条指令组成的有穷序列,它必须满足下 述条件(也称为算法的五大特性):
(1)输入:具有0个或多个输入的外界量(算法开始 前的初始量)
(2)输出:至少产生一个输出,它们是算法执行完后 的结果。
存储和运算的一般方法的学科。
最简单的办法之一是建立一张表, 每一本书的信息在表中占一行,如
第一章 数据结构与算法
数据元素在
1.1 概述计算机中的表示
数据结构是一门研究数据组织、
存储和运算的一般方法的学科。
如何将0,1,2,3,4,5,6,7,8,9这10个数存放在 计算机中能最快地达到你所需要的目的? 目的不同,最佳的存储方方法就不同。
2. 用自然语言描述算法
用我们日常生活中的自然语言(可以是中文形式, 也可以是英文形式)也可以描述算法。
3. 用算法描述语言表述算法
我们还可以用数学语言或约定的符号语言来描述 算法。
用算法描述语言表述算法
• 算法描述语言只面向读者,不直接用于计算机。 • 符号与表达式
符号:以字母开头的字母和数字的有限串。
学生成绩表
姓名 张卓 刘忠赏 胡孝臣
成绩 100 95 86
数据结构可描述为 Group=(D,R)
线性表
A.线性结构 栈
队 1.数据的逻辑结构
数 据
树形结构 B.非线性结构
结
构
图形结构
的
三 个
2、数据的存储结构 A 顺序存储
方 面
B 链式存储
3、数据的运算:检索、排序、插入、删除、修改等。
树形结构
例:1+2+3+……+n=?。
C语言程序: main( ) {int i,n; scanf(“%d”,&n) for ( i=1; i<= n; i++) sum=sum+i printf(“%d”,sum)
算法: 输入:n 输出:sum for i=1 to n do sum=sum+i output sum return
(3)有穷性:每条指令的执行次数必须是有限的。
(4)确定性:每条指令的含义都必须明确,无二义性。
(5)可行性:每条指令的执行时间都是有限的。
2.算法和程序的关系
算法的含义与程序十分相似,但二者是 有区别的。一个程序不一定满足有穷性 (死循环),另外,程序中的指令必须 是机器可执行的,而算法中的指令则无 此限制。一个算法若用计算机语言来书 写,则它就可以是一个程序。
10
65
865
学科《数据结构》在计算机科 学中所处的地位
➢综合性的专业基础课
第一章 数据结构与算法
1.1 概述
数据结构是一门研究数据组织、 存储和运算的一般方法的学科。
第一章 数据结构与算法
1.1 概述 数据结构是一门研究数据组织、
存储和运算的一般方法的学科。
整数(能1,输2)入、到实计数算(1机.1中,1.2) 并能字被符计串算(B机ei程ji序ng处)、理的 符图号形的、集声合音。
F
F*i
output F
return
分治法:将问题的规模减少,而问题的性质不变。
例:二分法求方程的根。
设方程f(x)=0在区间[a,b]内有且只有一个实根,则 f(a)·f(b)<0。 首先,取区间中点c,若f(c)=0,则实根为c. 然后,若f(a) ·f(c)<0,则根的范围在前半部分[a,c)。
• 递归法: 直接或间接调用自身的过程。
例1:求n! 0! 1; n! n*(n-1)!
F(0) 1 for i=1 to n do
F(n) F(n-1)*n output F(N) return
例2:菲波那契级数 F(0)=0 F(1)=1 F(n)=F(n-1)+F(n-2)
(递推法)
F1
for i=1 to n do
线性表
A.线性结构 栈
队 1.数据的逻辑结构
数 据
树形结构 B.非线性结构
结
构
图形结构
的
三 个
2、数据的存储结构 A 顺序存储
方 面
(亦称物理结构) B 链式存储
3、数据的运算:检索、排序、插入、删除、修改等。
存储地址 存储内容
Lo 元素1
顺 序
Lo+m 元素2
存
……..
储
Lo+(i-1)*m 元素i