您的位置:首页 > 编程语言 > C语言/C++

顺序栈的定义、初始化、出栈、入栈等操作 C++代码实现 ——感想

2011-12-20 11:44 573 查看
原文地址:http://www.cnblogs.com/hackerain/archive/2010/10/11/2130450.html 

#include <iostream>

using namespace std;

 

/*顺序栈的定义*/

#define Stack_Size 100

typedef struct sqStack

{

       char *elem;

       int top;

       int stackSize;//栈数组长度

}sqStack;

 

 

/*顺序栈的初始化*/

void initStack_Sq(sqStack &S)

{

       S.elem=new char[Stack_Size];

       S.top=-1;

       S.stackSize=Stack_Size;

}

 

/*建立顺序栈*/

void creatStack_Sq(sqStack &S,int n)

{

       initStack_Sq(S);//在这里忘了初始化栈,导致编译的时候出现错误。

       for(int i=0;i<n;i++)

       {

              cin>>S.elem[i];

              S.top++;

       }

}

 

/*销毁顺序栈*/

void destroyStack_Sq(sqStack S)

{

       delete []S.elem;

       S.top=-1;

       S.stackSize=0;

}

 

/*入栈*/

void push(sqStack &S,char x)

{

       if(S.top==Stack_Size-1)

              cout<<"Stack Overflow!";

       S.elem[++S.top]=x;

}

 

/*出栈*/

char pop(sqStack &S)

{

       char x;

       if(S.top==-1)

              cout<<"Stack Empty!";

       x=S.elem[S.top--];

       return x;

}

 

void main()

{

       sqStack S;

       creatStack_Sq(S,5);

       push(S,'a');

       cout<<pop(S)<<endl;

       destroyStack_Sq(S);

}

 

感想:这是无意中在网上看到的一个计算机初学者总结的顺序栈的操作,感触很深。想当年我大一的时候,甚至连计算机究竟是个什么东西还很懵懂,更不用提有开始积累的心思了。浑浑噩噩的上课,完成理工科的基础学科的作业,拿到好成绩,获得奖学金——以为这就是一个优秀的计算机专科的学生。一直到现在,大四,浪费了3年无意义的时间,在尝试研究生保外的时候,还记得北邮的笔试,真的是什么都不会,我知道很基础的,但就是无法写出来。真的是,最对不起的就是自己了。如果我能在大一就知道计算机就是COding,就要积累,也许现在我也不用这么菜鸟了吧。

   但是人生没有如果,只有后果和结果。亡羊补牢,为是不晚,我要从现在开始积累,还有3年的研究生,不能再浪费了,要建立自己的专业竞争力,即使毕业的时候不是大牛一只,我也要成为健壮的一只牛牛!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ delete struct 作业 ini 2010
相关文章推荐