数据结构中数据存储的几种形式

  • Post author:
  • Post category:其他




数据结构中数据存储的几种形式

1.栈:数据从一个口进,从一个口出

特点:先入后出

2.队列:数据用两个口进,从两个口出

特点:先入先出

3.数组:

特点:查找容易,增删难

例子:

int [] arr = new int [1,2,3,4];

当创建数组的时候,对于1,2,3,4已经创建索引,并且将首地址赋予arr,要是查找,就很快;对于增删操作,当要是删除原本的数组里面的某一个数据,首先就需要重新建一个数组,然后将删除数据后的数组里面的数据复制后粘贴到新建的数组里面,这个过程就比较耗时;

新建一个数组的原因:数组创建之后数组的长度是不变的,当进行增删操作的时候,数组的长度就变化了,源数组就不适用了,这时就需要一个新的数组来存放操作后的数据。

4.链表:

特点:查找复杂,增删容易

有关于链表:单独的数据存在的形式:

单独数据的存在形式

两种链表的形式:单项链表和双向链表

单向链表:

只能向一个方向 ,不具有记忆性

双向链表:

具有记忆性,可以知道上一个数据源是什么

有关于链表查找复杂的讲解:在链表之中的数据不是像数组那样数据时连续的,在链表之中,数据是离散的,所以每次查找数据会就需要从头开始查询,这样就比较复杂并且耗时

增删的容易性:应为单独数据存在的形式,增删数据就只需要修改一下下一个数据的数据源地址就可以了

5.树:

有关于树的一些基本概念:

树根,节点,树叶

树根:树最上面的节点 也叫作父根

节点:连接着树根与树叶的点,就叫做节点

树叶:除了上面的一个节点,下面不存在节点

二叉树:

分支不能超过两个,可以说是左子树(左边)与右子树(右边)

完全二叉树(平衡二叉树):所有的节点都含有两个儿子(左子树与右子树)

不完全二叉树:并不是说所有的节点都有两个儿子

排序树/查找树:

排序树特点:小于的数就往左,大于的数就往右

红黑树:

特点:趋近于平衡树,查询速度特别快,查询叶子结点的最大次数和最小次数不能超过两倍

有关于红黑树的约束:

a.节点可以是红色的也可以是黑色的

b.根节点是黑色的

c.叶子结点(空节点)是黑色的

d.每个红色的节点的子节点都是黑色的

e.任何一个节点到其每一个叶子节点的所有路径上的黑色节点数相同



版权声明:本文为songyilianblog原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。