下面用Java实现队列的基本功能(数组版)。
package cn.zhf.list; public class MyQueue { private int maxSize;//定义最大容量 private int[] qarray;//存放元素的数组 private int front;//前一个元素索引 private int rear;//后一个元素索引 private int nItems;//队列中元素的个数 //构造对象并初始化 public MyQueue(int s){ maxSize = s; qarray = new int[maxSize]; front = 0; rear = -1; nItems = 0; } //在队列尾端插入元素 public void enqueue(int i){ if(rear == maxSize - 1){ rear = -1; } qarray[++rear] = i; nItems++; } //删除队首元素 public int dequeue(){ int temp = qarray[front++]; if(front == maxSize){ front = 0; } nItems--; return temp; } public int peekFront(){//取第一个元素 return qarray[front]; } public boolean isEmpty(){ return (nItems == 0); } public static void main(String[] args) { MyQueue queue = new MyQueue(5); queue.enqueue(1); queue.enqueue(2); queue.enqueue(3); queue.enqueue(4); queue.enqueue(5); while(!queue.isEmpty()){ int i = queue.dequeue(); System.out.println(i); } } }下面是用链表实现的队列。
package cn.zhf.list; //其中的Link和LinkList两类同栈中的相同 public class LinkQueue { private LinkList list; public LinkQueue(){ list = new LinkList(); } public boolean isEmpty(){ return list.isEmpty(); } public void insert(int id,double dd){ list.insertFirst(id, dd); } public Link delete(){ return list.deleteFirst(); } public void display(){ list.displayLink(); } public static void main(String[] args) { LinkQueue lq = new LinkQueue(); lq.insert(12, 20.0); lq.insert(13, 20.1); lq.insert(14, 20.2); lq.display(); System.out.println("-----------"); lq.delete(); lq.display(); } }运行结果:
14,20.2 13,20.1 12,20.0 ----------- 13,20.1 12,20.0
原文:http://blog.csdn.net/laozhaokun/article/details/20525127