• 博客作业03--栈和队列


    1.学习总结(2分)

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

    顺序栈,链栈,环形队列,顺序队列,kmp算法。

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

    2.PTA实验作业(4分)

    2.1.1 题目1:字符串是否对称

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

    定义结构体
    	定义指针data存储数据
    	定义top指向栈的顶部
    定义数组ch[90]存储字符,e用于存放出栈元素 
    	for i=0 to ch[i] = 0
    	将ch[i]内的元素存入栈内
    	end for
    	for i =0 直到 s -> top为止
    	比较出栈的元素与栈底的元素是否相等
    	不等就退出循环输出no,循环结束后输出yes 
    	end for
    

    2.1.3 代码截图

    2.1.4 PTA提交列表说明。


    本题用scanf导致多次段错误,但是在devc上可以运行,后来换了get函数后才答案正确

    2.2.1 题目2; 报数游戏

    2.2.2 设计思路

    输入count1表示报的数,输入n表示人数
         for i=0 to i<n
         按顺序将1到n个数字入队
         for(;;)
         遍历队列,同时用count记录当前报的数,
         若符合输入的数则出队且输出,否则插入队尾
         直到最后一个数时,输出该数且结束循环
    若报的数大于队列人数则输出错误提示 
    

    2.2.3 代码截图

    2.2.4 PTA提交列表说明。


    无明显错误,只是忘记用c++编译器了。

    2.3.1 题目3银行业务队列简单模拟

    2.3.2 设计思路

    用队列函数定义队列a和队列b
    定义n代表队列长度,num表示顾客的编号
    输入顾客数n 
        for i = 0 to n
        将顾客的编号存入队列,偶数存入b,奇数存入a
        end for
        while(!p.empty()&&(!q.empty()))
        输出出队a 2次,再输出出队b 1次
        若a队列或者b队列为空,则输出不为空队列的剩下数据
    

    2.3.3


    2.3.4 PTA提交列表说明


    循环结束判定条件不正确,导致多次运行超时,同时未考虑到n为0时的情况

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

    3.1 栈PTA排名

    3.2 队列PTA排名

    3.3 我的总分:180

    4. 阅读代码(必做,1分)

    #include"head.h"  
      
    void main()  
    {  
        SqStack s;  
        char ch, c;  
        InitStack(&s);  
        printf("请输入字符文件,以ctrl+z键表示结束输入:
    ");  
        ch = getchar();  
        while (ch != EOF)  
        {  
            //处理一行数据  
            while (ch != EOF && ch != '
    ')  
            {  
                switch (ch)  
                {  
                case '#':  Pop(&s, &c); break;  
                case '@':  ClearStack(&s); break;  
                default:  Push(&s, ch); break;  
                }  
                //处理下一行数据  
                ch = getchar();  
            }  
            StackTraverse(s);  
            ClearStack(&s);  
            if (ch!=EOF)  
                ch = getchar();  
        }  
        DestoryStack(&s);  
      
        system("pause");  
    }
    
    

    该代码可进行行编辑,‘#’可以退掉前一个字符,‘@’可以退掉前行的字符,该代码以ctrl z代表结束,
    用switch对字符进行判断,出现“#”则出栈,否则用 ClearStack(&s)函数清空栈,其余字符存入栈中。

    5. 代码Git提交记录截图

  • 相关阅读:
    Linux 下编译Android-VLC开源播放器详解(附源码下载)
    VC/Wince 实现仿Win8 Metro风格界面2——页面滑动切换(附效果图)
    Android Launcher分析和修改3——Launcher启动和初始化
    VC/Wince 实现仿Win8 Metro风格界面1——设计概述和自绘Button(附效果图)
    Android Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置
    Android Launcher分析和修改1——Launcher默认界面配置(default_workspace)
    WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8
    编程工具系列之二------使用GDB的源代码查看功能
    编程工具系列之一------使用GDB的堆栈跟踪功能
    unable to open sync connection
  • 原文地址:https://www.cnblogs.com/chenwenjie/p/8831389.html
Copyright © 2020-2023  润新知