DS博客作业03—栈和队列

1.本周学习总结

2.PTA实验作业

2.1 在一个数组中实现两个堆栈

本题要求在一个数组中实现两个堆栈

2.1.1 设计思路

函数题省略

2.1.2 代码截图



2.1.3 PTA提交列表及说明

读主函数时没有注意到pop()函数返回值在后继有使用,直接省略了返回值,编译错误
没理解错误原因随便写了个return 0,答案错误
重新读了一遍主函数发现需返回出栈元素

2.2 另类循环队列

如果用一个循环数组表示队列,并且只设队列头指针Front,不设尾指针Rear,而是另设Count记录队列中元素个数。请编写算法实现队列的入队和出队操作

2.2.1 设计思路

函数题省略

2.2.2 代码截图

2.2.3 PTA提交列表及说明

一次过,这题主要考察循环队列没有尾指针的情况下的进栈方法,对以后的复习有帮助

2.3 报数游戏

报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(m<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。其中n是初始人数;m是游戏规定的退出位次(保证为小于n的正整数)。要求用队列结构完成。输出数字间以空格分隔,但结尾不能有多余空格。

2.3.1 设计思路

定义人数n,数字m
if (m>n) //不合法情况
    输出error!
    返回
if end
for i=1 to n
    1至n循环进队
for end
while(队列不为空)
    i++;
    if (i==m) //报到m,输出,出队
        输出队头
        i=0
    else //队列循环
        temp=队头
        队头出队
        temp进队
    if end
while end

2.3.2 代码截图


2.3.3 PTA提交列表及说明

一次过,在这题学到了使用队列STL实现循环队列,对以后的复习有帮助

2.4 符号配对

请编写程序检查C语言源程序中下列符号是否配对://、(与)、[与]、{与}。

2.4.1 设计思路

2.4.2 代码截图

2.4.3 PTA提交列表及说明

3.栈和队列上机考试

3.1 表达式求解

输入一个后缀表达式,程序求出表达式值

3.1.1 代码截图

3.1.2 错误分析

3.2 列车调度

两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?

3.2.1 代码截图

3.2.2 错误分析

猜你喜欢

转载自www.cnblogs.com/kisamko/p/10739846.html