逻辑结构(数据对象之间)一般有两种划分方法: 划分方法一:线性与非线性 (1)线性结构:有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前趋和直接后继 E.x. 线性表、栈、队列 (2)非线性结构:一个节点可能有多个直接前趋和直接后继 E.x. 树、图
划分方法二:四类基本逻辑结构 (1)集合结构:结构中的元素之间除了同属于一个集合,并无联系 (2)线性结构:结构中的元素存在一对一的线性关系 (3)树形结构:结构中的数据元素存在一对多的层级关系 (4)网状结构:结构中的数据元素存在多对多的任意关系
四种基本存储结构

(1)顺序存储结构:用一组连续的存储单元依次存储数据元素,数据元素之间的逻辑关系由元素的存储位置决定 E.x C/Java中的数组
(2)链式存储单元:用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示 E.x Java中的链表
(3)索引存储结构: -在存储节点存储信息的同时,还建立附加的索引表 -索引表中的每一项称为索引项 -索引项的一般形式是(关键字,地址) -关键字是唯一能识别一个节点的数据项
(4)散列存储结构(Hash存储结构) E.x Java中的Hash
在使用高级程序编程时,必须说明每个变量,常量或表达式的数据类型 (1)一些最基本的数据结构可以用数据类型来实现,如数组字符串类 (2)而另一些常用的数据结构,如栈、队列、树、图等。不能直接用数据类型表示
数据类型明显地或隐式地规定了在程序执行期间变量的取值范围,以及允许的操作 E.x 定义i为int型,就表示是[-min,max]范围内的整数,在这个整数上可以进行+、-、、\、%等操作
数据类型(Data Type) 类型相同的值的集合(int,String...)以及对值的操作
抽象数据类型(Abstract Data Type) 一个数学模型以及一些操作 E.x. 圆 操作:求周长,面积
抽象数据类型的形式定义 抽象数据类型可用(D,S,P)三元组来表示 其中:D是数据对象;S是D上的关系集;P是对D的基本操作集 定义格式:
ADT 抽象数据类型名 {
数据对象:<数据对象的定义>
数据关系:<数据关系的定义> //解释每个数据项有什么用
基本操作:<基本操作的定义>
} ADT 抽象数据类型名