H3C

下面哪些队列有绝对优先权()   A、 PQB、 LLQC、 CQD、 WFQE、 IP RTPQ

题目

下面哪些队列有绝对优先权()   

  • A、 PQ
  • B、 LLQ
  • C、 CQ
  • D、 WFQ
  • E、 IP RTPQ
参考答案和解析
正确答案:A,B,E
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第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);


正确答案:B
B。【解析】循环队列采用的方法是:假设向量sq↑.data[maxsize]是一个首尾相接的圆环,即sq↑.data[0]接在sq↑.data[maxsize-1]之后,我们将这种意义下的向量称循环向量,并将循环向量中的队列称为循环队列。若当前尾指针等于向量的上界,则再做入队列操作时,令尾指针等于向量的下界,这样就利用到已被删除的元素空间,克服假上溢现象。因此入队操作时,在循环意义下的尾指针加l操作可描述为:if(Sq↑.rear>=maxsize)sq↑.near:=0;elsesq↑.rear++;如果利用“模运算”,上述循环意义下的尾指针加l操作,可以更简洁地描述为:sq↑.rear=(sq↑.rear+1)%maxsize。同样,出队操作时,在循环意义下的头指针加1操作,也可利用“模运算”来实现:sq↑.front:=(sq↑.front+1)%max-size。

第2题:

设数组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);


正确答案:B
循环队列采用的方法是:假设向量Sq↑.data[maxsize]是一个首尾相接的圆环,即Sq↑.data[0]接在Sq↑.data[maxsize—1]之后,我们将这种意义下的向量称循环向量,并将循环向量中的队列称为循环队列。若当前尾指针等于向量的上界,则再做入队列操作时,令尾指针等于向量的下界,这样就利用到已被删除的元素空间,克服假上溢现象。因此入队操作时,在循环意义下的尾指针加1操作可描述为:if(Sq↑.rear>=maxsize)sq↑.near:=0;elsesq↑.rear++;如果利用“模运算”,上述循环意义下的尾指针加l操作,可以更简洁地描述为:Sq↑.rear=(sq↑.rear+1)%maxsize。同样,出队操作时,在循环意义下的头指针加1操作,也可利用“模运算”来实现:sq↑.front:=(sq↑.front+1)%max—size。

第3题:

下面哪些是治安基层组织()

A.警署

B.治安行动队

C.安康医院

D.治安业务科室


参考答案:A, B, C

第4题:

阅读下列函数说明和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;

}

}


正确答案:(1) q->front=q->rear (2) = = (3)q-> rear->next (4) p->data (5) q->front->next
(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从链队中取出。

第5题:

在一个有头结点的链队列中,假设f和r分别为队首和队尾指针,则队头出队的运算是()。

A.q=f->next;f->next=f->next->next;free(q);

B.q=f;f->next=f->next->next;free(q);

C.f->next=f->next->next;q=f->next;free(q);

D.q=f->next->next;f=f->next;free(q);


正确答案:A

第6题:

阅读下列函数说明和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; /*出队完成*/

}

}


正确答案:(1) q->num=0 (2) (q->rear+1) % MAXSIZE (3) q->num++ (4) q->data[q->front] (5) (q->front+1)%MAXSIZE
(1) q->num=0 (2) (q->rear+1) % MAXSIZE (3) q->num++ (4) q->data[q->front] (5) (q->front+1)%MAXSIZE 解析:(1)新建的队列中元素个数应为0;
(2)向循环队列中添加新元素后,队尾指针应向后移动一位;
(3)向循环队列中添加新元素后,队列中元素个数应增1;
(4)取出队首位置的元素;
(5)从循环队列中取出一个元素后,队首指针应向后移动一位。

第7题:

下面叙述中正确的是

A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构

B.在循环队列中,只需要队头指针就能反应队列中元素的动态变化情况

C.在循环队列中,只需要队尾指针就能反应队列中元素的动态变化情况

D.循环队列中元素的个数是由队头和队尾指针共同决定


正确答案:D
解析:循环队列是线性表的一种,所以选项A错误。循环队列的入队和出队需要队尾指针和队头指针完成,所以选项B和选项C错误。

第8题:

设循环队列Q的定义中有rear和len两个域变量,其中rear表示队尾元素的指针,len表示队列的长度,如下图所示(队列长度为3,队头元素为e)。设队列的存储空间容量为M,则队头元素的指针为(57)。

A.(Q.rear+Q.len-1)

B.(Q.rear+Q.1en-1+M)%M

C.(Q.rear-Q.1en+1)

D.(Q.rear-Q.1en+1+M)%M


正确答案:D
解析:按照正常线性存储的队列,队头元素的指针为(Q.rear-Q.len+1),而在循环队列里面,Q.rear-Q.1en+1可能会由于循环存储而变为负值,所以需要处理为(Q.rear-Q.1en+1+M)%M。

第9题:

循环队列A[0…m-1)存放其元素,用front和Feat分别表示队头和队尾,则循环队列满的条件是(35)。

A.Q.rear+1==Q.front

B.Q.rear==Q.front+1

C.Q.rear==Q.front

D.(Q.rear+1)%m==Q.front


正确答案:D
解析:本题考查队列的基本知识。队列也是一种特殊的线性表,只允许在一端进行插入,另一端进行删除运算。循环队列就是将实现队列的A[M]的第一个元素A[0]与最后一个元素A[M-1]连接起来。在循环队列中用队头和队尾表示队列满的条件是(Q.rear+1)%m==Q.front。

第10题:

设循环队列Q的定义中有front和size两个域变量,其中front表示队头元素的指针,size表示队列的长度,如下图所示(队列长度为3,队头元素为x,队尾元素为z)。设队列的存储空间容量为M,则队尾元素的指针为 (58)。

A.(Q.front+Q.size-1)

B.(Q.front+Q.size-1+M)%M

C.(Q.front-Q.size)

D.(Q.front-Q.size+M)%M


正确答案:B
本题考查循环队列队尾指针的计算方法。从图示可以看出,要得到z的值可进行Q.front+Q.size-1操作,但在此不容忽视的一个问题是,循环队列在进行了多次入队出队操作之后,Q.front+Q.size-1有可能大于M,如Q.front指向M-1空间时,Q.front+Q.size-1=M+1,这已超出队列长度,所以需要让其与M进行求模操作,修正位置号。

更多相关问题