问答题 [说明] 链式存储的队列称为链队。根据队列的FIFO原则,为了操作上的方便,可以使用带头指针front和尾指针rear的单链表来实现链队。若链队元素的数据类型为datatype,则链队结构描述如下: typedef struct node { datatypedata; structnode *next; } QNode; /*链队结点的类型*/ typedef struct { QNnode *front,*rear; } LQueue; /*将头尾指针封装在一起的链队*/ 以下这种链队的几个例子:
【正确答案】
【答案解析】(1) q->front=q->rear (2) = = (3)q-> rear->next (4) p->data (5) q->front->next [解析] (1)初始化链队q时,需要初始化其头尾指针,空链队的头尾指针相等; (2)链队头尾指针重合当且仅当链队为空; (3)向链队插入新元素的操作是在链队末尾进行的,需要将新元素结点接在原链队队尾,再让新的尾指针指向这一新结点; (4)~(5):链队q的第一个元素存放在其头结点之后的第一个结点(即p=q->front->next)中。*x= p->data表示将这个元素取出,以参数*x的形式返回:q->front->next=p->next表示将结点p从链队中取出。