java循环队列
来源:互联网 发布:如何更新mac系统 编辑:程序博客网 时间:2024/06/13 12:17
public class CycleQueue<E> {private E[] data;private int front;private int rear;@SuppressWarnings("unchecked")public CycleQueue(int capacity){if(capacity <= 0) {System.out.println("初始化队列长度需要大于0");return ;}Object[] obj = new Object[capacity+1];data = (E[]) obj;front = rear = 0;}public boolean isEmpty(){return front == rear;}public boolean isFull(){return (rear+1)%data.length == front;}// 队列的元素个数public int size(){return (rear-front) + data.length*(rear>=front ? 0:1);}//入队public boolean append(E x){if(isFull()) {System.out.println("队列容量已满");return false;} else {rear = (rear+1)%data.length;data[rear] = x;return true;}}// 出队public boolean remove() {if(isEmpty()) {System.out.println("队列已为空");return false;} else{front = (front+1)%data.length;return true;}}//取队头元素public E peek(){if(isEmpty()) {System.out.println("队列为空");return null;} else{return data[ (front+1)%data.length ];}}public void clear(){rear = front = 0;}public String toString(){StringBuffer str = new StringBuffer();str.append("[ size:"+size()+" ] [ ");int count = size();int start = (front+1) % data.length;while(count > 0){str.append(data[start]+" ");start = (start+1)%data.length;count--;}str.append("]");return str.toString();}public static void main(String[] args){CycleQueue<Integer> queue = new CycleQueue<Integer>(5);queue.append(1);queue.append(2);queue.append(3);queue.append(4);queue.append(5);queue.remove();queue.append(6);queue.remove();queue.append(7);System.out.println( queue.toString() );}}
阅读全文
0 0
- Java 队列2:循环队列
- 队列:循环队列Java实现
- Java实现循环队列
- 循环队列java
- java实现循环队列
- java实现循环队列
- JAVA数据结构---循环队列
- 循环队列java实现
- java实现循环队列
- JAVA循环队列
- java循环队列
- java队列实现(顺序队列、链式队列、循环队列)
- java队列实现(顺序队列、链式队列、循环队列)
- java数据结构 广搜,队列,循环队列
- 构造队列问题(循环队列变形java)
- Java数组实现循环队列
- 数据结构:循环队列--Java实现
- 循环队列(java实现)
- 开发APP必知的5大流程(二)
- python spark中parquet文件写到hdfs,同时避免太多的小文件(block小文件合并)
- Android 获取应用当前 targetSdkVersion
- 在Linux下目录和文件的3种权限
- 【1701H1】【穆晨】【171016】连续第六天总结
- java循环队列
- hdu 6198 number number number
- 利用maven按环境打包SpringBoot的不同配置文件
- 非root权限安装python+HTSeq+numpy+easy_install
- BZOJ4771:七彩树 (LCA+Treap+可持久化线段树)
- 简单的Contentprovider和contentResolver
- UC/OS-II(二)自学笔记
- 顺序队列和链队列
- AS移动开发 随手记 string类型转换int类型