基础数据结构

类型

  • 静态数组
  • 动态数组
  • 数组队列
  • 循环队列
  • 链表
  • 二分搜索树
  • 优先队列

静态数组

是一种线性结构数据,基于基本数组实现,在初始化时已经定义好了可以存放的数据大小,不可动态扩容.

动态数组

基于静态数组,支持动态扩容与缩容。支持从任意位置插入删除数据。

基于动态数组实现,是一种特殊的后进先出队列(LIFO),只能从队列顶部插入取出数据。

-应用场景
系统调用栈,括号匹配

数组队列

基于动态数组实现,是一种线性结构,先进先出(FIFO),只能从一端插入元素(队尾),另一端取出元素(队首).类似于一个排队的过程.实现过程: 插入数据时是将数据插入数组的尾端,取出数据时是将数组索引为0的数据取出,然后将后面的数据往前移动一个位置.

循环队列

基于动态数组实现,基本特性与数组队列相同,不同点只是在实现方式上面,实现过程:插入数据时将数据插入数组的尾端,如果此时数组满了如果数组前面有空位置,将数据按照顺序插入前面位置,如果前面位置的数组也满了,再进行数据的扩容,取出数据时取出队列最前面的一个数据,不进行数组数据的移动,将位置空出来,给后续插入数据时使用,(数据插入到数组的最后一个位置的时候循环移动到数据索引为0的位置插入(如果还有空间的情况下))

链表

一个节点包含指向下一个节点位置的索引的一种数据结构,类似与铁链环环相扣.

一个节点包含有多个执向下一个节点位置的索引,类似于树的形状.

二分搜索树

一个几点包含有两个执行下一个节点的索引,通常称之为包含左孩子和右孩子.左孩子小于该节点,该节点小于右孩子.

原文地址:https://www.cnblogs.com/fiany/p/11586376.html