伫列

王朝百科·作者佚名  2010-04-29  
宽屏版  字体: |||超大  

伫列(队列),又称 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");

}

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有