- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章 基本概念与算法
; 本章主要内容
1.1 数据结构基本概念和术语
1.2 理解数据的逻辑结构和存储结构
1.3 抽象数据类型ADT
1.4 算法和算法分析;例1:图书管理系统;例2:人机对弈系统;例3:多交叉路口交通灯管理系统;;1.1 数据结构基本概念和术语;1.1 数据结构基本概念和术语;6.数据类型(Data Type):是一个值的集合和定义在这个值集上的一组操作的总称。
数据类型的分类:
①非结构的原子类型:原子类型的值是不可分解的。如:C语言中的基本类型(整型,实型),字符型,指针类型和空类型。
②结构类型:结构类型的值是由若干成分按某种结构组成的,因此是可分解的,并用它的成分可以是非结构的,也可以是结构的。如:数组的值由若干分量组成,每个分量可以是整数,也可以是数组。
;1.2 数据的逻辑结构和存储结构;1.2 数据的逻辑结构和存储结构;举例1:
L=(D,R)
D={a, b, c, d, e}
R={r}
r={ }; 举例2:
L=(D,R)
D={a, b, c, d, e}
R={r}
r={a,b, b,c, c,d, d,e};举例3:
L=(D,R),D={k1,k2,…,k9} ,R={r}
r ={ k1,k2 , k1,k3 , k1,k4 , k1,k7 , k1,k8 ,
k4,k5 , k4,k6 , k7, k9 , k8, k9 };例1复数Complex=(C,R)
C={c1,c2} R={P}={c1,c2}
C1+c2i
例2:假设每个小组由一位教师、一至三名研究生及一至六名本科生组成,小组成员之间的关系是:教师指导研究生,而由每位研究生指导一至二名本科生。
Group=(P,R)
其中:P={T,G1,…,Gn,S11…Snm} 1≤n≤3,1≤m≤2
R={R1,R2}
R1={T,Gi| 1≤i≤n,1≤n≤3}
R2 ={Gi,Sij| 1≤i≤n,1≤j≤m,1≤n≤3,1≤m≤2};1.2 数据的逻辑结构和存储结构;1.2 数据的逻辑结构和存储结构;1.2 数据的逻辑结构和存储结构;1.3 抽象数据类型ADT;ADT Triplet {
数据对象:D={e1,e2,e3|e1,e2,e3∈ElemSet(定义了关系运算的某个集合)}
数据关系:R1={e1,e2,e2,e3}
基本操作:
Init Triplet(T,v1,v2,v3)构造了三元组T,元素e1,e2,e3分别被赋以参数v1,v2,v3的值;
Destroy Triplet (T) 三元组T被销毁;
Get(T, i ,e) 初始条件:三元组T已存在,(1≤i≤3)。用e返回T的第i元的值;
Put(T, i ,e)初始条件:三元组T已存在,(1≤i≤3)。改变T的第i元的值为e;
;IsAscending (T)初始条件:三元组T已存在。如果T的三个元素按升序排列,则返回1,否则返回0;
IsDescending(T)初始条件:三元组T已存在。如果T的三个元素按降序排列,则返回1,否则返回0;
Max(T,e)初始条件:三元组T已存在。用e返回T的三个元素中的最大值;
Min(T,e)初始条件:三元组T已存在。用e返回T的三个元素中的最小值。}ADT Triplet
;(1)预定义常量和数据类型
//函数结果主要状态代码
const TRUE 1
const FALSE 0
const OK 1
const ERROR 0
const INFEASIBLE -1
const OVERFLOW -2
//status是函数的返回值类型,其值是函数结果状态代码
typedef int status
(2)数据结构的表示都用类型定义(typedef)的方式描述。
基本数据元素类型约定为ElemType,由用户在使用该数据类型时再具体定义。
;
(3)基本操作的算法的描述函数为:
函数类型 函数名(函数参数表){
//算法说明
语句序列
} //函数名
(4)赋值语句有
简单赋值 变量名=表达式;
串联赋值 变量名1=变量名2=…=变量名k=表达式;
成组赋值 (变量名1,变量名2,...,变量名k);(表达式1,表达式2,..., 表达式k);
结构名=结构名;
文档评论(0)