数据结构C语言版课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
head 9901 80
9902 90
9903 75NULL
数据的运算
l 逻辑结构和存储结构都相同, 但运算不同, 则数据 结构不同. 例如, 栈与队列
l 对于一种数据结构, 常见的运算 插入 删除 修改 查找 排序
逻辑结构 唯一
存储结构 不唯一
数据的逻辑结构
线性结构
线性表 栈、队ห้องสมุดไป่ตู้ 串、数组
第一章 绪论
1.1 什么是数据结构 1.2 基本概念和术语 1.3 算法和算法的描述
1.1 什么是数据结构
当今计算机应用的特点: l计算机应用领域从科学计算到非数值计算,更多 地是需要对其进行组织、管理和检索; l所处理的数据量大且具有一定的关系. 下面举几个非数值计算的例子
例1 学生档案管理系统
一、基本概念 二、数据类型 三、抽象数据类型
一、基本概念
1. 数据:所有能被输入到计算机中,且能被计算机处理的符号的集合。 不仅包括数字、字符串,还包括图形、图像、声音、动画、视频等 数据形式。
2. 数据元素:数据的基本单位,也称结点(node)或记录(record) 。
3. 数据项:是数据结构中讨论的最小单位。一个数据元素可由若干数据 项组成。
......
......
......
三者之间的关系:数据 > 数据元素 > 数据项
例:学生表 > 个人记录 > 学号、姓名……
数据元素
4. 数据对象:是性质相同的数据元素的集合,是数据的一个 子集。 整数数据对象 N = { 0, 1, 2, … } 学生数据对象 学生记录的集合
5、数据结构(Data Structure)是相互之间存在一种或多 种特定关系的数据元素的集合。
对象以及它们之间的关系和操作等的学科。
课程目的
• 能够分析研究计算机加工的对象的特性,获得其 逻辑结构,根据需求,选择合适存贮结构及其相 应的算法;
• 学习一些常用的算法; • 复杂程序设计的训练过程,要求编写的程序结构
清楚和正确易读; • 初步掌握算法的时间分析和空间分析技术。
1.2 基本概念和术语
线性表
假设一个学生档案管理系统应包含如下表所示的
学生信息
学 生 基 本 情 况
学号 姓名 性别 出 生 年 月 ......
99070101 李军
男
80. 12
......
99070102 王 颜 霞 女
81. 2
.......
99070103 孙涛 男
80. 9
......
99070104 单 晓 宏 男
7.存储结构(物理结构) :数据在计算机中的存储表示。 分为两种: 顺序存储结构 链式存储结构
顺序存储结构:借助元素在存储器中的相对位置来表示 数据元素间的逻辑关系。(占用连续的存储单元)
a 01234 56789
链式存储结构:借助指示元素存储地址的指针表示数据 元素间的逻辑关系。 (可以占用不连续的存储单元)
数据结构是带“结构”的数据元素的集合,“结构” 就是指数据元素之间存在的关系。
6 逻辑结构 数据结构中所说的“关系”实际上是指数据元素之间的
逻辑关系,又称此为逻辑结构。
数据之间的关系分为四类:
集合数据元素间除“同属于一个集合”外,无其它 关系 线性结构 一对一的关系, 如线性表、栈、队列 树型结构 一对多的关系,如树 图状结构或网状结构 多对多的关系,如图。
数据项
学 生 基 本 情 况
学号 姓名 性别 出 生 年 月 ......
99070101 李军 男 80. 12
......
99070102 王 颜 霞 女
81. 2
.......
99070103 孙涛 男
80. 9
......
99070104 单 晓 宏 男
81. 3
......
......
......
在程序设计语言中,每一个数据都属于某种数据类型。类 型明显或隐含地规定了数据的取值范围、存储方式以及允许进 行的运算。可以认为,数据类型是在程序设计中已经实现了的 数据结构。
结论
计算机的操作对象的关系复杂,操作形式不再是单纯 的数值计算,而更多地是对这些具有一定关系的数据进行组 织管理,我们将此称为非数值性处理。要使计算机能够更有 效地进行这些非数值性处理,就必须弄清楚这些数据之间的 关系,在计算机中的存储方式以及各个操作的具体实现。
数据结构的研究内容为: 研究非数值计算的程序设计问题中计算机的操作
例2 人机对奕问题
树
……..
……..
…...
…...
…...
…...
例3 制定教学计划
图
在制定教学计划时,需要考虑各门课程的开设顺序。有些课程需要先
导课程,有些课程则不需要,而有些课程又是其他课程的先导课程。比如,
计算机专业课计 程的算 开机 设情专 况如业 下学 表所生 示的 : 必 修 课 程
非线性结构 树形结构 图形结构
数据的存储结构
运算的实现
顺序存储 链式存储
依赖于 存储结构
数据的运算:插入、删除、修改、查找、排序
二、数据类型
数据类型 是一个值的集合和定义在此集合上的一组操作的总 称。
C语言: 基本数据类型: char int float double void 构造数据类型:数组、结构体、共用体、文件
C5, C3
操 作 系 统
C3, C6
高 等 数 学
无
线 性 代 数
C9
普 通 物 理
C9
数 值 分 析
C9, C10, C1
课程先后关系的图形描形式:
c4
c5
c2
c7
c1 c3
c12
c9
c10
c8
c6 c11
特点: • 课程之间的先后关系用图结构描述; • 通过实施创建图结构,按要求将图结构中的顶点进行 线性排序。
81. 3
......
......
......
......
......
......
特点:
l 每个学生的信息占据一行,所有学生 的信息按学号顺序依次排列构成一张表格;
l 表中每个学生的信息依据学号的大小 存在着一种前后关系,这就是我们所说的线性 结构;
l 对它的操作通常是插入某个学生的信 息,删除某个学生的信息,更新某个学生的信 息,按条件检索某个学生的信息等等。
课 程 编 号
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12
课 程 名 称
需 要 的 先 导 课 程
编 号
程 序 设 计 基 础
无
离 散 数 学
C1
数 据 结 构
C1, C2
汇 编 语 言
C1
算 法 分 析 与 设 计
C3, C4
计 算 机 组 成 原 理
C11
编 译 原 理