绪论第一讲:
⭐数据结构
→信息的表示,信息的处理
→信息的表示:数据结构(线性表、队列等)
→ 信息的处理:算法(排序和查找)
⭐数据结构在讲什么?
计算机是一门研究用计算机进行信息表示和处理的科学;涉
及到两个问题:信息的表示,信息的处理。
数据结构:分析待处理问题中的对象的特征及各对象之间存
在的关系
数据结构:•
线性表、栈和队列
算法:
•
图,树,二叉树
第一节:数据结构基本概念
数据(Data)
:
是客观事物的符号表示。 在计算机科学中指的是所有能输入到计算机中并被计算机程序处理的符号的总称。
![](https://i-blog.csdnimg.cn/direct/4c47d2fe01324f80b342aa99316da26a.png)
数据元素(Data Element)
:是数据的基本单位,在程序中通常作为一个整体来进行考虑和处理。 一个数据元素可由若干个数据项(Data Item)组成。数据项是数据的不可分割的最小单位。数据项是对客观事物某一方面特性的数据描述。
数据结构(Data Structure):是指相互之间具有(存在)一定
联系(关系)的数据元素的集合。
数据结构四要素:
Ø 逻辑结构
:
数据元素之间逻辑关系的描述:D_S=(D,S)
Ø 存储结构:
数据元素在计算机中的存储及其逻辑关系的表现称为
数据的存储结构或物理结构
Ø 数据操作:
数据操作
Ø 应用场景
逻辑结构
数据元素之间的关系可以是元素之间代表某种含义的自然关系,也可以是为处理问题方便而人为定义的关系,这种人为定义的 “关系”称为数据元素之间的逻辑 关系,相应的结构称为逻辑结构/概念结构。
![](https://i-blog.csdnimg.cn/direct/f080d04374b349229e2731eaa8de6341.png)
逻辑结构
逻辑结构有
四种基本类型
:
① 集合:结构中的数据元素除了“同属于一个集合”外,
没有其它关系。
② 线性结构:结构中的数据元素之间存在一对一的关系。
③ 树型结构:结构中的数据元素之间存在一对多的关系。
④ 图状结构或网状结构:结构中的数据元素之间存在多
对多的关系。
![](https://i-blog.csdnimg.cn/direct/91b18306623f409fa7653a8eaf83dafe.png)
逻辑结构: (有时称为数据结构)
Ø 线性结构: 线性表、栈、队列、串(最多只有一一个直接前趋和一个直接后继)
Ø 非线性结构: 树、图、多维数组、广义表
逻辑结构
逻辑结构: (有时直接称为数据结构)
● 线性结构: 线性表、栈、队列、串(最多只有一一个直接前
趋和一个直接后继
● 非线性结构: 树、图、多维数组、广义表
说明:
1、逻辑结构与数据元素本身的形式、内容无关
2、逻辑结构与数据元素的相对位置无关
3、逻辑结构与所含结点个数无关
4、逻辑结构与计算机无关
物理结构
数据结构在计算机中的存储形式叫做物理结构或者存储结构
![](https://i-blog.csdnimg.cn/direct/63099405b9094ddfb8cf7c3a5b164699.png)
![](https://i-blog.csdnimg.cn/direct/1642539012844939ba6ab603b7817e0f.png)
物理结构
物理结构有四种基本类型:
① 顺序结构
② 链式结构
③ 索引结构
④ 散列结构
物理结构
顺序结构: 数据元素在内存中按序连续存储, 用数据元素在 存储器中的相对位置来表示数据元素之间的逻辑结构(关系)。
![](https://i-blog.csdnimg.cn/direct/f2670ea45709494d875ce0f1aa3d35cf.png)
物理结构
Ø 在C语言中,通常用一维数组表示顺序存储结构
Ø 数据元素存放的地址是连续的;
Ø 随机存取表中元素。
Ø 插入和删除操作需要移动元素。
物理结构
链接结构:在每一个数据元素中增加存放另一个元素地址的指针(pointer ),用该指针来表示数据元素之间的逻辑结构 (关系)。
![](https://i-blog.csdnimg.cn/direct/f9d9dc6069254ac4949b0553ec4ff51d.png)
物理结构
Ø 用结构体类型表示链式存储结构。
Ø 比顺序存储结构的存储密度小 (每个节点都由数据域和指针域组成,
所以相同空间内假设全存满的话顺序比链式存储更多)。
Ø 逻辑上相邻的节点物理上不必相邻。
Ø 插入、删除灵活 (不必移动节点,只要改变节点中的指针)。
Ø 查找结点时链式存储要比顺序存储慢。
Ø 每个结点是由数据域和指针域组成。
![](https://i-blog.csdnimg.cn/direct/7a62bf0b2a68454b9da48f72f13e6a35.png)
物理结构
🔺 散列存储方法:散列存储,又称hash存储,是一种试图将数据元素 的存储位置与关键码之间建立确定对应关系的查找技术。
🔺 x(数据元素) →y(存储位置)
🔺 散列法存储的基本思想是:由节点的关键码值决定节点的存储地址。散列技术除了可以用于查找外,还可以用于存储。
数据操作
- 增加(Create)
- 检索(Retrieve)
- 更新(Update)
- 删除(Delete)
- 。。。
数据对象
数据对象(Data Object):是性质相同的数据元素的集合,是数据的一个子集。如字符集合C={‘A’;‘B’;‘C’;…} 。
抽象数据类型
抽象数据类型(Abstract Data Type ,简称ADT):是指一个数学 模型以及定义在该模型上的一组操作。 ADT的定义仅是一组逻辑特性描述, 与其在计算机内的表示和实 现无关。因此,不论ADT的内部结构如何变化,只要其数学特性不变, 都不影响其外部使用。 ADT的形式化定义是三元组:ADT=(D,S,P) 其中:D是数据对象,S是D上的关系集,P是对D的基本操作集。
![](https://i-blog.csdnimg.cn/direct/23c5838c7f074263b730770dd8b63baf.png)
总结:
![](https://i-blog.csdnimg.cn/direct/0eef011fedf54627a9119338b2b90644.png)
复习考研数据结构的第一天!!!