下面哪些队列有绝对优先权()
第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);
第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);
第3题:
下面哪些是治安基层组织()
A.警署
B.治安行动队
C.安康医院
D.治安业务科室
第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;
}
}
第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);
第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; /*出队完成*/
}
}
第7题:
下面叙述中正确的是
A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B.在循环队列中,只需要队头指针就能反应队列中元素的动态变化情况
C.在循环队列中,只需要队尾指针就能反应队列中元素的动态变化情况
D.循环队列中元素的个数是由队头和队尾指针共同决定
第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
第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
第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