自己编的代码,运行起来有问题!

sheep902 发布于 2013/10/19 15:19
阅读 229
收藏 0

/*模拟STL stack类设计实现你的stack类,该类需具有入栈,出栈,判栈空,取栈顶元素等功能,并能拷贝构造和赋值;利用该类实现本题要求。

输入样例

1 100
2 200
1 300
2 400 
1 50
1 60
2 80
输出样例

60 50 300 100
80 400 200
*/

#include <iostream>


using namespace std;
const int MaxSize =50 ;


typedef class  stack
{
  private:


     char *base ;
     char *top  ;
int large ;
 
  public:
 stack(){
   base = new char [ MaxSize ];
top = base ;
large = MaxSize ;
 }
      
 int empty ()              //判断空
 {
 return (!top);
 }


      void push( char &e )   //入栈
 {
 *top = e; 
 top ++ ; 
      }


      void pop( )   //出栈
 {  
 char x;
 while( top >= base )
 {  
    x = GetTop();
cout << x << " " ;
top -- ;
 }
          cout << endl ;
 }


 char GetTop( )  //取栈顶元素
 {  
 char e ;
 if( top == base ) e = *top;
  else e = *( top -1 ) ;
return e;
 }
      
/* stack( const stack &copy )
 {
     top = base = new char [ MaxSize ];
 if(!base) exit(0);
 large = MaxSize ;
 }
*/
~stack(){
 
 }
}stack;


int main()
{
       stack A, B;
  int flag = 1,n;
  char e ;
       cin >> n ; 
  while ( n ){
  
  scanf( "%d %c", &flag, &e );
      if( flag == 1 )  A.push(e);
             else if( flag == 2 ) B.push(e);
  n-- ;
  }
  
      
  A.pop();
  B.pop();




     
return 0;
}
加载中
0
Pat刘
Pat刘
主函数里cin和scanf这种我是无法忍受的...C++就别用scanf了~这个push()你每次调用的时候,top指针都会++,实际上指向已经不是top了~
返回顶部
顶部