数据结构课程教程第一章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.2 基本概念和术语
数据的逻辑结构—只抽象反映数据元素的逻辑关系 数据的存储(物理)结构—数据的逻辑结构在计算机 存储器中的实现 位:在计算机中表示信息的最小单位,二进制数的一位
位串:由若干个位组合,表示一个数据元素。(以后称 “元素”或“结点”) 例:整数用一个字长(16位) 表示,字符用8位表示
子位串:表示一个数据项。(以后称“数据域” )
3.数据的两种存储结构
存储结构分为: 顺序存储结构——借助元素在存储器中的相对位置来表示
数据元素间的逻辑关系 链式存储结构——借助指示元素存储地址的指针表示数据
元素间的逻辑关系
数据的逻辑结构与存储结构密切相关
算法设计
取决于选定的逻辑结构
算法实现
依赖于采用的存储结构
例1-1 书目检索自动化问题
线性表
按书名
001
高等数书学目卡樊片映川
S01
002 登录理号论:力学 罗远祥
L01
003
高等数学 华罗庚
S01
004 书名线:性代数 栾汝书
S02
…… 作者名…:…
……
……
分类号:
按作者名
高等数学 001,003…出…版单位:樊映川
理论力学 002,……出.. 版时间:华罗庚
若在 6 个数据元素{a1, a2, a3, a4, a5, a6} 之间存在如下的次序关系:
{<ai, ai+1>| i=1, 2, 3, 4, 5}
则构成一维数组的定义。
可见,不同的“关系”构成不同的“结构” 数据结构是相互之间存在着某种逻辑
关系的数据元素的集合。
从关系或结构分,数据结构可归结 为以下四类:(各关系可以用‘次序’ 关系加以描述)。
例1-3 多岔路口交通灯的管理问题
图
C
AB AC AD
Dຫໍສະໝຸດ Baidu
B
BA BC BD
DA DB DC
E A
EA EB EC ED
概括地说: 数据结构是一门研究非数值 计算的程序设计问题中的操 作对象以及它们之间关系和 操作等的学科.
1.2 基本概念
一、数据与数据结构 二、数据类型 三、抽象数据类型
一、数据与数据结构
指的是数据元素之间存在的关系
例,在 2 行 3 列的二维数组中六个元素
{a1, a2, a3, a4, a5, a6} 之间存在两个关系: 行的次序关系:
a1 a2 a3 a4 a5 a6
row = {<a1,a2>,<a2,a3>,<a4,a5>,<a5,a6>}
列的次序关系:
col = {<a1,a4>,<a2,a5>,<a3,a6>}
typedef struct { int num;
char name[20]; float score; }STUDENT; STUDENT stu1,stu2, *p;
数据元素也可以由若干项构成。 例如: 描述一个学生的数据元素
其中每个项称为一个“数据项”
它是数据结构中讨论的最小单位
姓 名学 号班 号性别出生日期入学成绩 年月日
原子项
称之为组合项
数据结构:
有一个特性相同的数据元素的集合, 如果在数据元素之间存在一种或多种 特定的关系,则称为一个数据结构。
带结构的数据元素的集合
数据:
所有能被输入到计算机中,且能被计算 机处理的符号(数值、字符等)的集合。
是计算机操作的对象的总称。 是计算机处理的信息的某种特定的符 号表示形式。
数据元素:
是数据(集合)中的一个“个 体”,在计算机中通常作为一个整 体进行考虑和处理。是数据结构中 讨论的基本单位。
如:整数“5”,字符“N”等。 ----是不可分割的“原子”
线性代数 ……
0…0… 4,.. ……价格:
栾汝书 …….
001,… 002,…. 004,…. …….
L S ……
书目文件
索引表
按分类号
002,… 001,003, ……
计算机处理的对象之间存在着线性关系,称为线性 的数据结构。
例1-2 人机对奕问题
树
……..
……..
…...
…...
…...
…...
1.1 数据结构讨论的范畴 1.2 基本概念 1.3 算法和算法的量度
1.1 数据结构讨论的范畴
(数据结构在软件开发中的地位) 系统分析
系统设计 系统实现 系统维护
例如: 数值计算的程序设计问题
结构静力分析计算 ─━ 线性代数方程组
全球天气预报 ─━ 环流模式方程 (球面坐标系)
这些可以建模为数学方程(组)的 问题的计算方法是《数值计算》研 究的内容。
线性结构 树形结构
图状结构
集合结构
1.2 基本概念和术语
数据结构的形式定义:数据结构是一个二元组 Data_Structure=(D,S)
其中,D 是数据元素的有限集,S 是D上关系的有限集 例1-4 复数 Complex=(C,R) 例1-5 课题小组 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≤m≤2,}
数据类型:是一个值的集合和定义在这 个值集上的所有 的操作。如,整型。 数据类型可分为:非结构的原子类型和 结构类型。 原子类型的值是不可分解的 结构类型的值是由若干成分按某种结 构组成的。
数据类型在高级语言中指数据的取值范围 及其上可进行的操作的总称
例 C语言中,提供int, char, float, double等基 本数据类型,数组、结构体、共用体、枚举等构造数 据类型,还有指针、空(void)类型等。用户也可用 typedef 自己定义数据类型
存储内容 元素1 元素4 …….. 元素2 …….. 元素3
指针 1400 ∧ ……. 1536 ……. 1346
数据结构的三个方面: 数据的逻辑结构
线性结构
线性表 栈 队
非线性结构 树形结构 图形结构
数据的存储结构 顺序存储 链式存储
数据的运算:检索、排序、插入、删除、修改等
4.数据类型 抽象数据类型
顺序存储
存储地址 Lo
Lo+m
存储内容
元素1 元素2 ……..
Lo+(i-1)*m 元素i ……..
Lo+(n-1)*m 元素n
Loc(元素i)=Loc+(i-1)*m
h
1345
h
元素11400 元素21536
链式存储
元素31346 元素4 ∧
存储地址 1345 1346 ……. 1400 ……. 1536