> 教育经验 > 什么是伫列介绍

什么是伫列介绍

什么是伫列介绍

伫列(队列),又称 queue ,是先进先出(FIFO, First-In-First-Out)的线性排列。

伫列伫列含义

伫列(队列),又称 queue ,是先进先出(FIFO, First-In-First-Out)的线性排列。在具体应用中通常用阵列或链结串行来实现。伫列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作。

伫列的操作方式和堆栈类似,唯一的区别在于伫列只允许新数据在后端进行加入。

伫列阵列伫列

#include

#include

struct Queue

{

int Array;//阵列空间大小

int head;//前端(front)

int tail;//後端(rear)

int length;//伫列长度

};

void EnQueue(Queue *Queue1,int x)

{

Queue1->Array=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;

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\");

}