数据结构基础 - 队列与链表

2018-01-06  本文已影响0人  OkCoco

数据结构

指相互之间存在一种或多种特定关系的数据元素的集合,即对象间逻辑关系。

数据存储结构

用来描述数据在计算机中的存储方式;
常用的数据存储方式就两种:
  顺序存储 -- Array、ArrayList、Queue
  非顺序存储 -- 链表、Tree

常见数据结构

2.双链表
双链表,就是节点中包含指向下一个节点的指针和指向上一个节点的指针

image.png

3.循环链表
即双向链表的头尾相接


image.png

4.优点
(1)使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。
(2)数据的存取往往要在不同的排列顺序中转换,而链表是一种自我指示数据类型,因为它包含指向另一个相同类型的数据的指针(链接)。链表允许插入和移除表上任意位置上的节点,但是不允许随机存取。

5.缺点
失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。

  1. 队列的方法
add(E e)     将指定的元素插入此队列(如果立即可行且不会违反容量限制),在成功时返回 true,如果当前没有可用的空间,则抛出 IllegalStateException。返回boolean。
element()    获取不移除此队列的头,如果此队列为空,则抛出NoSuchElementException,返回泛型E。
offer(E e)   将指定的元素插入此队列(如果立即可行且不会违反容量限制),当使用有容量限制的队列时,此方法通常要优于 add(E),后者可能无法插入元素,而只是抛出一个异常。返回boolean。
peek()       获取不移除此队列的头,如果此队列为空,则返回 null。返回泛型E。
poll()       获取并移除此队列的头,如果此队列为空,则返回 null。返回泛型E。
remove()     获取并移除此队列的头。返回泛型E。

1.优点
(1)保证数据的有序性,先到先处理。
(2)插入数据快速
2.缺点
(1)遍历数据较为缓慢

上一篇 下一篇

猜你喜欢

热点阅读