zoukankan      html  css  js  c++  java
  • 博客作业03--栈和队列

    1.学习总结(2分)

    2.PTA实验作业(4分)

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

    2.2 设计思路

    函数参数 str[]为原字符串   s为str[]入栈的栈
    
            自定义类型变量 e   存放栈顶元素
    for i=0 to  str[i]为空 
         将str[i]进栈s
    end for
    for i=0 to str[i]为空 
           Pop函数出栈(e=原栈顶)
           if str[i] 不等于 e
                  返回false
           end if
    end for
    完全遍历,返回true
    

    2.3 代码截图

    2.4 PTA提交列表说明(提交了好多个段错误)

    主要的区别在于字符数组的赋值与判断str[i]无内容的条件不同---------还是上学期gets和getchar的用法以及‘’和' '的用法还不太清楚

    0分:


    满分:


    2.1 题目2:7-3 表达式转换

    2.2 设计思路

    传参 栈指针类型 s ,ElemType类型 e传当前字符, c传前一个字符
    
    定义 ElemType类型 变量x存放栈头,a存放出栈元素
    if  栈不为空
               x 等于 gettop(s)函数取栈头
               if  e 等于 ')'
                       while x 不等于 '(' 且 队列不为空
                                 弹出并输出栈顶
                       end
                       将栈顶的  (  弹出 
               end if
               else if  e 等于  (    进栈
               else if  e 等于  * 或 /
                         while 栈顶 x 等于 * 或  /
                                   弹出并输出栈顶
                         end
                         e 进栈
              end
              else if  e 等于  +
                         while 栈顶 x 等于 * 或 x 等于 / 或 x 等于 + 或 x 等于 -
                                   弹出并输出栈顶
                         end
                         if c 为数字 或 c 等于 )
                         e 进栈
              end
              else if  e 等于  -
                         while x 等于 * 或 x 等于 / 或 x 等于 + 或 x 等于 -
                                   x=gettop(s);
                                   pop出栈存于a
                                   输出 空格 a
                         end
                         if c 为数字 
                               e 进栈
                         else
                               输出 空格 a
                               flag 等于0
    
              end
    end if
    else if e 等于 -
             输出 e
    else
             进栈
    

    2.3 代码截图

    主函数

    栈的基本操作


    该题主要函数


    2.4 PTA提交列表说明。

    1.嵌套括号格式错误

        错误测试:当开头为多个括号时,第一个输出的数字前会多一个空格
        修正 :增加全局变量flag=0  ,第一次输出后令flag=1,通过对flag的值判断是否输出空格
    

    2.运算数超过1位整数且有非整数出现

        修正:利用全局变量flag
    

    3.运算数前有正负号

       修正:函数参数传将前一个字符,判断该字符的前一个字符是否也是运算符(e为当前字符,c为前一个字符)
    


    在‘+’进队前判断c是否为数字

    在‘-’进队前进行判断c是否为数字,且若是负数,‘-’要输出

    2.1 题目3:7-1 jmu-报数游戏

    2.2 设计思路

    定义 整型变量 n存储总人数  m为出队数字
            自定义类型 e 存储出队数据
            队列指针类型  q
    
            输入 n,m
            if m 大于 n 
                 报错
            end  if 
            else1
                  for i=1 to i=n 共n个人
                       i 进队q
                 end for
                 初始化 i=0
                 while  队列不为空
                       i++;    //报数
                       出队 e=队头
                       if  i%m 不等于 0
                           then     e回队尾
                           else     输出  e
                      end if  
                end  while
            end else1
    
    

    2.3 代码截图

    2.4 PTA提交列表说明

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

    曾文惠
    201721123002

    3.1 栈PTA排名(27---100)

    3.2 队列PTA排名(62---80)

    3.3 我的总分:2分(180)

    4. 阅读代码

    
    进制转换
    
    void conversion(int a, int b)  //参数为从a进制转换为b进制
     {
          int num = 0;
          char z = 'A';
          printf("请输入你想要转换的%d进制数",a);
          scanf("%d", &num);
         while(num)
         {
             Push(Scale, num%b);  //取余数逐个进栈
             num /=b;  //求商
         }
         int e = 0;
         printf("转换为%d进制数为:", b);
         while(!StackEmpty(Scale))
         {
             Pop(Scale, e);   //逐个出栈
             if(e >= 10 && e <= 15)  //结果为十六进制时用到转换为字母
                 printf("%c", z+e-10);
            else
                 printf("%d", e);
         }
          printf("
    ");
     }
    
    

    5. 代码Git提交记录截图



    队列

  • 相关阅读:
    Windows多线程编程入门
    多字节字符与宽字符
    Linux静态库与动态库详解
    Linux下清理内存和Cache方法
    数据库设计范式
    mybatis面试问题
    Gson使用
    Linux 定时任务crontab使用
    Java-GC机制
    java内存模型
  • 原文地址:https://www.cnblogs.com/Zeng99/p/8732708.html
Copyright © 2011-2022 走看看