队列——Java实现
来源:互联网 发布:聊天交友软件排行 编辑:程序博客网 时间:2024/05/16 12:40
基本结构
队列主要的特性是先进先出(FIFO)
先看一下队列的基本结构
private Object[] data = null; private int maxSize;// 队列的容量 private int front;// 头 private int rear;// 尾
data 用来存放队列中的值
初始化队列
public MyQueue(int max) { // 初始化 this.maxSize = max; data = new Object[max]; front = 0; rear = 0; }
front 和 rear 这个时候都指向队列的头部
判断队列是否为空,或者已满
应为开始的时候,front和rear都是指在头部,那只要front==rear这个队列就是空队列,当rear==maxsize的时候就代表,队列已经满了
// 判断队列是否为空 public boolean isEmpty() { if (rear == front) return true; else return false; } //判断队列是否满 public boolean isFull(){ if(rear == maxSize) return true; else return false; }
入队
入队的思路为,将新进来的数据放在队尾所指的位置,然后让对尾向后移动一位,队首永远指在队列的头部
// 入队 public void add(Object ob) { if(isFull()) System.out.println("队列已经满了"); data[rear++] = ob; }
出队
出队的思路为,我们把头指针指向位置的数据出队,然后头这个位置就空出来了,再让后面的挨个往前完成出队,当然这个方式的缺点也很明显,队列越长,一次出队越麻烦,用链表的话可以解决这个问题。
// 出队一个 public Object pop() { if(isEmpty()){ System.out.println("空队,不能出"); return null; } Object MyRuturn = data[front];//要出队的项 for (int i = front; i < rear; i++) { data[i] = data[i + 1]; } rear--; return MyRuturn; }
阅读全文
0 0
- 队列——java实现
- 队列——Java实现
- 数据结构Java实现——②队列
- 数据结构(Java)——队列的实现
- JAVA基础训练——用链表实现队列
- 数据结构——Java实现队列
- 数据结构Java实现——②队列--->队列的“奇葩”一循环顺序队列
- 数据结构Java实现——②队列-->队列的“奇葩”二 优先级队列
- 数据结构——使用双端链表实现队列(java实现)
- 队列:循环队列Java实现
- 数据结构的Java实现——栈和队列
- java实现数据结构——栈Stack与队列Queue
- java专题——双栈实现队列
- java专题——双队列实现栈
- 队列的应用——火车重排(java实现)
- java实现队列
- java 实现的队列
- java 队列实现
- 关于easyUI 实现复杂表头的问题
- Java实现打印功能
- 解决easyui动态隐藏或显示列导致列表排版错乱的问题
- EditText初识
- myeclipse添加servlet源码包
- 队列——Java实现
- php学习(2)---php字符串
- [java泛型] 通配符wildcards
- HTML
- 欢迎使用CSDN-markdown编辑器
- spring中各个jar的作用整理
- 用scikit-learn和pandas学习线性回归
- js,addEventListener参数传递
- Linux 计划任务 at