什么是队列:
队列与栈一样,也是一种线性表,不同的是,队列可以在一端添加元素,在另一端取出元素,也就是:先进先出。从一端放入元素的操作称为入队,取出元素为出队,
特点:
1 . 队列跟栈一样,也是一种抽象的数据结构。
2. 具有先进先出的特性,支持在队尾插入元素,在队头删除元素。
实现:
队列可以用数组来实现,也可以用链表来实现。
用数组实现的队列叫作顺序队列,用链表实现的队列叫作链式队列。
public class Queue<T> {//记录头结点private Node head;//记录尾节点private Node last;//记录元素个数private int N;public Queue() { //初始化this.head = new Node(null,null);this.last = null;N=0;}//尾插法public void inQueue(T t){ //往队列插入元素if (last==null){ //插入第一个元素时last=new Node(t,null);head.next=last; //此时头尾节点指向同一个元素N++;}else {//不为空时Node temp=last;last=new Node(t,null);temp.next=last;}N++;}//拿元素 相当于头删元素public T outQueue(){if (head.next==null){return null;}else {Node first=head.next; //第一个元素head.next=first.next;N--;if (N==0){ //如果最后元素拿完 需要重置last 否则此时last依旧指向最后一个元素last=null;}return first.item;}}private class Node{private T item;private Node next;public Node(T t, Node next) {this.item = t;this.next = next;}}
}