栈与队列作业

1.学习总结

1.1  重要关键词:数据结构,线性表,逻辑结构,物理结构,栈,队列;

1.2 我的思维导图:

2.PTA实验作业

作业内容:

本周要求挑选出3道题目书写设计思路、调试过程。设计思路使用伪代码描述。题目选做要求:

            a.不能选函数题

            b. 编程题选3题

2.1题目一:7-1 jmu-字符串是否对称(20 分)

2.2设计思路:定义字符串s2,定义栈s1;

                    int i=0

                    for(i=0;s2[i];i++)s1.push(s2[i]);//字符串全部入栈;

                     i=0;

                    while(!s1.empty()){

                         if(s1.top()!=s2[i]break;//字符串挨个与栈中元素比较;

                           s1.pop():}

2.2设计思路:利用栈先进后出的存储特点,字符串入栈后,出栈元素恰好是字符串是逆序的;

2.3代码截图:

2.4  PTA提交列表:

 

 

列表说明:部分正确是因为while(i++);

                将i++提出在while语句中后则全部正确;

2.1题目二:7-2 符号配对(20 分)

 

2.2伪代码:定义str字符串;定义q栈;

                  while(gets(str)){

                     if(str[0]=='.'&&str[1]=='\n')break;// 一行一行输入判断;

                   if(str[i]=='['||'('||'{'||'/*')p.push(str[i]);//此种符号均入栈;

                   if(str[i]==']'||')'||'}'||'*/')p.push(str[i])//碰到右边符号:

                        if(!p.empty()&&p.top()=='(')p.pop();//栈首元素为对应的左符号,栈首出栈;

                        else{
                        c=str[i];
                        flag=0;
                        break;
                       }//否则即为不配对字符;

               if(!p.empty()){
                   if(p.top()=='[')printf("[-?\n");
                   if(p.top()=='{')printf("{-?\n");
                   if(p.top()=='(')printf("(-?\n");
                  if(p.top()=='*')printf("/*-?\n");
             }

 

 

             

2.2设计思路:利用栈先进后出的存储特点,字符串入栈后,出栈元素恰好是字符串是逆序的;

2.3代码截图:

2.4  PTA提交列表:

 

 

列表说明:部分正确是因为while(i++);

                将i++提出在while语句中后则全部正确;

 

 

posted on 2018-04-07 17:45  松岛菜  阅读(140)  评论(0编辑  收藏  举报