数据结构总结

来源:互联网 发布:淘宝助理怎么打印订单 编辑:程序博客网 时间:2024/05/20 05:47

数据结构:

是一组相互之间存在一种或多种特定关系的数据的组织方式和他们在计算机内的存储方式,以及定义在该组数据上的一组操作

数据结构的组织方式一般分为:集合,线性结构,树,图。

这四种组织方式之间的关系:数据元素之间的关系从松散到复杂逐次递增。
集合:任意两个结点之间没有邻接关系,组织松散。
这里写图片描述
线性结构:结点按照逻辑关系一次排列成一条链。
这里写图片描述
树:数据元素之间具有分支,层次特性,上层结点可以和下层多个结点相邻,但是下层结点只能和上层一个结点相邻。
这里写图片描述
图:图结构最复杂,其中任意两个结点都可以邻接。
这里写图片描述

数据结构内容:
这里写图片描述

主要就是这四种逻辑结构的顺序存储和链式存储。下面就对比着进行总结:

顺序存储:
共性:元素按照顺序依次放入内存一组连续的存储单元中

不同点:
线性表:将线性表中的元素按照顺序依次放入内存一组连续的存储单元中。
栈:先进后出,后进先出,栈是受限的线性表,由栈顶top控制进栈和出栈的位置。
队列:先进先出,用front 标识队列首元素的前一个单元,用rear标识队列的最后一个单元的位置,来控制进队列和出队列的元素的位置。
数组:按行按列进行顺序存储。

完全二叉树:按照树上的标号按顺序依次存储在一个连续的一维数组中。
如果二叉树不是完全二叉树,则把他补全成二叉树再按照顺序依次存放。

邻接矩阵,把图上的结点按照顺序画出来,结点之间有线的用1表示,没有的用0表示。

链式存储
链式存储有一个数据域和一个next域,数据域用于存放数值,next 域用于存放逻辑结构上相邻的下一个数据元素的存放地址。

线性表data域用于存放数值,next 域用于存放逻辑结构上相邻的下一个数据元素的存放地址。

栈:插入数据的时候,让栈顶元素指针指向该元素,让该元素的指针指向该栈的第二个元素,删除的时候直接删除栈顶元素,让头指针指向原来栈中第二个元素。

队列:插入数据的时候从队尾开始,让对尾指针指向该元素,删除的时候从队首开始,让队列的头结点直接指向队列的第二个元素。

树:
二叉树:数的next域为左孩子域和右孩子域,分别指向左孩子和右孩子。
树:
孩子链,用一维数组表示,next 指向孩子所在的位置,
孩子兄弟,
双亲:用一维数组表示,指针next指向双亲所在的位置。
图:
邻接表,是顺序存储跟链式存储相结合的一种存储方法。跟树的孩子链表示法很相似。

原创粉丝点击