程序员码农的世界

2018-12-28

2018-12-30  本文已影响65人  DreamPath

基于常见数据结构整理

数据结构

数据存储的常用结构有:栈、队列、数组、链表和红黑树

1.stack,又称堆栈,它是运算受限的线性表。

  1. 其限制是仅允许在标的一端进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作。
    先进后出(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素)

队列

例如:小火车过山洞
  入队:车头先进去,车尾后进去;
  出队:车头先出来,车尾后出来。

数组

有序的元素序列,数组是在内存中开辟一段连续的空间,并在此空间存放元素。
例如:一个班级的学号最后两位数的,大多情况下的班级30人:都是从1到30固定到每个学生,但是数组索引只是从0开始的。

数组的特点
 查询快,增删慢。

查询元素:
查询数组的元素是根据索引直接查找该元素
增加元素:
增加元素时需要创建新数组,将指定新元素存储在指定索引位置,再把原数组元素根 据索引,复制到新数组对应索引的位置。

图片.png
删除元素:
指定索引位置删除元素:需要创建一个新数组,把原数组元素根据索引,复制到新数组对应索引的位 置,原数组中指定索引位置元素不复制到新数组中
图片.png

链表

链表:linked list,由一系列结点node(链表中每一个元素称为结点)组成。

链表的特点
 增删快,查询慢。
图片.png

1.树的定义
n(n>=0)个结点的有限集T.
2.树的基本术语
树型结构与线性结构的区别
树的存储结构 孩子表示法
树的存储结构 孩子兄弟表示法

二叉树:

  也叫做红黑树,binary tree ,是每个结点不超过2的有序树(tree)。
图片.png
二叉树的子树有五种基本的形态

注意:二叉树的子树有左右之分

图片.png
二叉树的性质
图片.png
二叉树的约束:

1.结点可以是红色的或者黑色的

  1. 根结点是黑色的。

  2. 叶子结点(特指空结点)是黑色的。

  3. 每个红色结点的子结点都是黑色的。

  4. 任何一个结点到其每一个叶子结点的所有路径上黑色结点数相同。
    二叉树的特点
    速度特别快,趋近平衡树,查找叶子元素少和多次数不多于二倍。

二叉树的存储形式:
图片.png 图片.png
上一篇 下一篇

猜你喜欢

热点阅读