队列采用如下图所示的循环单链表表示,图(a)表示队列为空,图(b)为e1、e2.e3依次入队列后的状态,其中,rear指针指向队尾元素所在结点,size为队列长度。以下叙述中,正确的是( )。A.入队列时需要从头至尾遍历链表,而出队列不需要B.出队列时需要从头至尾遍历链表,而入队列不需要C.新元素加入队列以及队头元素出队列都需要遍历链表,D.入队列和出队列操作都不需要遍历链表
队列采用如下图所示的循环单链表表示,图(a)表示队列为空,图(b)为e1、e2.e3依次入队列后的状态,其中,rear指针指向队尾元素所在结点,size为队列长度。以下叙述中,正确的是( )。
A.入队列时需要从头至尾遍历链表,而出队列不需要
B.出队列时需要从头至尾遍历链表,而入队列不需要
C.新元素加入队列以及队头元素出队列都需要遍历链表,
D.入队列和出队列操作都不需要遍历链表
B.出队列时需要从头至尾遍历链表,而入队列不需要
C.新元素加入队列以及队头元素出队列都需要遍历链表,
D.入队列和出队列操作都不需要遍历链表
参考解析
解析:本题考察数据结构与算法的基础知识。对于链表结构,插入删除元素改变指针指向即可,不需要遍历。
相关考题:
设循环队列用C语言数组A[m]表示,front指针指向真正队头的前一个位置,rear指针指向真正队尾,队列中当前元素个数为n,则(1)若已知front、rear,则n=()。(2)若已知front、n,则rear=()。(3)若已知rear、n,则front=()。
( 2 )设某循环队列的容量为 50 , 如果头指针 front = 45 (指向队头元素的前一位置 ) ,尾指针 rear = 10 (指向队尾元素 ) ,则该循环队列中共有 【 2 】 个元素。
设循环队列Q的定义中有rear和len两个域变量,其中rear表示队尾元素的指针,len表示队列的长度,如下图所示(队列长度为3,队头元素为e)。设队列的存储空间容量为M,则队头元素的指针为(57)。A.(Q.rear+Q.len-1)B.(Q.rear+Q.1en-1+M)%MC.(Q.rear-Q.1en+1)D.(Q.rear-Q.1en+1+M)%M
● 某循环队列的容量为 M,队头指针指向队头元素,队尾指针指向队尾元素之后,如下图所示(M=8) ,则队列中的元素数目为 (41) (MOD表示整除取余运算) 。(41)A. rear – frontB. front – rearC. (rear –front + M) MOD MD. (front – rear + M) MOD M
某循环队列的容量为M,队头指针指向队头元素,队尾指针指向队尾元素之后,如下图所示(M=8),则队列中的元素数目为(41)(MOD表示整除取余运算)。A.rear-frontB.front-rearC.(rear-front+M)MODMD.(front-rear+M)MOD M
下列叙述正确的是( )。A.非空循环队列的队尾指针等于排头指针时,也可以进行入队运算B.循环队列为空时可以进行退队运算C.退队运算后队列长度减1D.入队运算就是将新元素插入到队尾指针指向的位置
下列叙述中,正确的是( )。A.非空循环队列的队尾指针等于排头指针时,也可以进行入队运算B.循环队列为空时可以进行退队运算C.退队运算后队列长度减1D.入队运算就是将新元素插入到队尾指针指向的位置
设循环队列Q的定义中有front和size两个域变量,其中front表示队头元素的指针,size表示队列的长度,如下图所示(队列长度为3,队头元素为x,队尾元素为z)。设队列的存储空间容量为M,则队尾元素的指针为 (58)。A.(Q.front+Q.size-1)B.(Q.front+Q.size-1+M)%MC.(Q.front-Q.size)D.(Q.front-Q.size+M)%M
某循环队列的容量为M,队头指针指向队头元素,队尾指针指向队尾元素之后,如图 8-8所示(M=8),则队列中的元素数目为______(MOD表示整除取余运算)。A.rear-frontB.front-rearC.(rear-front+M)MODMD.(front-rear+M)MODM
在具有n个单元的顺序存储的循环队列中,假定指针front和rear分别指向队首和队尾,则判断队列为空的条件是(38),如果约定“以队尾指针所指位置的下一个位置是队首指针”表示队满,那么队列为满当且仅当(39)。A.front=rear+1B.rear=front+1C.front=realD.front=0
队列采用如下图所示的循环单链表表示,图(a)表示队列为空,图(b)为e1、e2.e3依次入队列后的状态,其中,rear指针指向队尾元素所在结点,size为队列长度。以下叙述中,正确的是( )。A.入队列时需要从头至尾遍历链表,而出队列不需要B.出队列时需要从头至尾遍历链表,而入队列不需要C.新元素加入队列以及队头元素出队列都需要遍历链表,D.入队列和出队列操作都不需要遍历链表
试题四(共 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;﹜
某循环队列Q 的定义中用 front和 rear 两个整型域变量表示队列状态,其中 front 指示队头元素的位置、rear 指示队尾元素之后的位置(如下图所示,front的值为5、rear 的值为 1)。若队列容量为M(下图中 M=6),则计算队列长度的通式为()A.(Q.front-Q.rear)B.(Q.front- Q.rear+M)%MC.( Q.rear-Q.front)D.(Q. rear-Q.front +M)%M
设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为()。A.s->next=rear;rear=s;B.front->next=s;front=s;C.rear->next=s;rear=s;D.s->next=front;front=s;
循环队列的最大存储空间为MaxSize=8,采用少用一个元素空间以有效的判断栈空或栈满,若队头指针front=4,则当队尾指针rear=()时,队列为空,当rear=()时,队列有6个元素。
填空题循环队列的最大存储空间为MaxSize=8,采用少用一个元素空间以有效的判断栈空或栈满,若队头指针front=4,则当队尾指针rear=()时,队列为空,当rear=()时,队列有6个元素。
单选题设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点x,则入队列的操作序列为( )。Afront-next=s;front=s;Bs-next=rear;rear=s;Crear-next=s;rear=s;Ds-next=front;front=s;
判断题在用单链表表示的链式队列Q中,队头指针为Q-front,队尾指针为Q-rear,则队空条件为Q-front==Q-rear。( )A对B错