第二章 栈、队列、链表
第一节 队列
首先,引入两个整形变量 head 和 tail 分别记录队列的队首和队尾的下一位(为当队列中只剩下一个元素时,队首和队尾重合会带来一些麻烦)。
在队首加一个数: head++
在队尾增加一个数: q[tail]=x;tail++
队列 : 队列是一种特殊的线性结构,它只允许在队列的首部(head)进行删除操作,这称为“出队”,而在队列的尾部(tail)进行插入操作,这称为“入队”。当队列中没有元素时(即 head==tail),称为空队列。我们称为“先进先出”(First In First Out,FIFO)原则。
我们可以将队列的三个基本元素(一个数组,两个变量)封装为一个结构体类型
struct queue
{
int data[100];//队列的主体,用来存储内容
int head;//队首
int tail;//队尾
};
那么我们如何定义结构体变量和访问结构体变量的内部成员呢?
struct queue q;
q.head=1;
q.tail=1;
scanf("%d",&q.data[q.tail]);