数据结构之栈和队列(双向链表及数组实现)
逻辑概念:
- 栈:数据先进先出,犹如弹匣
- 队列:数据先进先出,好似排队
1. 栈和队列的实现(Java)
-
双向链表实现(对链表不熟悉的可以看我的另一篇文章数据结构之单双向链表):
-
实现双向队列:
// 双向链表结构 public class DoubleNode { public int value; public DoubleNode pre; public DoubleNode next; public DoubleNode(int data) { value = data; } } // 双向队列 public static class DoubleEndsQueue<T> { public Node<T> head; // 头部指针 public Node<T> tail; // 尾部指针 // 从头部添加 public void addFromHead(T value) { Node<T> cur = new Node<T>(value); if(head == null) { head = cur; tail = cur; } else { cur.next = head; head.pre = cur; head = cur; } } // 从尾部添加 public void addFromBottom(T value) { Node<T> cur = new Node<T>(value); if(tail == null) { head = cur; tail = cur;
-