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