算法 之 队列的简单创建
2015-11-30 11:53
239 查看
相对于其他的数据结构,队列是十分简单的。这里也不多做讲解,只是用代码来写一个简单的队列,让实现插入和删除等操作:
在代码中测试:
结果:
package Queue; public class Queue{ private int maxSize; //队列的容量存储大小 private long[] queueArray; //用数组来存储队列的对象 private int front; //队列的头指针 private int rear; //队列的尾指针 private int nElems; //用于表示队列的长度 public Queue(int s){ maxSize = s ; queueArray = new long[maxSize]; front = 0; rear = -1; nElems = 0; } //向队列中加入数据 public void insert(long value){ if (rear == maxSize - 1) { rear = -1; } queueArray[++rear] = value; nElems++; } //从队列中移除数据 public long remove(){ long temp = queueArray[front++]; if (front == maxSize) { front = 0; } nElems--; return temp; } //查看当前的队首元素 public long peek(){ return queueArray[front]; } //判断队列是否为空 public boolean isEmpty() { return (nElems == 0); } //判断队列是否已满 public boolean isFull(){ return (nElems == maxSize-1); } //队列的大小 public int size(){ return nElems; } }
在代码中测试:
package Queue; public class QueueApp { public static void main(String[] args){ Queue queue = new Queue(5); queue.insert(10); queue.insert(20); queue.insert(30); queue.insert(40); queue.remove(); queue.remove(); queue.insert(22); queue.insert(33); while(!queue.isEmpty()){ long n = queue.remove(); System.out.print(" " + n); } System.out.println(); } }
结果:
30 40 22 33
相关文章推荐
- nginx js、css多个请求合并为一个请求(concat模块)
- 如推理般层层递进——从一个单例设计说起
- Ubuntu卡在登陆界面,循环登陆,无法进入
- 使用Eclipse开发工具如何解决Java Compiler中Annotation Processin不出现的问题
- (LaTex)CTex的初次使用心得及入门教程
- 简单选择排序
- CentOS 关闭蜂鸣
- Oracle 安装遇到的问题:正在检查操作系统要求...要求的结果: 5.0,5.1,5.2,6.0 之一..
- bzoj1036: [ZJOI2008]树的统计Count - 树链剖分
- GitHub控件之BadgeView(数字提醒)
- shell编程之函数与信号捕捉
- 函数调用关系分析软件
- share sdk分享失败-QQAPI- QQApi.m:235 param error: preview image data is too big
- 学习笔记(3)——文件管理
- Oracle大数据常见优化查询
- 244. Shortest Word Distance II
- C++11学习笔记(四)
- CoreOS安装到VMware
- qemu核心机制分析-协程coroutine
- Lintcode: Minimum Subarray