数据结构课程内容
数据结构基础:
线性数据结构+非线性数据结构
--线性数据结构:线性表,栈,队列,一维数组,串
--非线性数据结构:二维数组,多维数组,广义表,树与二叉树,图
数据结构应用:
查找+排序
--查找::静态查找,动态查找
--排序:内部排序(插入类、交换类、归并类、选择类),外部排序
数据结构的基本概念
数据项<数据元素<数据对象<数据结构
--数据元素(Data Element)
是数据的基本单位,通常作为一个整体进行考虑和处理
--数据项(Data Item)
一个数据元素可由若干个数据项组成。数据项是数据元素的不可分割的最小单位。
--数据对象(Data object)
是具有相同性质的数据元素的集合,是数据的一个子集。
--数据结构(Data structure)
是相互之间存在的一种或多种特定关系的数据元素的集合。
数据结构是带有结构的各数据元素的集合
数据结构三要素(重点)
◆逻辑结构:
从逻辑关系上描述数据,与数据的存储无关,它是从具体问题抽象出来的数学模型。
划分方式一
线性结构
有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前趋和一个后继。
例如:线性表、栈、队列、串
非线性结构
一个结点可能有多个直接前趋和直接后继,
例如:树、图
划分方式二
集合
数据元素间除“同属于一个集合”外,无其它关系
线性结构
一个对一个线性关系,如线性表、栈、队列
树形结构
一个对多个层次关系
图形结构
多个对多个任意关系
◆物理结构(存储结构):
数据元素及其关系在计算机中内存中的存储形式(又称映像)。
顺序存储结构(常用)![](https://img-blog.csdnimg.cn/direct/375114d15b3b49e18b4287fb97b1f3ab.png)
链式存储结构(常用)![](https://img-blog.csdnimg.cn/direct/11513e89c0a54160bace343e92bafa62.png)
索引存储结构
散列存储结构(哈希)
◆数据的运算(增删改查)
数据上的某些操作,包括:增删改查排序等:
抽象数据类型
抽象+数据类型
数据类型
(1)原子类型:其值的不可再分的数据类型
char int float double
(2)结构类型:其值可在分分解为若干成分(分量的数据类型)
struct
抽象数据类型(不具体)
实际上是求解问题形式化描述(与计算机无关)
抽象数据类型 = 逻辑结构+抽象运算(D上的操作集)
********抽象数据类型没有存储
数据结构和抽象数据类型的关系
数据结构由一个四元组来表示
Data Structure=(D,R,L,O)
数据元素
数据元素之间的逻辑关系、
逻辑关系在计算机中的停储表示
所规定的操作
抽象数据类型ADT一般包含数据元素、数据元素之间关系及操作三要素(D,R, O),其中
D是数据元素集
R是D上的关系集合
O是对D的基本操作集。
抽象数据类型的举例
//Circle为抽象数据类型名
ADT Circle
{
//数据元素的定义
D={r,x,y|r,x,y 均为实数}
R={r,x,y|r是半径,<x,y>为圆心坐标}
//操作
Circle(&C,r,x,y)
操作结果:构造一个圆
double Area(c)
初始条件:圆已存在
操作结果:计算圆的面积
......
}ADT Circle
数据结构的求解过程
选择题
(1)在数据结构中,从逻辑上可以把数据结构分成(C)。
A.动态结构和静态结构 C.线性结构和非线性结构
B.紧凑结构和非紧凑结构 D.内部结构和外部结构
(2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的(C)
A.存储结构
B.逻辑结构
C.存储实现
D.运算实现
(3)通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着(B)。
A.数据具有同一特点
B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致
C.每个数据元素都一样
D.数据元素所包含的数据项的个数要相等
(4)以下说法正确的是(D)。
A.数据元素是数据的最小单位
B.数据项是数据的基本单位
C.数据结构是带有结构的各数据项的集合
D.一些表面上很不相同的数据可以有相同的逻辑结构
数据元素是数据的基本单位
数据项是数据可操作的最小单位,
数据结构是带有结构的各数据元素的集合