第三章总结

第三章主要学习了栈和队列的表示以及基本操作,栈和队列都是操作受限的表,栈的特点是先进先后出,队列是先进先出,在栈与递归中,我学习到递归算法虽然结构清晰可读性强算法简单,但时间和空间复杂度都很大,所以好的方式是用迭代。循环队列:使用循环队列可以避免假溢出的问题,rear=(rear+1)%MAXSIZE,但这时队列的最大空间是MAXSIZE-1。

作业的心得体会:

 这次作业和时间暴露出一个很明显的的问题,程序的封装性。

 if(i==1&&S.base==S.top) {

   cout<<"yes";

  }else{

   cout<<"no";

  }     做作业时我在主程序中直接调用了栈的操作来判断栈空,正确的做法时将栈空的判断写成一个函数,再进行调用。

int emptysqstack(sqstack s)//判断栈空
{
     if(s.top==s.base)
     {
     return 1;
    }
    else return 0;     
}

  if(i==1&&emptysqstack(S)==1) {
      cout<<"yes";
  }else{
      cout<<"no";
  }
 }。封装可以使程序的结构更清晰,可读性强,有利于标注和debug。

上次确定的目标及接下来的目标:

上次的目标是提高独自完成代码的能力,但是在不接助书本或网络的情况下编码的效率很低,以后我会先借助书本的代码完成作业,然后在没有其他参考的情况下自己再将代码打出来。

 

posted @ 2019-03-31 12:00  反派死于话多  阅读(110)  评论(2编辑  收藏  举报