C++ 简单实现压栈出栈
/********************************************************************** * Copyright (c)2015,WK Studios * Filename: stack.h * Compiler: GCC,VS,VC6.0 win32 * Author:WK * Time: 2015 3 29 ************************************************************************/ #include<iostream> using namespace std; const int SIZE=10; class Stack { private: int stck[SIZE];//数组用于存放栈中数据 int tos; //栈顶位置(数组的下标) public: Stack(); void push(int ch); //函数声明向栈中中压入数据fuction int pop(); //声明从堆栈中弹出数据fuction void ShowStack(); //声明显示堆栈数据function };
/********************************************************************** * Copyright (c)2015,WK Studios * Filename: stack.cpp * Compiler: GCC,VS,VC6.0 win32 * Author:WK * Time: 2015 3 29 ************************************************************************/ #include"stack.h" //构造函数,初始化栈的实现 Stack::Stack() { tos=0; stck[SIZE]=0; } //向栈中压入数据函数的实现 void Stack::push(int ch) { if(tos==SIZE) { cout<<"Stack is full!\n"; return ; } stck[tos]=ch; tos++; cout<<"You have pushed a data into the Stack!\n"; } //从栈中弹出数据函数的实现 int Stack::pop() { if(0==tos) { cout<<"Stack is empty!\n"; return 0; } tos--; return stck[tos]; } //显示栈中数据的函数的实现 void Stack::ShowStack() { cout<<"The content of Stack:\n"; if(0==tos) { cout<<"The Stack has no data!\n"; return ; } for(int i=tos-1;i>=0;i--) { cout<<stck[i]<<' '; } cout<<'\n'; }
/********************************************************************** * Copyright (c)2015,WK Studios * Filename: main.cpp * Compiler: GCC,VS,VC6.0 win32 * Author:WK * Time: 2015 3 29 ************************************************************************/ #include"stack.h" int main() { cout<<endl;//换行的同时刷新缓冲区 Stack ss; //定义对象 int x=0; char ch; cout<<" <I>----- push data to Stack!\n"; cout<<" <O>----- pop data from Stack!\n"; cout<<" <S>----- show content of Stack!\n"; cout<<" <Q>----- Quit !!!!!!!\n"; while(1) { cout<<"Please select an item:"; cin>>ch; ch=toupper(ch); switch(ch) { case 'I': cout<<"Enter the value that you want to push:"; cin>>x; ss.push(ch); break; case 'O': x=ss.pop(); cout<<"pop "<<x<<" from Stack!\n"; break; case 'S': ss.ShowStack(); break; case 'Q': return 0; break; default : cout<<"You have iputted a wrong item!!!! Please try again !\n"; continue; } } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。