判断题在用单链表表示的链式队列Q中,队头指针为Q-front,队尾指针为Q-rear,则队空条件为Q-front==Q-rear。( )A对B错

判断题
在用单链表表示的链式队列Q中,队头指针为Q->front,队尾指针为Q->rear,则队空条件为Q->front==Q->rear。(  )
A

B


参考解析

解析:

相关考题:

设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为() A、front=(front+1)%mB、front=(front-1)%mC、front=front+1D、front=(front+1)%(m-1)

设循环队列用C语言数组A[m]表示,front指针指向真正队头的前一个位置,rear指针指向真正队尾,队列中当前元素个数为n,则(1)若已知front、rear,则n=()。(2)若已知front、n,则rear=()。(3)若已知rear、n,则front=()。

设循环队列用C语言数组A[m]表示,front指针指向真正队头的前一个位置,rear指针指向真正队尾,则(1)队满的条件为(),(2)队空的条件为()。

判断一个循环队列Q(最多n个元素)为满的条件是()。 A、Q->rear==Q->frontB、Q->rear==Q->front+1C、Q->front==(Q->rear+1)%nD、Q->front==(Q->rear-1)%n

阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。[说明]循环队列的类型定义如下(其中队列元素的数据类型为datatype):typedef struct{datatype data[MAXSIZE]; /*数据的存储区*/int front,rear; /*队首、队尾指针*/int num; /*队列中元素的个数*/}c _ SeQueue; /*循环队*/下面函数及其功能说明如下:(1) c_SeQueue* Init_SeQueue():新建队列;(2) int ln_SeQueue( c_SeQueue *q, datatype x):将元素x插入队列q,若成功返回1否则返回0;(3) int Out_SeQueue (c_SeQueue *q, datatype *x):取出队列q队首位置的元素,若成功返回1否则返回0。[函数]c_SeQueue* Init_SeQueue(){ q=malloc(sizeof(c_SeQueue));q->front=q->rear=MAXSIZE-1;(1);return q;}int In_SeQueue( c_SeQueue *q, datatype x){ if(q->num= =MAXSIZE) return 0; /*队满不能入队*/else {q->rear=(2);q->data[q->rear]=x;(3);return 1; /*入队完成*/}}int Out_SeQueue( c_SeQueue *q, datatype *x){ if (q->num= =0) return 0; /*队空不能出队*/else{*x=(4); /*读出队首元素*/q->front=(5);q->num- -;return 1; /*出队完成*/}}

设数组data[0…m]作为循环队列s q的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为( )。A.S q↑.front:=s q↑.front+1;B.S q↑.front:=(S q↑.front+1)%maxsize;C.S q↑.rear:=(S q↑.rear+1)%maxsize;D.S q↑.front:=(s q↑.front+1)%(maxsize+1);

最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。A.(rear+1)MODn=frontB.rear=frontC.rear+1=frontD.(rear-l)MODn=front

● 某循环队列的容量为 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

阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。[说明]链式存储的队列称为链队。根据队列的FIFO原则,为了操作上的方便,可以使用带头指针front和尾指针rear的单链表来实现链队。若链队元素的数据类型为datatype,则链队结构描述如下:typedef struct node{ datatypedata;structnode *next;} QNode; /*链队结点的类型*/typedef struct{ QNnode *front,*rear;} LQueue; /*将头尾指针封装在一起的链队*/以下这种链队的几个例子:设q是一个指向链队的指针,即LQueue *q。下面各函数的功能说明如下:(1) LQueue *Init_LQueue():创建并返回一个带头尾结点的空链队;(2) intEmpty_LQueue( LQueue *q):判断链队q是否空;(3) void In_LQueue(LQueue *q, datatypex):将数据x压入链队q;(4) int Out_LQueue(LQuere *q, datatype *x):弹出链队q的第一个元素x,若成功则返回返回1否则返回0。[函数]LQueae *Init_LQueue(){ LQueue *q, *p;q=malloc(sizeof(LQueue)); /*申请链队指针*/P=malloc(sized(QNode));/*申请头尾指针结点*/p->next=NULL;(1)=p;return q;}int Empty_LQueue(LQueue *q){ if(q->front (2) q>rear) return 0;else return 1;}void In_LQueue(LQueue *q, datatype x){ QNoda *p;p=malloc(sizeof(QNnode));/*申请新接点*/p->data=x;p->next=NULL;(3)=p;q->rear=p;}int Out_LQueue(LQueue *q, datatype *x){ QNnode *p;if(Empty_LQueue(q)) return 0; /*队空,操作失败*/else{p=q->front->next;*x=(4);(5)=p->next;free(p);if (q->front->next= =NULL)q->rear=q->front;return 1;}}

设数组data[0…m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为______。A.front:=front+1B.front:=(front+1)mod mC.rear:=(rear+1)mod mD.front:=(front+1)mod(m+1)

假定一个链队列的队首和队尾指针分别为front和rear,则判断队空的条件为( )。A.front==rearB.front!=NULLC.rear!=NULLD.front==NULL

试题四(共 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;﹜

设指针变量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;

若非空队列采用链式存储结构,队头指针与队尾指针分别为front和rear,则删除队列的一个元素的过程是依次执行:p=front;,(),free(p);。A、rear=p;B、rear=p-link;C、front=p-link;D、front=rear-link;

假定一个顺序循环队列的队首和队尾指针分别用front和rear表示,则判队空的条件是()A、front+1==rearB、front==rear+1C、front==0D、front==rear

在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队满的条件为()A、rear%n= = frontB、(front+l)%n= = rearC、rear%n -1= = frontD、(rear+l)%n= = front

在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队空的条件为()A、rear%n= = frontB、front+l= rearC、rear= = frontD、(rear+l)%n= front

最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。A、(rear+1)%n==frontB、rear==frontC、rear+1==frontD、(rear-l)%n==front

循环队列的队首指针为front,队尾指针为rear,则队空的条件为()。

在一个头指针为ph的单链表中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行()操作。A、p->next=q->next;q=pB、p->next=q->next;q-next=pC、q->next=p->next;p->next=qD、q->next=p->next;p->next=q->next

循环队列的队头和队尾指针分别为front和rear,则判断循环队列为空的条件是()。A、front==rearB、front==0C、rear==0D、front=rear+1

单选题最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。A(rear+1)%n==frontBrear==frontCrear+1==frontD(rear-l)%n==front

单选题最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。A(rear+1)MOD n=frontBrear-frontCrear+1=frontD(rear-1)MOD n=front

单选题设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点x,则入队列的操作序列为( )。Afront-next=s;front=s;Bs-next=rear;rear=s;Crear-next=s;rear=s;Ds-next=front;front=s;

单选题在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队空的条件为()Arear%n= = frontBfront+l= rearCrear= = frontD(rear+l)%n= front

填空题循环队列的队首指针为front,队尾指针为rear,则队空的条件为()。

判断题在用单链表表示的链式队列Q中,队头指针为Q-front,队尾指针为Q-rear,则队空条件为Q-front==Q-rear。( )A对B错