队列的简单介绍

来源:互联网 发布:域名的价格是怎么回事 编辑:程序博客网 时间:2024/05/21 22:52

简单介绍队列的定义及各种操作:


1.队列的定义:

 队列简称队,特是一种运算受限的特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO)线性表

2.队列的基本操作:

  1.初始化列------initqueue(Q):建立一个新的空队列Q。

  2.入队列------enter(Q,x):将元素x插入到队列Q中。

3.出队列------delete(Q):从队列中退出一个元素。

4.取队首元素------gethead(Q):返回当前的队首元素。

5.判断队列是否为空------empty(Q):若队列Q为空,则返回1;否则返回0。

6.显示队列中元素------display(Q):从队首到对尾顺序显示队中所有元素。

下面是用一维数组仿真队列的代码

//一维数组仿真队列#include<iostream>using namespace std;int queue[5]={0};int head=-1;int tail=-1;void addqueue(int value)//添加元素 {if(tail>=5)cout<<"The queue is full\n";else {tail++;queue[tail]=value;}} int delqueue()//删除元素 {int temp;if(head==tail)return -1;else {head++;temp=queue[head];queue[head]=0;return temp; }}void display()//显示元素 {for(int i=1;i<5;i++)if(!queue[i])cout<<queue[i]<<" ";cout<<endl;}int main(){int select,temp;while(1){cout<<"1.Input a data.\n";cout<<"2.Output a data.\n";cout<<"3.Exit.\n";cin>>select;switch(select){case 1: cout<<"Please input a value:";cin>>temp;addqueue(temp);break;case 2: if(delqueue()==-1)cout<<"The queue is empty!\n";else cout<<"The out value is:"<<temp<<endl;break;case 3: return 0;}display();} return 0;}
本次只进行队列的简单介绍,进阶会写在接下来的博客里^_^!


原创粉丝点击