码迷,mamicode.com
首页 > 其他好文 > 详细

Data_Structure03-栈和队列

时间:2018-04-07 22:40:36      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:class   log   截图   开始   for   并且   代码   模拟   提交   

一、学习总结


1、写出你认为本周学习中比较重要的知识点关键词

·抽象数据类型
·栈和队列

2、思维导图

技术分享图片

二、PTA实验作业


选题:

1、7-1 jmu-字符串是否对称(20 分)
2、7-4(选做) 列车厢调度(25 分)
3、7-2 银行业务队列简单模拟(25 分)

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

1、设计思路

#头文件
int main(){
    定义字符串 c;
    输入字符串;
    定义字符型栈ch;
    定义整型变量 len,i,a;
    len <- c.size();
    i <- 0;
    a <- len%2;
    if  !a      //偶数个 
        then while i小于len 
            do if i小于len/2 //进栈
                then c[i]进栈
            elseif c[i]等于栈顶
                then 栈顶出栈
            else 
                then 输出no
                return 0;
            i++;
            end 
    else    //奇数个 
        then while i小于len
            do if i小于len/2  //进栈
                then c[i]进栈
            elseif c[i]等于栈顶
                then 栈顶出栈
            else 
                then 输出no
                return 0;
            if i等于len/2-1 
                then i++; 
            i++;
            end
    
    输出yes
    return 0;
} 

2、代码截图

技术分享图片
技术分享图片

3、PTA提交列表说明

技术分享图片

编译错误:把编译器改成C++;
运行超时:一开始我是输入一个字符则进栈一个字符,结果运行超时,后来,修改成一次性输入字符串在进行判断。
    

题目2:7-4(选做) 列车厢调度

1、设计思路

#头文件
int main(){
    定义整型变量 i<-0,j<-0;
    定义字符型数组 a,b,res,res2;
    定义字符型栈s;//用于储存轨道3的列车
    输入 a,b;
    while a[i]
        do if a[i]==b[j]
            then res[j++]<-a[i];
            i++;
            continue;
        while s不为空&&s栈顶不等于b[j]
            do res[j]<-b[j]
            j++;
            删除栈顶
            end
        if a[i]不等于b[j]
            then a[i]进栈
            i++
        end
    //将轨道3上的列车全部移向轨道2
    while 栈s不为空
        do res[j++]<-栈顶
        删除栈顶
        end
    if res与b不同
        then 输出“Are you kidding me?"
        return 0;
    i<-j<-0;
    //如果res与b相同,则重复上述操作输出操作序列
    while a[i]
        do if a[i]==b[j]
            then res2[j++]<-a[i];
            i++;
            输出 "1->2" 且换行
            continue;
        while s不为空&&s栈顶不等于b[j]
            do res2[j]<-b[j]
            j++;
            输出 "3->2" 且换行
            删除栈顶
            end
        if a[i]不等于b[j]
            输出 "1->3" 且换行
            then a[i]进栈
            i++
        end
    while 栈s不为空
        do res2[j++]<-栈顶
        删除栈顶
        输出 "3->2" 且换行
        end
    return 0;
}

2、代码截图

技术分享图片
技术分享图片
技术分享图片

3、PTA提交列表说明

技术分享图片

编译错误:代码中使用了gets()来输入字符串,头文件中的定义中没有,后来改用头文件#include <bits/stdc++.h>  ,该头文件包括了所有的头文件,不用写太多的头文件

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

1、设计思路

#头文件
int main(){
    定义整型变量 temp,n,i<-0;
    输入n;
    定义队列A,B;
    for i<-0 to n 
        do 输入temp
        if temp为奇数
            then 进A队列
        else //temp为偶数
            then 进B队列
    end
    //为了输出中间的空格,先输出一个
    if A队列不为空
        then 输出A队列头
        删除A队列头
        i++
    else
        then 输出B队列头
        删除B队列头
    while A队列不为空并且B队列不为空
        do i++;
        if i%2
            then if A队列不为空
                then 输出” ”和A的队列头
                删除A队列头
            else
                if A队列不为空
                    then 输出” ”和A的队列头
                    删除A队列头
                if B
                    then 输出” ”和B的队列头
                    删除B队列头
    end
    输出回车
    return 0;
}

2、代码截图

技术分享图片
技术分享图片

3、PTA提交列表说明

技术分享图片

编译错误:编译器为改成C++
部分正确:在输出第一个元素的时候,在B队列那里输出完后没有删除

三、本周题目集的PTA最后排名


1、栈PTA排名

技术分享图片

2、队列PTA排名

3、我的总分

四、阅读代码

码云地址

技术分享图片
技术分享图片
技术分享图片

功能:实现多项式A与多项式B的相除并输出商和余
优点:逻辑结构清晰,易于阅读;代码简洁;

五、代码Git提交记录截图


Data_Structure03-栈和队列

标签:class   log   截图   开始   for   并且   代码   模拟   提交   

原文地址:https://www.cnblogs.com/lanxiang/p/8734770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!