数据结构与算法-1

学习视频:数据结构与算法基础(青岛大学-王卓)

数据元素、对象和结构

数据元素:组成数据的基本单位
数据>数据元素>数据项
数据对象:性质相同的数据元素的集合,数据的子集
数据结构:数据元素之间相互关系,包括以下三点
1.数据元素之间的逻辑关系;
2.数据元素及其关系在计算机内存中的表示,称为数据的物理结构或"存储结构";
3.数据的运算和实现,及对数据元素的操作以及这些操作在相应存储结构上的实现。

逻辑结构的划分:
线性结构,只有一个开始和一个终端节点,并且所有结点最多只有一个直接前趋和一个直接后继(ex:线性表、栈、队列、串);
非线性结构,一个结点可能有多个直接前趋和直接后继(ex:树、图)。
存储结构的划分:
顺序存储结构:数据元素之间的逻辑关系由元素的存储位置来表示
链式存储结构:数据元素之间的逻辑关系用指针来表示(存储该元素本身的同时存储了下一个元素的位置);
索引存储结构:存储结点信息的同时建立附加的索引表(Index);
散列存储结构:根据结点的关键字直接计算出该节点的存储结构

数据类型和抽象数据类型

数据类型(DataType):同样性质值的集合以及在这个值的集合上的一组操作;
抽象数据类型(AbstractDataType):是指一个数学模型以及定义在此模型上的一组抽象运算(不考虑在计算机内部如何存储),可用三元组DSP表示(D:数据对象,S:D上的关系集,P:对D的基本操作集)
形式定义:
ADT 抽象数据类型名{
数据对象:<数据对象的定义>//此两项用伪代码描述
数据关系:<数据关系的定义>//此两项用伪代码描述
基本操作:<基本操作的定义>//基本操作名、初始条件、操作结果
}ADT 抽象数据类型名

参数表:
赋值参数,只为操作提供输入值;
引用参数,以&打头,除可提供输入值外,还将返回操作结果。
初始条件:
描述操作执行之前数据结构和参数应该满足的条件,若不满足,则操作失败,并返回相应出错信息,若初始条件为空,则省略。
操作结果:
说明操作正常完成之后,数据结构的变化状况和应返回的结果。

ex:Circle的定义
ADT Circle{
数据对象:D={r,x,y|r,x,y均为实数}
数据关系:R={<r,x,y>|r是半径,<x,y>是圆心坐标}
基本操作:
Circle(&C,r,x,y)//返回C
操作结果:构造一个圆。
double Area(C)
初始条件:圆已存在。
操作结果:计算面积。
double Circumference(C)
初始条件:圆已存在。
操作结果:计算面积。
}ADT Circle

参考视频:数据结构与算法基础(青岛大学-王卓)

猜你喜欢

转载自blog.csdn.net/fly_ship/article/details/107553108