栈是一种比较重要的线性结构,能够解决很多困难的问题,在此写个代码小小总结一下。
这里采用的实现方式是顺序结构,链式结构有待完善。。。
上代码:
1 #include2 using namespace std; 3 4 class stack 5 { 6 private: 7 int msize; 8 int *st; 9 int top;10 public:11 stack(int size);12 bool push(int &item);13 bool pop();14 void display();15 bool clear();16 ~stack();17 };18 19 stack::stack(int size)20 {21 msize = size;22 st = new int[msize];23 top = -1;24 }25 26 bool stack::push(int &item)27 {28 29 if(top == msize-1)30 {31 cout<< "栈已满!" << endl;32 return 0;33 }34 st[++top] = item;35 return 1;36 }37 38 bool stack::pop()39 {40 if(top == -1)41 {42 cout<< "栈已空!" << endl;43 return 0;44 }45 //item = st[top--];46 top--;47 return 1;48 }49 50 void stack::display()51 {52 int temp = top;53 while(temp != -1)54 {55 cout << st[temp] << " ";56 temp--;57 }58 59 cout<< endl;60 }61 bool stack::clear()62 {63 top = -1;64 return 1;65 }66 67 stack::~stack()68 {69 delete [] st;70 }71 72 int main()73 {74 stack st(10);75 int ele;76 cout<< "输入元素 :" << endl;77 for(int i=0;i<10;i++)78 {79 cin>>ele;80 st.push(ele);81 }82 cout<< " 所有元素出栈 :" << endl;83 st.display();84 st.pop();85 st.pop();86 cout<< "弹出两个元素之后打印 : " << endl;87 st.display();88 return 0;89 }
程序运行结果: