数据结构与算法入门---数据结构类型
数据的逻辑结构
数据的逻辑结构指数据元素之间的逻辑哦关系(和实现无关)
分类一:线性结构和非线性结构
线性结构:有且只有一个开始结点和一个终端节点,并且所有节点都最多只有一个直接前继和一个直接后继。
线性表就是一个典型的线性结构,它有四个基本特征:
1.集合中必存在唯一的一个“第一个元素”
2.集合中必存在的一个“最后的元素”
3.除最后元素之外,其他的数据元素均有唯一一个的“后继”
4.除第一元素之外,其他的数据元素均有唯一一个的“前驱”
相对应线性结构,非线性结构的逻辑特征是一个节点元素可能对应多个直接前继和多个直接后继,常见的有树(二叉树等)、图(网等)
树:例如linux的文件系统等
分类二: 集合结构 线性结构 树状结构 网状结构
逻辑结构有四种基本类型:集合结构、线性结构、树状结构和网状结构
表和树是最常用的两种高效数据结构,许多高效的算法能够用这两种数据结构来设计实现
集合结构:三个特征:1.确定性2.唯一性3.无序性,该结构的数据元素间的关系是“属于同一集合”,别无其他关系。因为集合中元素的关系很弱,数据结构中不对该结构进行研究
线性结构:数据元素之间存在一对一的关系
树状结构:除了一个数据元素(元素01)以外每个数据元素有且仅有一个直接前驱元素,但是可以有多个直接后继元素,特点是数据元素之间是1对多的联系
网状结构:每个数据元素可以有多个直接前驱元素,也可以有多个直接后继元素,特点是数据元素之间是多对多的关系
数据的储存结构
数据的储存结构主要包括数据元素本身的储存以及数据元素之间的关系表示,是数据的逻辑结构在计算机中的表示,常储存结构有顺序储存,链式储存,索引储存以及散列储存
顺序储存结构:通常顺序储存结构是借助计算机中的数组的概念描述的
优点:节省储存空间,因为分配给数据的储存单元全用存放节点的数据,节点之前的逻辑关系没有占用储存空间
采用这种方法的,可实现对节点的随机存取,每个节点对应一个序号,通过该序号可以计算出来节点的储存地址
缺点:插入和产出操作需要移动元素,效率低
链式储存结构:数据元素的储存对应的是不连续的储存空间,每一个储存节点对应一个需要储存的数据元素
链式储存结构的特点:
1.每个节点是由数据域和指针域组成,所以相同空间内假设全存满的话顺序比链式储存更多
2.逻辑上相邻的节点物理上不相邻
3.查找删除灵活(不必移动节点,只要改变节点中的额指针)
4.查找结点链式储存要比顺序储存慢
索引储存结构: 除建立储存节点信息外,还建立附加的索引来标识节点的地址。
比如:图书,字典的目录,目录是占空间的,但是这个目录占的空间非常小,能够带给性能的极大的优越。根据索引查找数据
散列储存结构:
添加和查询非常快,按照内容查找
总结: