博客作业03--栈和队列

一、学习总结(2分)

1.1 写出你认为本周学习中比较重要的知识点关键词,如逻辑结构、栈、队列、存储结构等。

  • 数据结构分为逻辑结构和存储结构两大类。
  • 数据的存储结构是指数据的逻辑结构在计算机中的表示。
  • 栈、队列都是逻辑结构,是一种概念。存储结构是数据在内存中的存储方式。
  • 逻辑结构分两大类:线性结构和非线性结构,线性结构中包括了链式结构和顺序结构。

1.2 使用思维导图将这些关键词组织起来。

二、PTA实验作业(4分)

题目1:7-1 jmu-字符串是否对称

1. 设计思路(伪代码或流程图)

输入字符串str
创建栈S
if(字符串为空)结束程序;

for i=0 to str[i]=='\0'
	把字符串里的元素一一放进栈S里
for i=0 to strlen(str)-1
	栈中元素出栈,出栈的元素与输入字符串时元素顺序恰好颠倒
	if 出栈元素有与原数组元素不相同的,则输出no,结束循环
if(全部匹配)输出yes
return 0; 

2. 代码截图


3. PTA提交列表说明。


编译器运行时答案对了但是一直编辑错误,就对照了一下第一题的的代码的前一部分,发现居然是少了一个号。。
···
typedef struct SNode{
Status data;
int top;
}
Stack; //这里原来少了一个
星号
···
修改完之后还是不对,是一个小问题,忘记给false和true赋值了。

题目2:7-1 jmu-报数游戏

1. 设计思路(伪代码或流程图)

主函数
定义队列Q
定义整型变量,总人数n和规定退出位次m
输入m,n
if(n>m)输出error,结束程序
调用Push函数,将数存入Q中
调用Operation函数,实现游戏操作

Push函数
for int i=0 to m-1
Q->data[i]依次赋值1,2,3......m
返回Q;

Operation 函数

while(1)
    令i=0从头开始遍历队列
while(未遍历完一次队列)
    if元素数值为0
            则跳过该元素,i+1且直接进行下一次内while循环
        else
	if 找到第n个
	   输出此时Q->data[i]的值,令找到的元素位置上的数等于0
    i+1控制内while循环
    end while

if 队列中只剩一个元素,退出外循环

end while
输出最后一个元素

2. 代码截图

3. PTA提交列表说明。

这道题刚开始为空判断对了,后来就写了主要的操作函数,没有答案正确,是输出弄错了,NULL后面没有加感叹号,以前也写过这种报数游戏的,我的想法就是让出去的数等于0,再控制循环。最后一个元素输出的时候我想了一会儿,虽然说写出来有点怪,但是还是可以通过的哈哈。

题目3:7-2 银行业务队列简单模拟

1. 设计思路(伪代码或流程图)

定义qA,qB两个队列表示A, B两个窗口
输入n的数值
for i=0 to n-1    //输入原始序列并分队
    输入一个数num;
if(n为奇数)进入qA队列
else 进入qB队列
while(qA,qB均不为空时)  

输出qA中的第一个数, 输出后让该数出队列	

if(qA出队列的次数为偶数倍)
        qB出队一个元素
end while

 
while(qA不为空)
    将qA中剩余元素输出 
while(qB不为空)
    将qB中剩余元素输出 
return 0;

2. 代码截图


3. PTA提交列表说明。


做这道题是在老师上课讲了C++原来有栈和队列的头文件之后(真是心痛啊前面一直push pop的),后来就百度了好久怎么直接用这个头文件 才做的。有一个小问题就是空格还是最后才修改好的。

三、截图本周题目集的PTA最后排名(3分)

本次2个题目集总分:125+215=340分
必做题共:205分

3.1 栈PTA排名


3.2 队列PTA排名


3.3 我的总分:

93+80=173分
得2分

四、阅读代码(必做,1分)

栈的压入弹出序列

输入两个整数序列,第一个序列表示栈的压入顺序,判断第二个序列是否为该栈的弹出顺序。例如,序列1、2、3、4、5是栈的压入序列,序列4、5、3、2、1是该栈的弹出序列,但4、3、5、1、2就不可能是该栈的弹出序列。

分析:建立一个辅助栈,把输入的第一个序列的数字依次压入辅助栈,并按照第二个序列的顺序依次从辅助栈中弹出,如果下一个弹出的数字刚好是栈顶数据,就直接弹出,如果不是,就把还没有入栈的数字压入辅助栈,直到遇到下一个需要弹出的数字。

posted on 2018-04-14 22:43  黑白熊熊  阅读(790)  评论(2编辑  收藏  举报

导航