在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示

题目

在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示,包含的指针域用next表示,链队的队首指针用elemHead表示,队尾指针用elemTail表示,若链队为空,则进行插人时必须把新结点的地址赋给()。

  • A、elemHead
  • B、elemTail
  • C、elemHead和elemTail
  • D、elemHead或elemTail
参考答案和解析
正确答案:C
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

用单链表表示的链式队列的队头在链表的哪个位置?

A.链头

B.链尾

C.链中

D.任意位置


正确答案:A
解析:队列的链式存储结构成为链队列,它是限制仅在表头删除和表尾插入的单链表,队头在链头位置。

第2题:

用单链表表示的链式队列的队头在链表的( )位置。

A.链头

B.链尾

C.链中

D.链表尾部前一个位置


正确答案:A
解析:用单链表表示的链式队列的队头在链表的链头位置。

第3题:

下列关于链表结构的叙述正确的是( )

A.线性链表、带链的栈和带链的队列的结点的结构都是相同的

B.双向链表也就是循环链表

C.线性链表与带链的栈的结点的结构是不同的

D.在循环链表中通过任意一个结点可以找到链表中其他所有的结点,而在双向链表中做不到这一点


正确答案:A

第4题:

试题四(共 15 分)阅读以下说明和 C 函数,填补函数中的空缺,将解答填入答题纸的对应栏内。【说明】简单队列是符合先进先出规则的数据结构,下面用不含有头结点的单向循环链表表示简单队列。函数 enqueue(queue *q,KeyType new_elem) 的功能是将元素new_elem 加入队尾。函数 Dnqueue(queue *q,KeyType *elem)的功能使将非空队列的队头元素出队(从队列中删除),并通过参数带回刚出队的元素。用单向循环链表表示的队列如图 4-1 所示。

图 4-1 单向循环链表表示的队列示意图队列及链表结点等相关类型定义如下:enum {errOr, OK};typedef int KeyType;typedef struct qNode﹛KeyType data;Struct qNode*next;﹜qNode,*Linkqueue; Typedef struct﹛int size;Link:queue rear;}queue; 【C 函数】int enqueue(queue*q,KeyType new_elem)﹛ //元素 new_elem 入队列qNode*p;P=(qNode*)malloc(sizeof(qNode));if(!p)return errOr;P->data=new_elem;if(q->rear)﹛P->next=q->rear->next;();﹜elseP->next=p;﹙﹚;q->size++;return OK;﹜ int Dequeue(queue*q,KeyType*elem)﹛ //出队列qNode*p;if(0==q->size) //是空队列return errOr;P=(); //令 p 指向队头元素结点*elem =p->data;q->rear->next=(); //将队列元素结点从链表中去除if(()) //被删除的队头结点是队列中唯一结点q->rear=NULL //变成空队列free(p);q->size--;return OK;﹜


答案:
解析:
(1)Q→rear→next=p(2)Q→rear=p(3)Q→rear→next(4)p→next(5)Q→rear==p 或 Q→rear→next==p→next 或 Q→size==1
【解析】

本题考察C语言指针与链表的知识,为入队列和删除队列问题。对于入队列,那么当队列Q不为空时,P的队尾t要指向原Q的队尾指向的元素,即:P->next=Q->rear->next,Q的队尾要指向p,即:Q→rear→next=p。当队列Q为空时,插入p元素,则p的队尾指向p自身,即:p→next=p,且整个队列Q的队尾也是p,即:Q→rear=p。对于队列删除元素p,先判断Q是否为空,为空队列则返回 ERROR;If(0==q->size) //是空队列Return ERROR;另p指向队头元素结点,队头元素结点可用Q→rear→next表示。此时,p转化为头结点,p出列,则需要Q的队尾指向p的下一个元素,因此第4空填:p→next。最后,判断被删除的队头结点是否是队列中的唯一结点,可采用:Q→rear==p 或 Q→rear→next==p→next 或 Q→size==1 等表示方法。

第5题:

在单链表中,增加头结点的目的是( )。 A.方便运算的实现B.使单链表至少有一个结点SXB

在单链表中,增加头结点的目的是( )。

A.方便运算的实现

B.使单链表至少有一个结点

C.标识表结点中首结点的位置

D.说明单链表是线性表的链式存储实现


正确答案:A
A。【解析】头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点的目的是为了便于运算的实现。

第6题:

用单链表表示的链式队列,队头在链表的()位置。

A.链头

B.链尾

C.链中

D.可以由自己确定


正确答案:A

第7题:

在单链表中,增加头结点的目的是( )。A.方便运算的实现B.使单链表至少有一个结点

在单链表中,增加头结点的目的是( )。

A.方便运算的实现

B.使单链表至少有一个结点

C.标识表结点中首结点的位置

D.说明单链表是线性的链式存储实现


正确答案:A
根据单位链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点的目的是为了便于运算的实现。

第8题:

用链表(lchild-rchild表示法)存储的包含n个结点的二叉树,结点的2n个指针域中有n+l个空指针。()


参考答案:正确

第9题:

在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示,包含的指针域用next表示,链队的队首指针用elemHead表示,队尾指针用elemTail表示,若链队非空,则进行插入时必须把新结点的地址赋给( )。

A.elemHead

B.elemTail

C.elemHead->next和elemHead

D.elemTail->next和elemTail


正确答案:D

第10题:

链表的每个结点中只包含一个指针域,该链表称为()或()。


正确答案:线性链表;单链表

更多相关问题