数据结构——队列
【摘要】 定义队列(Queue)。队列简称队。是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。向队列中插入元素称为入队或进队;删除元素称为出队或离队。其操作特性为先进先出(First In First Out,FIFO),并且只允许在队尾进,队头出特性:先进先出 队列中的名词队头(Front):允许删除的一端,又称队首。队尾(Rear):允许插入的一端。空队列:不包含任何元...
定义
队列(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;
}
}
问题
那么经过昨天的栈和今天的队列,你能否用俩个栈来实现一个队列?
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)