03数据结构基本概念PPT课件
合集下载
《数据结构》课件

查找操作
顺序查找
二分查找
链表查找
在顺序存储结构的线性表中,查找操 作需要从线性表的第一个节点开始, 逐个比较节点的数据域,直到找到目 标数据或遍历完整个线性表。时间复 杂度为O(n)。
在有序的顺序存储结构的线性表中, 查找操作可以采用二分查找算法。每 次比较目标数据与中间节点的数据域 ,如果目标数据大于中间节点,则在 右半部分继续查找;否则在左半部分 查找。时间复杂度为O(log n)。
数据结构是算法的基础。许多算法的实现需要依赖于特定的数据结构, 因此掌握常见的数据结构是编写高效算法的关键。
数据结构在解决实际问题中具有广泛应用。无论是操作系统、数据库系 统、网络通信还是人工智能等领域,数据结构都发挥着重要的作用。
数据结构的分类
根据数据的逻辑关系,数据结构可以分为线性结构和非线 性结构。线性结构如数组、链表、栈和队列等,非线性结 构如树形结构和图形结构等。
04
数据结构操作
插入操作
顺序插入
在顺序存储结构的线性表中,插入操作 需要找到插入位置的前驱节点,修改前 驱节点的指针,使其指向新节点,然后 让新节点指向后继节点。如果线性表的 第一个节点是空节点,则将新节点作为 第一个节点。
VS
链式插入
在链式存储结构的线性表中,插入操作需 要找到插入位置的前驱节点,修改前驱节 点的指针,使其指向新节点。如果线性表 的第一个节点是空节点,则将新节点作为 第一个节点。
图
01
02
03
04
图是一种非线性数据结构,由 节点和边组成,其中节点表示 数据元素,边表示节点之间的
关系。
图具有网络结构,节点之间的 关系可以是任意复杂的,包括
双向、单向、无向等。
(2024年)《数据结构》全套课件

30
树形数据结构的查找算法
二叉排序树的查找
从根节点开始,若查找值小于当前节点 值,则在左子树中查找;若大于当前节 点值,则在右子树中查找。
VS
平衡二叉树的查找
在保持二叉排序树特性的基础上,通过旋 转操作使树保持平衡,提高查找效率。
2024/3/26
31
散列表的查找算法
散列函数的设计
将关键字映射为散列表中位置的函数。
过指针来表示。
链式存储的特点
逻辑上相邻的元素在物理位置上 不一定相邻;每个元素都包含数
据域和指针域。
链式存储的优缺点
优点是插入和删除操作不需要移 动元素,只需修改指针;缺点是
存储密度小、空间利用率低。
2024/3/26
11
线性表的基本操作与实现
插入元素
在线性表的指定位 置插入一个元素。
查找元素
在线性表中查找指 定元素并返回其位 置。
自然语言处理的应用
在自然语言处理中,需要处理大量的文本数据,数据结构中的字符 串、链表、树等可以很好地支持文本的处理和分析。
41
数据结构在计算机网络中的应用
2024/3/26
路由算法的实现
计算机网络中的路由算法需要大量的数据结构支持,如最短路径 树、距离向量等。
网络流量的控制
在计算机网络中,需要对网络流量进行控制和管理,数据结构中的 队列、缓冲区等可以很好地支持流量的控制。
37
06
数据结构的应用与拓展
2024/3/26
38
数据结构在算法设计中的应用
01
作为算法设计的基 础
数据结构为算法提供了基本操作 和存储方式,是算法实现的重要 基础。
02
提高算法效率
数据结构说课ppt课件

(1)数据的逻辑结构:数据的逻辑结构是指数据元素之间存在的固有逻辑关系,常称为数
基本概念与术语
据结构。
数据的逻辑结构是从数据元素之间存在的逻辑关系上描述数据与数据的存储无关,是独立于计算机的。
依据数据元素之间的关系,可以把数据的逻辑结构分成以下几种:
1.集合:数据中的数据元素之间除了“同属于一个集合“的关系以外,没有其他关系。
单链表
链表操作算法:初始化、插入、输出、删除、遍历
8. 在一个单链表中删除q所指结点时,应执行如下操作:
q=p->next;
p->next=( p->next->next );
free(q);//这种题目靠一根指针是没有办法完成的,必须要借助第二根指针。
9. 在一个单链表中p所指结点之后插入一个s所指结点时,应执行:
(2) 若表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取表中的元
问答题
素,这时,应采用哪种存储表示?为什么?
应采用顺序存储表示。因为顺序存储表示的存取速度快,但修改效率低。若表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取表中的元素,这时采用顺序存储表示较好。
03
栈和队列
数据结构说课ppt课件
演讲人
数据结构概述
01
线性表
02
栈和队列
03
目录
01
数据结构概述
基本概念与术语
2.数据元素:数据元素是数据的基本单位,是数据这个集合中的个体,也称之为元素,结点,顶点记录。
(补充:一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。)
在右侧编辑区输入内容
顺序表的存储效率高,存取速度快。此,不易扩充。同时,由于在插入或删除时,为保持原有次序,平均需要移动一半(或近一半)元素,修改效率不高。
基本概念与术语
据结构。
数据的逻辑结构是从数据元素之间存在的逻辑关系上描述数据与数据的存储无关,是独立于计算机的。
依据数据元素之间的关系,可以把数据的逻辑结构分成以下几种:
1.集合:数据中的数据元素之间除了“同属于一个集合“的关系以外,没有其他关系。
单链表
链表操作算法:初始化、插入、输出、删除、遍历
8. 在一个单链表中删除q所指结点时,应执行如下操作:
q=p->next;
p->next=( p->next->next );
free(q);//这种题目靠一根指针是没有办法完成的,必须要借助第二根指针。
9. 在一个单链表中p所指结点之后插入一个s所指结点时,应执行:
(2) 若表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取表中的元
问答题
素,这时,应采用哪种存储表示?为什么?
应采用顺序存储表示。因为顺序存储表示的存取速度快,但修改效率低。若表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取表中的元素,这时采用顺序存储表示较好。
03
栈和队列
数据结构说课ppt课件
演讲人
数据结构概述
01
线性表
02
栈和队列
03
目录
01
数据结构概述
基本概念与术语
2.数据元素:数据元素是数据的基本单位,是数据这个集合中的个体,也称之为元素,结点,顶点记录。
(补充:一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。)
在右侧编辑区输入内容
顺序表的存储效率高,存取速度快。此,不易扩充。同时,由于在插入或删除时,为保持原有次序,平均需要移动一半(或近一半)元素,修改效率不高。
数据结构ppt课件完整版

针对有序数据集合,每次通过中间元素将 待查找区间缩小为之前的一半,直到找到 元素或区间为空。
哈希查找
树形查找
通过哈希函数将数据映射到哈希表中,实 现快速查找。
如二叉搜索树、平衡树等,通过树形结构实 现高效查找。
排序算法分类及实现原理
插入排序
将待排序元素逐个插入到已排序序列中,直到所有元素均插入完毕。
由n(n>=0)个具有相同类型 的数据元素(结点)a1,a2,
...,an组成的有序序列。
同一性
每个元素必须是同一类型的数 据。
有序性
元素之间具有一对一的前驱和 后继关系,即除首尾元素外, 每个元素都有一个前驱和一个 后继。
可变性
线性表的长度可变,即可以插 入或删除元素。
顺序存储结构与链式存储结构比较
定义
用一段连续的存储单元依次存储线性 表的数据元素。
优点
可以随机存取表中任一元素,且存取 时间复杂度为O(1)。
顺序存储结构与链式存储结构比较
• 缺点:插入和删除操作需要移动大量元素,时间 复杂度高;需要预先分配存储空间,容易造成空 间浪费。
顺序存储结构与链式存储结构比较
定义
用一组任意的存储单元存储线性 表的数据元素(这组存储单元可 以是连续的,也可以是不连续的
查找操作
查找指定元素的位置。
遍历操作
访问线性表中的每个元素。
销毁操作
释放线性表占用的存储空间。
03
栈和队列
栈定义及特点
栈(Stack)是一种特殊的线性数据结构,其数据的存 取遵循后进先出(LIFO, Last In First Out)的原则。 栈的特点
具有记忆功能,能保存数据的状态。
栈的基本操作包括入栈(push)、出栈(pop)、查 看栈顶元素(top)等。 只能在栈顶进行数据的插入和删除操作。
《数据结构》课件

第二章 线性表
1
线性表的顺序存储结构
2
线性表的顺序存储结构使用数组来存储元素,
可以快速随机访问元素。
3
线性表的常见操作
4
线性表支持常见的操作,包括插入、删除、 查找等,可以灵活地操作其中的元素。
线性表的定义和实现
线性表是一种数据结构,它包含一组有序的 元素,可以通过数组和链表来实现。
线性表的链式存储结构
线性表的链式存储结构使用链表来存储元素, 支持动态扩展和插入删除操作。
第三章 栈与队列
栈的定义和实现
栈是一种特殊的线性表,只能在一 端进行插入和删除操作,遵循后进 先出的原则。
队列的定义和实现
队列是一种特殊的线性表,只能在 一端进行插入操作,在另一端进行 删除操作,遵循先进先出的原则。
栈和队列的应用场景和操作
哈希表是一种高效的查找数据结构, 通过哈希函数将关键字映射到数组 中,实现快速查找。
排序算法包括冒泡排序、插入排序 和快速排序等,可以根据数据规模 和性能要求选择合适的算法。
结语
数据结构的学习心得 总结
学习数据结构需要掌握基本概念 和常见操作,通过实践和练习加 深理解和熟练度。
下一步学习计划的安 排
在掌握基本数据结构的基础上, 可以进一步学习高级数据结构和 算法,提升编程技能。
相关学习资源推荐
推荐一些经典的数据结构教材和 在线学习资源,如《算法导论》 和LeetCode等。
栈和队列在计算机科学中有许多应 用,如函数调用、表达式求值和作 业调度等。
第四章 树与二叉树
树的定义和性质
树是由节点和边组成的一种非线性数据结构,每个 节点可以有多个子节点。
二叉树的遍历方式
二叉树的遍历方式包括前序遍历、中序遍历和后序 遍历,可以按不同顺序输出节点的值。
数据结构.ppt

2020/2/15
数据结构
17
2.1 线性表的概念及运算
一、逻辑结构 1.描述: 线性表是由n (n>=0)个数据元素(点)a1,a2,….,ai,….,an
组成的有限序列。其中,数据元素的个数n定义为表长。 当n=0时称为空表,非空的线性表(n>0)记为: (a1,a2,….,ai,…..,an)
2020/2/15
数据结构
11
第一章 概 论
1.4 算法分析
一、算法评价五要素 (1)正确性 (2)执行算法所耗费的时间 (3)执行算法所耗费的空间 (4)可读性 (5)健壮性
2020/2/15
数据结构
12
第一章 概 论
二、算法的时间复杂度
•一个算法所耗费的时间:该算法中每条语句的执行时间之和。 •每条语句的执行时间:该语句的执行次数乘以该语句执行一次 所需时间。 •频度:语句重复执行的次数 •算法的时间耗费T(n)=每条语句的执行的时间
2020/2/15
数据结构
23
一、链表
2.3 线性表的链式存储
1、 链式存储:用一组任意的存储单元存储线性表, 逻辑上 相邻的结点在物理位置上不一定相邻,结点间 的逻辑关系由存储结点时附加的指针字段表示
2、链表:采用链式存储方法的线性表称为链表。
2020/2/15
数据结构
24
2.3.1 单链表
1、单链表的特点:每个结点只有一个链域,指向其直接后继 (尾结点除外)。
依据数据集中可能出现的最坏情况估算出的时间复杂度 称为最坏时间复杂度。
五、平均时间复杂度
在假设数据集的分布是等概率的条件下,估算出的时间 复杂度称为平均时间复杂度。
例:顺序查找
数据结构讲义精品PPT课件

003 陈诚 02 男 19840910 638
… … … ……
…
数据元素
数据结构 具有结构的数据元素的集合。它包 括数据元素的逻辑结构、存储结构和相适应的 运算。
逻辑结构
数据元素之间的逻辑关系,与计算机无关。 可用一个二元组表示:Data_Structure = (D,R) D:数据元素的有穷集合,R:集合D上关系的有穷集合。
《The Art of Computer Programming》
Art Evans
数据结构在计算机科学中是一门综合性的专业基础课, 也是计算机专业的必修课,是其它许多课程的先修课程, 是设计编译程序、操作系统、数据库系统等系统程序和 大型应用程序的重要基础。
1.2 基本概念和术语
基本术语
数据 被计算机加工处理的对象。 数据元素(记录、表目) 数据的基本单位,
几种常用的运算有: (1)建立数据结构 (2)清除数据结构 (3)插入数据元素 (4)删除数据元素 (5)排序
(6)检索* (7)更新 (8)判空和判满* (9)求长*
*操作为引用型操作,即数据值不发生变化; 其它为加工型操作。
抽象数据类型
抽象数据类型 ADT( Abstract Data Type ): 数据类型概念的引伸。指一个数学模型以及在其上定义的操作集 合,与计算机无关。 数据类型:一组值的集合和定义在其上的一组操作的总称。
抽象数据类型的描述方法
ADT 抽象数据类型名 { 数据对象:〈数据对象的定义〉 数据关系:〈数据关系的定义〉 基本操作:〈基本操作的定义〉
} ADT 抽象数据类型名
其中基本操作的定义格式为:
基本操作名(参数表) 初始条件:〈初始条件描述〉 操作结果:〈操作结果描述〉
绪论(数据结构教程PPT课件)

缓冲处理
在网络传输或文件读写过程中,使 用队列作为缓冲区,暂时存储待处 理的数据,以提高处理效率。
04
串、数组和广义表
串定义及基本操作
串的基本操作包括
赋值操作、连接操作、求串长、比较操作、定位操作等。
串的存储结构包括
顺序存储结构和链式存储结构。
串模式匹配算法
串模式匹配算法是指在一个主串中寻找一个子串(模式串)的位置。
函数调用
在程序执行过程中,使用 栈来保存函数调用的信息, 如函数参数、局部变量和 返回地址等。
队列定义及基本操作
01
队列(Queue)是一种特殊的线性数据结构,其操作在表 的两端进行。一端称为队头(front),另一端称为队尾 (rear)。
02
队列的基本操作包括
03
入队(enqueue):在队尾插入一个元素。
3
线性表的抽象数据类型描述
数据类型名称、数据对象集合、操作集合等
线性表顺序存储结构
01
顺序存储结构的定义
用一段地址连续的存储单元依次存储线性表的数据元素
02
顺序存储结构的基本操作实现
创建、初始化、销毁、判空、清空、求长度、获取元素、修改元素等操
作的实现方法
03
顺序存储结构的优缺点
无需为表示表中元素之间的逻辑关系而增加额外的存储空间;可以快速
线索二叉树
线索二叉树是对二叉树的每个结点增设两个标志位以及一条线索而得到的。根据线索性质的不同,线索二叉树可分为前序线 索二叉树、中序线索二叉树和后序线索二叉树三种。这里以中序线索二叉树为例来说明线索二叉树的构造方法。
中序线索二叉树的构造规则是:若将二叉树的中序遍历序列中的每个结点都看作是相应指针域为空的指针,则称这些指针为 线索,而指向其前驱或后继的指针称为线索指针。加上线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树 (Threaded BinaryTree)。根据线索性质的不同,线索二叉树可分为前序线索二叉树、中序线索二叉树和后序线索二叉树三种 。
在网络传输或文件读写过程中,使 用队列作为缓冲区,暂时存储待处 理的数据,以提高处理效率。
04
串、数组和广义表
串定义及基本操作
串的基本操作包括
赋值操作、连接操作、求串长、比较操作、定位操作等。
串的存储结构包括
顺序存储结构和链式存储结构。
串模式匹配算法
串模式匹配算法是指在一个主串中寻找一个子串(模式串)的位置。
函数调用
在程序执行过程中,使用 栈来保存函数调用的信息, 如函数参数、局部变量和 返回地址等。
队列定义及基本操作
01
队列(Queue)是一种特殊的线性数据结构,其操作在表 的两端进行。一端称为队头(front),另一端称为队尾 (rear)。
02
队列的基本操作包括
03
入队(enqueue):在队尾插入一个元素。
3
线性表的抽象数据类型描述
数据类型名称、数据对象集合、操作集合等
线性表顺序存储结构
01
顺序存储结构的定义
用一段地址连续的存储单元依次存储线性表的数据元素
02
顺序存储结构的基本操作实现
创建、初始化、销毁、判空、清空、求长度、获取元素、修改元素等操
作的实现方法
03
顺序存储结构的优缺点
无需为表示表中元素之间的逻辑关系而增加额外的存储空间;可以快速
线索二叉树
线索二叉树是对二叉树的每个结点增设两个标志位以及一条线索而得到的。根据线索性质的不同,线索二叉树可分为前序线 索二叉树、中序线索二叉树和后序线索二叉树三种。这里以中序线索二叉树为例来说明线索二叉树的构造方法。
中序线索二叉树的构造规则是:若将二叉树的中序遍历序列中的每个结点都看作是相应指针域为空的指针,则称这些指针为 线索,而指向其前驱或后继的指针称为线索指针。加上线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树 (Threaded BinaryTree)。根据线索性质的不同,线索二叉树可分为前序线索二叉树、中序线索二叉树和后序线索二叉树三种 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章 数据结构基本概念
2020/11/23
1
§1.1 数据结构绪论
计算机应用:
早期,简单的数值运算 后来,应用范围扩大,处理大数据量
产生一系列问题:
如何合理安排数据元素之间的关系? 如何在计算机中存储数据元素? 如何操作数据元素以获得高效率?
引入了“数据结构”课程
2020/11/23
成 的
名字
集
数据项 成绩
合
2020/11/23
5
数据式及相互关系
是相互之间存在一种和多种特定关系的数据元 素的集合
是数据元素的集合,元素关系的集合,元素运
算的集合
涉及
例:公司的组织关系
元素的集合
员工间形成树型关系
元素间的关系
人员的管理
在关系里的操作
2020/11/23
21
链接式存储结构
K1
K2
K3
K4
逻辑结构
指向后继结点的指针
2020/11/23
K3 K1
K2 K4
物理结构
0300 0301 0302 0303 0304 0305 0306 0307 0308 0309
22
链接式存储结构
可定义一个结构类型来表示这种数据元素的类型:
typedef struct { int id; char name[20]; char subject[20]; float score;
} student_score_type;
2020/11/23
10
数据结构的三个层次
数据的逻辑结构 数据的存储结构 数据的操作集合
2020/11/23
6
数据结构的概念
元素集合 计
算
元素间的关系 机 ?
系
运算
统
元素在计算机系统里的表示--字符?整数?其它? 元素间的逻辑关系--逻辑结构 元素在计算机系统中的存储方式,元素存放位置的物
理空间关系--存储结构 操作元素的指令的集合--算法
2020/11/23
7
深刻理解数据结构的概念
数据元素是指组成数据的“事实”、“数值”或 “符号”。
数据元素是数据的基本单位,可由若干个数据项组 成
数据项可以认为是数据元素的一个属性
2020/11/23
4
数据及数据元素例
例1、学生花名册
数
数据
学生名字的集合
据
数据元素 每个学生的名字
是 由
数
例2、学生成绩表
据 元
数据
学生成绩的集合
素
形
数据元素 每个学生的成绩
2020/11/23
20
几种物理存储结构
顺序存储:
连续顺序地存放数据元素
用物理存储单元的邻接关系来表示数据元素之 间的逻辑关系
若数据的逻辑结构也是顺序(线性)的,则逻 辑结构和物理结构完全统一
链式存储:
元素在内存中不一定连续存放
用指针来表示元素之间的逻辑关系。
元素+指针
结点 元素 指针
12
数据的逻辑结构
图示法
图形要素:结点和有向线段
结点:表示一个数据元素,一般以方形框代表。 不管多么复杂的结点,都看作是一个结点
有向线段:表示元素之间的关系。
Kh
Ki
Kj
Ki的前驱
箭尾指向的结点是前驱 箭头指向的结点是后继
Ki的后继
2020/11/23
13
数据的逻辑结构类型
线性结构:
数据结构包括数据的逻逻辑辑结结构构,数据在计算机系 统中的存储结构和数据操算作法的集合
把数据以一定的逻辑结构组织起来,以适当的方 式存储在计算机系统的存储器里,其最终目的是 为了有效处理数据,提高数据处理运算速度
有效处理数据 提高数据处理运算速度
要素
目标
2020/11/23
三个要素都与我们所要实现的目标相关 8
K1 K2 K3 K4 K5 K6
物理结构
0300 0301 0302 0303 0304 0305 0306 0307 0308 0309
17
数据的存储结构
思考:为什么数据的逻辑结构与物理结构 没有完全统一?
存储器的特点:由地址连续的单元构成。--线性关系 单元间的线性关系有时不能直接反映复杂的逻辑关系
2020/11/23
18
建立理解模型——图书馆
为后续课程内容的理解,我们先观察一个 现实生活中的实例——一个不那么现代的 图书馆(书店)。
图书馆存放了大量的书,都放在书架上
2020/11/23
19
图书馆
为便于在海量的图书中寻找到需要的书籍,图书馆往往提 供一种索引卡片来帮助找书。
索引卡片上除了记录书的概要信息和分类号码等,还有书 籍在书架上的位置,如第几个书架,第几排等。
存储器的特点:由地址连续的单元构成
2020/11/23
15
数据的存储结构
K1
K2
K3
K4
逻辑结构
2020/11/23
K1 K2
K3
K4
物理结构
0300 0301 0302 0303 0304 0305 0306 0307 0308 0309
16
数据的存储结构
K1
K2
K3
K4
K5
K6
逻辑结构
2020/11/23
2
§1.2 数据结构的基本概念
数据结构的概念 数据的逻辑结构 数据的存储结构 算法
2020/11/23
3
数据及数据元素的概念
数据是客观事物在计算机内的抽象描述。即所有能 输入到计算机中,并能被计算机所处理的符号的总 称。
数据指一些事实,或一些数,或一些符号集合。有 广泛的含义(各种数值、字母、字符、图形图像、 语言、程序)。
2020/11/23
11
数据的逻辑结构
数据元素之间关系的描述 描述逻辑结构的方法:描述法和图示法 描述法:
二元组 B = ( K, R )
K:元素集合 R:元素间关系的集合
注意:元素间的关系一般抽象为前驱与后继关 系,即表明结构中,一个元素的前一个元素是 谁,它的后一个元素又是谁
2020/11/23
有且仅有一个开始数据元素 有且仅有一个终点数据元素 中间所有数据元素有且仅有一个直接前趋和一
个直接后继
非线性结构:
每个数据元素可能有多个直接前趋和多个直接 后继
2020/11/23
14
数据的存储结构
即数据的物理结构,是数据元素在计算机 系统存储器中的存放方式
是数据的逻辑结构在存储器里的实现
数据结构研究的主要内容
①数据元素之间的逻辑关系 ②采用的存储结构 ③对这些数据元素采用何种方式进行操作
2020/11/23
9
例:数据结构——学生成绩表
✓数据元素(学号、姓名、科目、成绩) ✓数据元素之间的关系(逻辑结构) ✓数据元素的存储(物理结构) ✓对数据元素的操作(增、减、查找、修改等)
2020/11/23
1
§1.1 数据结构绪论
计算机应用:
早期,简单的数值运算 后来,应用范围扩大,处理大数据量
产生一系列问题:
如何合理安排数据元素之间的关系? 如何在计算机中存储数据元素? 如何操作数据元素以获得高效率?
引入了“数据结构”课程
2020/11/23
成 的
名字
集
数据项 成绩
合
2020/11/23
5
数据式及相互关系
是相互之间存在一种和多种特定关系的数据元 素的集合
是数据元素的集合,元素关系的集合,元素运
算的集合
涉及
例:公司的组织关系
元素的集合
员工间形成树型关系
元素间的关系
人员的管理
在关系里的操作
2020/11/23
21
链接式存储结构
K1
K2
K3
K4
逻辑结构
指向后继结点的指针
2020/11/23
K3 K1
K2 K4
物理结构
0300 0301 0302 0303 0304 0305 0306 0307 0308 0309
22
链接式存储结构
可定义一个结构类型来表示这种数据元素的类型:
typedef struct { int id; char name[20]; char subject[20]; float score;
} student_score_type;
2020/11/23
10
数据结构的三个层次
数据的逻辑结构 数据的存储结构 数据的操作集合
2020/11/23
6
数据结构的概念
元素集合 计
算
元素间的关系 机 ?
系
运算
统
元素在计算机系统里的表示--字符?整数?其它? 元素间的逻辑关系--逻辑结构 元素在计算机系统中的存储方式,元素存放位置的物
理空间关系--存储结构 操作元素的指令的集合--算法
2020/11/23
7
深刻理解数据结构的概念
数据元素是指组成数据的“事实”、“数值”或 “符号”。
数据元素是数据的基本单位,可由若干个数据项组 成
数据项可以认为是数据元素的一个属性
2020/11/23
4
数据及数据元素例
例1、学生花名册
数
数据
学生名字的集合
据
数据元素 每个学生的名字
是 由
数
例2、学生成绩表
据 元
数据
学生成绩的集合
素
形
数据元素 每个学生的成绩
2020/11/23
20
几种物理存储结构
顺序存储:
连续顺序地存放数据元素
用物理存储单元的邻接关系来表示数据元素之 间的逻辑关系
若数据的逻辑结构也是顺序(线性)的,则逻 辑结构和物理结构完全统一
链式存储:
元素在内存中不一定连续存放
用指针来表示元素之间的逻辑关系。
元素+指针
结点 元素 指针
12
数据的逻辑结构
图示法
图形要素:结点和有向线段
结点:表示一个数据元素,一般以方形框代表。 不管多么复杂的结点,都看作是一个结点
有向线段:表示元素之间的关系。
Kh
Ki
Kj
Ki的前驱
箭尾指向的结点是前驱 箭头指向的结点是后继
Ki的后继
2020/11/23
13
数据的逻辑结构类型
线性结构:
数据结构包括数据的逻逻辑辑结结构构,数据在计算机系 统中的存储结构和数据操算作法的集合
把数据以一定的逻辑结构组织起来,以适当的方 式存储在计算机系统的存储器里,其最终目的是 为了有效处理数据,提高数据处理运算速度
有效处理数据 提高数据处理运算速度
要素
目标
2020/11/23
三个要素都与我们所要实现的目标相关 8
K1 K2 K3 K4 K5 K6
物理结构
0300 0301 0302 0303 0304 0305 0306 0307 0308 0309
17
数据的存储结构
思考:为什么数据的逻辑结构与物理结构 没有完全统一?
存储器的特点:由地址连续的单元构成。--线性关系 单元间的线性关系有时不能直接反映复杂的逻辑关系
2020/11/23
18
建立理解模型——图书馆
为后续课程内容的理解,我们先观察一个 现实生活中的实例——一个不那么现代的 图书馆(书店)。
图书馆存放了大量的书,都放在书架上
2020/11/23
19
图书馆
为便于在海量的图书中寻找到需要的书籍,图书馆往往提 供一种索引卡片来帮助找书。
索引卡片上除了记录书的概要信息和分类号码等,还有书 籍在书架上的位置,如第几个书架,第几排等。
存储器的特点:由地址连续的单元构成
2020/11/23
15
数据的存储结构
K1
K2
K3
K4
逻辑结构
2020/11/23
K1 K2
K3
K4
物理结构
0300 0301 0302 0303 0304 0305 0306 0307 0308 0309
16
数据的存储结构
K1
K2
K3
K4
K5
K6
逻辑结构
2020/11/23
2
§1.2 数据结构的基本概念
数据结构的概念 数据的逻辑结构 数据的存储结构 算法
2020/11/23
3
数据及数据元素的概念
数据是客观事物在计算机内的抽象描述。即所有能 输入到计算机中,并能被计算机所处理的符号的总 称。
数据指一些事实,或一些数,或一些符号集合。有 广泛的含义(各种数值、字母、字符、图形图像、 语言、程序)。
2020/11/23
11
数据的逻辑结构
数据元素之间关系的描述 描述逻辑结构的方法:描述法和图示法 描述法:
二元组 B = ( K, R )
K:元素集合 R:元素间关系的集合
注意:元素间的关系一般抽象为前驱与后继关 系,即表明结构中,一个元素的前一个元素是 谁,它的后一个元素又是谁
2020/11/23
有且仅有一个开始数据元素 有且仅有一个终点数据元素 中间所有数据元素有且仅有一个直接前趋和一
个直接后继
非线性结构:
每个数据元素可能有多个直接前趋和多个直接 后继
2020/11/23
14
数据的存储结构
即数据的物理结构,是数据元素在计算机 系统存储器中的存放方式
是数据的逻辑结构在存储器里的实现
数据结构研究的主要内容
①数据元素之间的逻辑关系 ②采用的存储结构 ③对这些数据元素采用何种方式进行操作
2020/11/23
9
例:数据结构——学生成绩表
✓数据元素(学号、姓名、科目、成绩) ✓数据元素之间的关系(逻辑结构) ✓数据元素的存储(物理结构) ✓对数据元素的操作(增、减、查找、修改等)