图解LinkedList

1.数据结构

1.0 类图

从类图可以发现LinkedList有多种角色,既是List线性顺序表,也是Queue队列,此外还可以当作使用。

图解LinkedList_第1张图片

继承自List、Queue

图解LinkedList_第2张图片

图解LinkedList_第3张图片

字段有first、last指针

图解LinkedList_第4张图片

双向节点,prev和next指针

1.1 链表

first字段则是链表的head,last则是tail尾节点

方法 图解
初始化 图解LinkedList_第5张图片

indexOf(76)

顺序查找

图解LinkedList_第6张图片
add(45)
图解LinkedList_第7张图片

1.2 栈

栈顶是first(head),栈底是last(tail)链尾。

        push(5)             图解LinkedList_第8张图片         pop()        图解LinkedList_第9张图片

1.3 双端队列

方法 图解  
初始化 图解LinkedList_第10张图片  

peek()

图解LinkedList_第11张图片

获取队首,返回23

 

offer(57)

入队enqueue

图解LinkedList_第12张图片 入队,插入队尾

poll()

dequeue出队

图解LinkedList_第13张图片 出队,删除队首

1.4 双向链表

方法 图解
初始化 图解LinkedList_第14张图片

addFirst(85)

offerFirst

图解LinkedList_第15张图片

addLast(80)

offerLast

图解LinkedList_第16张图片
removeFirst() 图解LinkedList_第17张图片
removeLast() 图解LinkedList_第18张图片

2.方法总结

方法 作用

add(E e)

添加到尾巴

addFirst(E e)

在链表头插入指定元素

push(E e)

往链表头部添加

pop()

删除头节点
offer(E e) add(e) 添加到尾巴

peek()

返回头元素

poll()

返回头节点元素,并删除头节点

你可能感兴趣的:(java,链表)