研究生870计算机基础,华中师范大学考研资料870计算机基础一09-15答案.docx

870计算机基础一

研究生入学考试试题详解

PAGE 10

PAGE 1

目录

TOC \o "1-1" \h \z \u 1

一、2015年华中师范大学硕士研究生入学考试试题详解(重点回忆版,两道重点改变题型的题) 2

二、2014年华中师范大学硕士研究生入学考试试题详解 4

三、2013年华中师范大学硕士研究生入学考试试题详解(回忆版) 10

四、2012年华中师范大学硕士研究生入学考试试题详解 13

五、2011年华中师范大学硕士研究生入学考试试题详解 18

六、2010年华中师范大学硕士研究生入学考试试题详解 24

七、2009年华中师范大学硕士研究生入学考试试题详解 31

一、2015真题(重点回忆版,两道重点改变题型的题)

1思路

先将n个人的编号进队,然后反复执行如下操作,直到队列为空:

Step 1

出队一个的元素,输出其编号(报数为1的人出列);

Step 2

若队列不空,则再出队一个元素,并将刚出列的元素进队(报数为2的人站到队伍的最右端即队尾)

参考算法

#include

#include

void number(int n)

{

int i;elemtype e;

sqQueue q;//这里sqQueue为顺序队的类型

q.front=q.rear=0;

for(i=1;i<=n;i++)

{

q.rear=(q.rear+1)%MaxSize;//先进队,这里进队写法与书上写法稍微不同,不过两个都对,写哪个都行

q.data[q.rear]=i;

}

printf("报数出列顺序:" );

while(q.front!=q.rear)//队列不空循环

{

q.front=(q,front+1)%MaxSize;

e=q.data[q.front];//出队一个元素

printf("%d",e);

if(q.front!=q.rear)//队列不空

{

q.front=(q.front+1)%MaxSize;

e=q.data[q.front];// 出队一个元素

q.rear=(q.rear+1)%MaxSize;

q.data[q.rear]=e; //将刚出队的元素进队

}

}

printf("\n");

}

int main()

{

int i,n=8;

for(i=1;i<=n;i++)

{

printf("%d",i);

printf("\n");

number(n);

}

return 0;

}

int main()

{

int i,n=8;

for(i=1;i<=n;i++)

{

printf("%d",i);

printf("\n");

number(n);

}

return 0;

}

思路

先将转轨栈看成一个栈,将左边轨道看成队列,从键盘逐个输入表右边轨道上车皮编号的整数。

Step 1

若是奇数,则将其插入到表示左边轨道的顺序队列的队尾。

Step 2

若是偶数,则将其插入到表示转轨栈的顺序栈的栈顶。

Step 3

若当n个数都检测完毕,则首先按先进先出的顺序输出队列中的元素,然后再按后进先出的顺序输出栈中的元素

参考算法

#include <

#include

#define maxsize 100

void fun1()

{

int i,n,x;

int stack[maxsize],top=-1;//快速定义栈和队列

int queue[maxsize],front=0,rear=0;

printf("n:");

scanf("%d",&n);

for(i=0;i

{

printf("第%d个车皮编号:",i+1);

scanf("%d",&x);

if(x%2==1)//奇数则进队列

{

queue[rear]=x;

printf("%d进队\n",x);

rear++;

}

else//偶数则进栈

{

top++;

stack[top]=x;

printf("%d进栈\n",x);

}

}

while(front!=rear)//队列中所有元素出队

{

printf("%d出队",queue[front]);

front++;

}

while(top>=0)//

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值