阅读算法f2,并回答下列问题:(1)设队列Q=(1,3,5,2,4,6)。写出执行算法f2后的队列Q;(2)简述算法f2

题目
填空题
阅读算法f2,并回答下列问题:(1)设队列Q=(1,3,5,2,4,6)。写出执行算法f2后的队列Q;(2)简述算法f2的功能。voidf2(Queue*Q){DataTypee;if(!QueueEmpty(Q)){e=DeQueue(Q);f2(Q);EnQueue(Q,e);}}
参考答案和解析
正确答案: (1)6,4,2,5,3,1 (2)将队列倒置
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若程序中定义了三个函数f1,f2,f3,并且函数f1执行时会调用f2、函数f2执行时会调用f3,那么正常情况下,()。

A.f3执行结束后返回f2继续执行,f2执行结束后返回f1继续执行

B.f3执行结束后返回f1继续执行,f1执行结束后返回f2继续执行

C.f2执行结束后返回f3继续执行,f3执行结束后返回f1继续执行

D.f2执行结束后返回f1继续执行,f1执行结束后返回f3继续执行


正确答案:A

第2题:

下列哪一个进程调度算法会引起进程的饥饿问题? ()

A 先来先服务(FCFS)算法

B 时间片轮转(RR)算法

C 优先级(Priority)算法

D 多级反馈队列算法


参考答案C

第3题:

按照作业到达系统或进程进入就绪队列的先后次序来进行调度的算法称为()

A.优先级调度算法

B.先进先出算法

C.多级反馈队列算法

D.最高响应比优先算法


正确答案:B

第4题:

设循环队列的结构如题33。若有一个Queue类型的队列Q,计算队列元素个数应该用(34)。

A.(Q.rear-Q.front+ MaxSize)%MaxSize;

B.Q.rear-Q.front+1;

C.Q.rear-Q.front-1;

D.Q.rear-Qfront;


正确答案:A
解析:(Q.rear-Q.front+MaxSize)%MaxSize表示循环队列中元素个数,无论头指针和尾指针位置如何。

第5题:

若程序中定义了三个函数f1、f2和f3,并且函数f1执行时会调用f2、函数f2执行时会调用f3,那么正常情况下,()。

A.f3执行结束后返回f2继续执行,f2结束后返回f1继续执行

B.f3执行结束后返回f1继续执行,f1结束后返回f2继续执行

C.f2执行结束后返回f3继续执行,f3结束后返回f1继续执行

D.f2执行结束后返回f1继续执行,f1结束后返回f3继续执行


正确答案:A

第6题:

所有就绪状态的进程按建立的先后顺序形成一个对列,从队列首挑选一个进程,分给时间片q,投入运行。当时间片到时,而又没有完成的进程,将再次加入到队列尾,排队等待下一轮调度。这种进程调度算法称为()。

A.循环轮转调度算法

B.优先数调度算法

C.固定周期轮转调度算法

D.多级队列调度算法


参考答案B

第7题:

设栈S的初始状态为空,队列Q的初始状态如图所示。

对栈S和队列Q进行下列两步操作: (1)删除Q中的元素,将删除的元素插入S,直至Q为空。 (2)依次将S中的元素插入Q,直至S为空。在上述两步操作后,队列Q的状态是【 】。


正确答案:a4a3a2a1
a4a3a2a1 解析:队列的删除是从队头开始的,所以在执行第一步后,S中的内容及顺序应为a1a2a3a4。但栈的出栈顺序是先进后出,所以出栈/顷序为a4a3a2a1。队列的内容及顷序也与出栈情况一致。

第8题:

有以下程序

#include <stdio.h>

main()

{ int f,f1,f2,i;

f1=0;f2=1;

printf("%d %d ",f1,f2);

for(i=3;i<=5;i++)

{ f=f1+f2; printf("%d",f);

f1=f2; f2=f;

}

printf("\n");

}

程序运行后的输出结果是 【 1 0 】 。


正确答案:

第9题:

8 写出下列程序所有可能的运行结果。

int a;

int b;

int c;

void F1()

{

b=a*2;

a=b;

}

void F2()

{

c=a+1;

a=c;

}

main()

{

a=5;

//Start F1,F2 in parallel

F1(); F2();

printf("a=%d\n",a);

}


正确答案:
 

第10题:

如果希望循环队列中的向量单元都能得到利用,则可设置一个标志域tag,每当尾指针和头指针值相同时,以tag的值为O或1来区分队列状态是“空”还是“满”.请对下列函数填空,使其分别实现与此结构相应的入队列和出队列的算法.

intEnQueue(CirQueue*Q,DataType x)

{

if Q->tag==1 return 0;

Q->data[Q->rear]=x;

Q->rear=(Q->rear+1)%MAXQSIZE

if(Q->rear==Q->front)Q->tag=1

return1:

}

intDeQueue(CirQueue*Q,DataType*x)

{

if((1))return0;

*x=Q->data[Q->front];

Q->front= (2) ;

(3) ;

return1;

}

(1)

(2)

(3)


正确答案:

(1)Q->tag= =0(或者!Q->tag)//如果标志域tag为0,则队空,无法出队,算法结束;
(2)(Q->front+l)% MAXQSIZE//出队,头指针循环加1;
(3)if(Q->rear= =Q->front)Q->tag=0;//出队后,则检查尾指针是否等于头指针,若相等,则队空,置标志域tag为0.

更多相关问题