数据结构的一些基本概念

抽象数据类型

抽象数据类型(abstract data type, ADT)是一些操作的集合。对诸如表、集合、图和它们的操作一起可以看作是抽象数据类型。

数组

使用数组实现表结构时,在元素的增删比较麻烦,例如在0位增加一个元素,需要将所有元素后移一位,删除一个元素,需要讲所有元素前移一位,时间复杂度位O(N)。

链表

链表实现表结构时,增删操作的时间复杂度位O(1)。假设链表有5个节点,当需要在2和3之间增加一个节点时,只要创建一个新的节点空间,让2的next指针指向这个新创建的节点,再让新创建节点的指针指向3这个节点,则新增操作完成。删除某个节点时,讲节点的前一个节点的next指针指向当前节点的下个节点,并删除当前节点即可。

双向链表

双向链表与链表的差别在于,双向链表出了有next指针指向下一个元素,还有prev指针指向前一个元素,形成了双向链。

循环链表

循环链表的特别在于,最后一个元素的next指向第一个元素,而第一个元素的prev指向了最后一个元素。在双向链表中,这两个指针指向的都是null。

队列

文章目录
  1. 1. 抽象数据类型
  2. 2.
    1. 2.1. 数组
    2. 2.2. 链表
    3. 2.3. 双向链表
    4. 2.4. 循环链表
  3. 3.
  4. 4. 队列
,