携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情
定义
队列(Queue)。队列简称队。是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。向队列中插入元素称为入队或进队;删除元素称为出队或离队。其操作特性为先进先出(First In First Out,FIFO),并且只允许在队尾进,队头出
特性:先进先出
队列中的名词
- 队头(Front):允许删除的一端,又称队首。
- 队尾(Rear):允许插入的一端。
- 空队列:不包含任何元素的空表。
- 入队,若队列Q未满,将x加入,使之成为新的队尾
- 出队,若队列Q非空,删除队头元素,并用x返回。
队列的实现
数组
package Main;
/**
* 1.使用数组实现队列功能,使用int数组保存数据特点:先进先出,后进后出
*/
public class QueueTest1 {
public static void main(String[] args){
//测试队列
System.out.println("测试队列:");
Queue queue = new Queue();
queue.in(1);
queue.in(2);
queue.in(3);
System.out.println(queue.out());
System.out.println(queue.out());
queue.in(4);
System.out.println(queue.out());
System.out.println(queue.out());
queue.in(5);
System.out.println(queue.out());
}
}
//使用数组定义一个队列
class Queue {
int[] a = new int[5];
int i = 1; //数组下标
//入队
public void in(int m){
a[i++] = m;
}
//出队
public int out(){
int index = 0;
int temp = a[1];
for(int j=1;j<i;j++){
a[j-1] = a[j];
index++;
}
i = index;
return temp;
}
}
问题
那么经过昨天的栈和今天的队列,你能否用俩个栈来实现一个队列?