package Queue; import java.io.*; class linked_List_Queue { public QueueNode front; public QueueNode rear; public linked_List_Queue() { front=null; rear=null; } //方法enqueue:队列数据的存入 public boolean enqueue(int value) { QueueNode node=new QueueNode(value); if(rear==null) front=node; else rear.next=node; rear=node; return true; } //方法dequeue:队列数据的取出 public int dequeue(int action) { int value; QueueNode tempNode,startNode; if(!(front==null)&&action==1) { if(front==rear) rear=null; value=front.data; front=front.next; return value; }else if(!(rear==null)&&action==2) { startNode=front; value=rear.data; tempNode=front; while(front.next!=rear&&front.next!=null) { front=front.next;tempNode=front; front=startNode; rear=tempNode; } if((front.next==null)||(rear.next==null)) { front=null; rear=null; } return value; }else return -1; } } public class DoubleendsQueue { public static void main(String args[]) throws IOException{ linked_List_Queue queue=new linked_List_Queue(); int temp; int num1=-1; System.out.println("用链表实现双向队列"); for(int i=1;i<6;i++) { num1+=2; System.out.println("在双向队列前端加入第"+i+"个数据,此数据值为"+num1); queue.enqueue(num1); } for(int i=1;i<6;i++) { int num2=1; if(num2==1) { temp=queue.dequeue(num2); System.out.println("从双向队列前端按序取出的数据值为:"+temp); } if(num2==2) { temp=queue.dequeue(num2); System.out.println("从双向队列后端按序取出的数据值为:"+temp); num2--; } num2++; } } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)