词条 | 伫列 |
释义 | 伫列(队列),又称 queue ,是先进先出(FIFO, First-In-First-Out)的线性排列。在具体应用中通常用阵列或链结串行来实现。伫列只允许在后端(称为rear)进行插入操作,在前端(称为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;//这行逻辑上有问题 //Modify By pcjackal.tw } } /*资料移出伫列*/ 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;//必须要先初始化 //Modify By pcjackal.tw Queue1->tail=0;//必须要先初始化 //Modify By pcjackal.tw 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"); } |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。