数据结构(素鸡版)

原版地址


数据结构 


数据结构的结构类型

集合:

  • 除了同属于一个属外 她们之间没有其他关系 关系平等

线性结构:

  • 一对一关系 一个连一个嘛

树形结构:

  • 一种一对多的层次关系。

图形结构:

  • 多对多的关系

数组:

优点:

  • 插入快,只需要在数组末尾添加元素即可,
  • 查询快,如果知道索引可以快速地存取

缺点:

  • 删除慢,删除后后边的需要全部向前移动补全 所以慢
  • 查找慢,不给索引的情况下慢
  • 扩展性差,一旦创建大小就固定了

栈:

  • 栈顶进行插入和删除 相对下一段是栈底
  • 优点:提供后进先出的存取方式
  • 缺点:存取其他项很慢
  • 栈不支持对指定位置进行删除,插入

链表:

  • 优点:插入快,删除快
  • 缺点:查找慢(一个个节点查)

单向链表:

  • 只可向一个方向遍历
  • 它的一个结点(node)分两部分,第一部分存储结点的数据信息(data),第二部分存储指向下一结点的地址(next)信息。最后一个结点(链尾)指向一个空地址(null)

双端链表:

  • 每个结点既能指向下一个结点,又能指向前一个结点

 队列:

  • 前端删除 后端插入
  • 优点:提供先进先出的存取方式
  • 缺点:存取其他项都很慢

树:

  • 优点:查找,插入,删除都快  树是平衡的
  • 缺点:删除算法复杂

二叉树:

红黑树:

2-3-4树:

散列表 也叫哈希表:

  • 是根据关键码值(Key value)而直接进行访问的数据结构列表
  • 数组和链表的结合体
  • 优点:如果关键字已知则存取速度极快,插入快
  • 缺点:删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分

堆:

  • 优点:插入,删除快,对最大数据的项存取很快
  • 缺点:对其他数据项存取很慢 
  • 堆是一种完全二叉树 没有空项

图:

  • 图的应用主要在网络方面,例如选路算法,最短路径算法,地图上找最近的公交路线等等都要用这方面的知识的
  • 优点:对现实世界建模
  • 缺点:有些算法慢且复杂

有向图:

无向图:

。。。其他就不说了吧 感觉很少用的说 over

猜你喜欢

转载自blog.csdn.net/qq_42259105/article/details/82843916