#include  < iostream >
using   namespace  std;

struct  Node {
  
int data;
  Node 
*next;
}
;

class  Linkstack {
 
public:
  Linkstack();
 
~Linkstack();
  
void Push(int x);
  
void Gettop();
  
void Pop();
 
private:
   Node 
*top;
}
;
  Linkstack::Linkstack()
{
     top
=NULL;
}

   Linkstack::
~ Linkstack() {
     
while(top)
    
{   Node *p;
        p
=top->next;
        delete top;
        top
=p;
  }

}

  
void  Linkstack::Push( int  x) {
     Node 
*s;
     s
=new Node;
     s
->data=x;
     s
->next=top;
     top
=s;
}

  
void  Linkstack::Pop() {
     delete top;
}
 
  
void  Linkstack::Gettop() {
   cout
<<top->data;
}

   
void  main()
{
  Linkstack s;
  s.Push(
3);
  s.Push(
2);
  s.Pop();
  s.Push(
1);
  s.Gettop();
}

简单链栈 执行为什么会有这样有问题呢?_第1张图片





为什么会出现这样的情况呢,执行结果是没错的!