队列:先进先出;
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
1.节点类代码
public class Entry<T> { private T value; private Entry<T> next; public Entry() { this(null); } public Entry(T value) { this.value=value; this.next=null; } public void setValue(T value) { this.value=value; } public void setNext(Entry<T> next) { this.next=next; } public T getValue() { return value; } public Entry<T> getNext(){ return next; } }
2.队列的入队出队方法代码
public class Queue<T> { public Entry<T> headEntry; private Entry<T> tail; public Queue() { headEntry=new Entry<>(); tail=headEntry; } public void add(T value) {//入队 Entry<T> newEntry=new Entry<>(value); tail.setNext(newEntry); tail=newEntry; } public void delete() {//出队 if(headEntry.getNext()!=null) { headEntry.getNext().setValue(null); headEntry.setNext(headEntry.getNext().getNext()); } else { return; } } public void show(){//打印队内元素 if(headEntry.getNext()==null) { return; } for(Entry<T> p = headEntry.getNext();p!=null;p=p.getNext()){ System.out.print(p.getValue()+" "); } System.out.println(); } }
3.测试代码
public class Main { public static void main(String args[]) { Queue<String> ll=new Queue<>(); ll.add("1");//入队 ll.add("2"); ll.add("3"); ll.add("4"); ll.add("5"); ll.add("6"); ll.add("7"); ll.add("8"); ll.show();//打印队内元素 ll.delete();//出队 ll.show(); ll.delete(); ll.show(); } }
4.测试结果