Java实现队列的三种方法集合
程序员文章站
2022-03-30 17:56:10
数组实现队列//数组实现队列class queue{ int[] a = new int[5]; int i = 0; //入队操作 public void in(int m) { a[i++] =...
数组实现队列
//数组实现队列 class queue{ int[] a = new int[5]; int i = 0; //入队操作 public void in(int m) { a[i++] = m; } // 出队列操作 取出最前面的值 通过循环遍历把所有的数据向前一位 public int out() { int index = 0; int temp = a[0]; for(int j = 0;j < i;j++) { a[j] = a[j + 1]; } return temp; } }
arraylist实现队列
//集合实现队列 class queue{ list<integer> list = new arraylist<integer>(); int index = 0; public void in(int n) { list.add(n); index++; } //出队列操作 //出队 public int out(){ if(!list.isempty()){ index--; return list.remove(0); } return -1; } }
两个堆栈实现队列
//两个堆栈实现一个队列 class queue3 { stack<integer> stacka = new stack<integer>(); stack<integer> stackb = new stack<integer>(); //入队 public void in(int n) { stacka.push(n); } //出队 我们把a里面的元素遍历拿出放入b中 再拿出b中的第一个元素 public int out() { //判断b栈有没有元素 有返回false 无返回真 if(stackb.isempty()) { while(!stacka.isempty()) { stackb.push(stacka.pop()); } } return stackb.pop(); } }
补充知识:java使用链表实现队列
队列使用java进行链表实现,在网上找到了一张图,很好,借鉴一下
设置两个结点node,front指向队首元素,rear指向队尾;
上代码:
public class linkedqueue { node front;//队头指针,指向队头节点 node rail;//队尾指针,指向队尾节点 int size = 0;//记录队列长度 //构造函数 public linkedqueue() { front = rail = null; } public boolean isempty() { return size == 0 ? true : false; } //添加元素 public boolean addqueue(object ele) { if (size == 0) { front = new node(null, ele); rail = front; size++; return true; } node s = new node(null, ele); //这块有个主意的地方,一旦rail设置了next属性,因为front节点与rail节点指向了同一个node节点,持有同一个结点的一个引用,因此front节点next属性也被填充 rail.setnext(s); rail = s; size++; return true; } /** * 删除元素,出队列 * @return */ public boolean deletequeue() { if (isempty()) { system.out.println("当前队列为空"); return false; } front = front.next; size--; return true; } public static void main(string[] args) { linkedqueue queue = new linkedqueue(); queue.addqueue(1); queue.addqueue(2); queue.addqueue(3); queue.deletequeue(); } } /** * 首先链表底层是一个个结点 */ class node { node next; object element; public node(node next, object element) { this.next = next; this.element = element; } public node getnext() { return next; } public void setnext(node next) { this.next = next; } public object getelement() { return element; } public void setelement(object element) { this.element = element; } }
以上这篇java实现队列的三种方法集合就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
下一篇: 我配不上她