
- 中文名
- 伫列
- 外文名
- queue
- 别 名
- 队列
- 概 念
- 先进先出的线性排列
伫列含义
播报编辑
和担海页汽妹伫列(队列),又称 queue ,是先进先出(FIFO, First-In-First-Out)料耻灶的线戒糊榆性排列。在具体应用中通常用阵列或链结串行来实现渗府。伫列只允许在后端(称为r嫌体您ear)进行插入操作,在前端(称为front)进行删除操作。
阵列伫列
播报编辑
#include<stdio.h>
#include<stdlib.h>
struct Queue
{
int Array[10];//阵列空间大小
int head;//前端(front)
int tail;//後端(rear)
int length;//伫列长度
};
/*资料加入伫列*/
void EnQueue(Queue *Queue1,int x)
{
Queue1->Array[Queue1->tail]=x;
if(Queue1->tail==Queue1->length)
{
Queue1->tail=1;
}
else
{
Queue1->tail=Queue1->tail+1;
Queue1->length=Queue1->length+1;//这行逻辑上有问题
}
}
/*资料移出伫列*/
int DeQueue(Queue *Queue1)
{
int x=Queue1->Array[Queue1->head];
if(Queue1->head==Queue1->length)
{
Queue1->head==1;
}
else
{
Queue1->head=Queue1->head+1;
}
return x;
}
/*伫列操作*/
int main()
{
struct Queue *Queue1=(struct Queue *)malloc(sizeof(struct Queue));//建立资料结构
Queue1->length=10;//新增长度
Queue1->head=0;//必须要先初始化
Queue1->tail=0;//必须要先初始化
EnQueue(Queue1,5);//将5放入伫列
EnQueue(Queue1,8);//将8放入伫列
EnQueue(Queue1,3);//将3放入伫列
EnQueue(Queue1,2);//将2放入伫列
printf("%d ",DeQueue(Queue1));//输出伫列(5)
printf("%d ",DeQueue(Queue1));//输出伫列(8)
printf("%d ",DeQueue(Queue1));//输出伫列(3)
system("pause");
}