基础数据结构
类型
- 静态数组
- 动态数组
- 栈
- 数组队列
- 循环队列
- 链表
- 树
- 二分搜索树
- 堆
- 优先队列
静态数组
是一种线性结构数据,基于基本数组实现,在初始化时已经定义好了可以存放的数据大小,不可动态扩容.
动态数组
基于静态数组,支持动态扩容与缩容。支持从任意位置插入删除数据。
栈
基于动态数组实现,是一种特殊的后进先出队列(LIFO),只能从队列顶部插入取出数据。
-应用场景
系统调用栈,括号匹配
数组队列
基于动态数组实现,是一种线性结构,先进先出(FIFO),只能从一端插入元素(队尾),另一端取出元素(队首).类似于一个排队的过程.实现过程: 插入数据时是将数据插入数组的尾端,取出数据时是将数组索引为0的数据取出,然后将后面的数据往前移动一个位置.
循环队列
基于动态数组实现,基本特性与数组队列相同,不同点只是在实现方式上面,实现过程:插入数据时将数据插入数组的尾端,如果此时数组满了如果数组前面有空位置,将数据按照顺序插入前面位置,如果前面位置的数组也满了,再进行数据的扩容,取出数据时取出队列最前面的一个数据,不进行数组数据的移动,将位置空出来,给后续插入数据时使用,(数据插入到数组的最后一个位置的时候循环移动到数据索引为0的位置插入(如果还有空间的情况下))
链表
一个节点包含指向下一个节点位置的索引的一种数据结构,类似与铁链环环相扣.
树
一个节点包含有多个执向下一个节点位置的索引,类似于树的形状.
二分搜索树
一个几点包含有两个执行下一个节点的索引,通常称之为包含左孩子和右孩子.左孩子小于该节点,该节点小于右孩子.