Data Structure
---
数据结构在学什么?
408专业课之间的关系
数据,数据元素,数据项
数据结构,数据对象
数据结构注重数据元素间的关系,数据对象要求其中的数据元素具有相同性质
数据结构的三要素
数据的逻辑结构
可分为:
- 集合:类似数学上的集合,数据元素之间并无额外联系
- 线性结构:元素之间为一对一关系,除了头节点,所有元素都有唯一前驱,除了尾节点,所有元素都有唯一后继
- 树形结构:数据元素之间为一对多关系
- 图(网)状结构:数据元素之间为多对多关系
数据的物理结构(存储结构)
- 顺序存储:逻辑上相邻的元素在物理位置上也相邻(Array数组)
- 链式存储:逻辑上相邻的元素在物理上可以不相邻,通过指示地址的指针链接(Linkedlist链表)
- 索引存储:额外建立索引表保存键值对信息(关键字-地址),地址映射到内存中的对象
- 散列存储:存储地址直接编码在关键字中,关键字直接映射到元素对象(HashMap),又称Hash存储
后三种也统称为非顺序存储
pros and cons:
数据的运算
注意:运算的定义针对逻辑结构,而运算的实现针对存储结构
例如Array和LinkedList在逻辑上均为线性结构,均具有对头出队,新元素入队等操作,但操作的具体实现上会根据存储结构不同而有所区别
数据类型、抽象数据类型
知识回顾
定义一个ADT,就是定义了数据的逻辑结构和运算,也就是定义了一个数据结构;对于数据结构的实现,则需要跟据具体情况确定物理结构(存储结构)。
注意定义和实现的区别