Java链表实现队列示意图

代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
public class LinkedQueue { // 设置两个结点node,front指向队首元素,rear指向队尾 Node front;//队头指针,指向队头节点 Node rear;//队尾指针,指向队尾节点 int size = 0;//记录队列长度 //构造函数 public LinkedQueue() { front = rear = null; } public boolean isEmpty() { return size == 0 ? true : false; } //添加元素 public boolean addQueue(Object ele) { if (size == 0) { front = new Node(null, ele); rear = front; size++; return true; } Node s = new Node(null, ele); rear.setNext(s); rear = s; size++; return true; } /** * 删除元素,出队列 * @return */ public boolean deleteQueue() { if (isEmpty()) { System.out.println("当前队列为空"); return false; } front = front.next; size--; return true; } public static void main(String[] args) { LinkedQueue queue = new LinkedQueue(); queue.addQueue(1); queue.addQueue(2); queue.addQueue(3); queue.deleteQueue(); System.out.println(queue.size); } } /** * 首先链表底层是一个个结点 */ class Node { Node next; Object element; public Node(Node next, Object element) { this.next = next; this.element = element; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } public Object getElement() { return element; } public void setElement(Object element) { this.element = element; } } |
0