数据结构
数据结构的结构类型
集合:
- 除了同属于一个属外 她们之间没有其他关系 关系平等
线性结构:
- 一对一关系 一个连一个嘛
树形结构:
- 一种一对多的层次关系。
图形结构:
- 多对多的关系
数组:
优点:
- 插入快,只需要在数组末尾添加元素即可,
- 查询快,如果知道索引可以快速地存取
缺点:
- 删除慢,删除后后边的需要全部向前移动补全 所以慢
- 查找慢,不给索引的情况下慢
- 扩展性差,一旦创建大小就固定了
栈:
- 栈顶进行插入和删除 相对下一段是栈底
- 优点:提供后进先出的存取方式
- 缺点:存取其他项很慢
- 栈不支持对指定位置进行删除,插入
链表:
- 优点:插入快,删除快
- 缺点:查找慢(一个个节点查)
单向链表:
- 只可向一个方向遍历
- 它的一个结点(node)分两部分,第一部分存储结点的数据信息(data),第二部分存储指向下一结点的地址(next)信息。最后一个结点(链尾)指向一个空地址(null)
双端链表:
- 每个结点既能指向下一个结点,又能指向前一个结点
队列:
- 前端删除 后端插入
- 优点:提供先进先出的存取方式
- 缺点:存取其他项都很慢
树:
- 优点:查找,插入,删除都快 树是平衡的
- 缺点:删除算法复杂
二叉树:
红黑树:
2-3-4树:
散列表 也叫哈希表:
- 是根据关键码值(Key value)而直接进行访问的数据结构列表
- 数组和链表的结合体
- 优点:如果关键字已知则存取速度极快,插入快
- 缺点:删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分
堆:
- 优点:插入,删除快,对最大数据的项存取很快
- 缺点:对其他数据项存取很慢
- 堆是一种完全二叉树 没有空项
图:
- 图的应用主要在网络方面,例如选路算法,最短路径算法,地图上找最近的公交路线等等都要用这方面的知识的
- 优点:对现实世界建模
- 缺点:有些算法慢且复杂
有向图:
无向图:
。。。其他就不说了吧 感觉很少用的说 over