数据结构实验二链栈

#include<iostream.h>
#include<stdlib.h>
struct Node
{
int data;
Node *next;//*结构体指针*//
};
class Stack
{private:static int count;
Node *top;


public:
Stack(){top=NULL;}
void Insert(int data){
Node *s; s=(Node*)malloc(sizeof(Node));s->data=data;s->next=top;top=s;count++;}
int GetTop(){if(top==NULL)return 0;else return top->data;}
int Pop(){if(top==NULL)return 0;
else{Node *p;int x;x=top->data;p=top;top=top->next;delete p;return x;}}
void Show(){for(int i=0;i<=count-1;i++){
cout<<top->data<<" ";top=top->next;};}
};
int Stack::count=0;
int main()
{Stack S;void menu();
int  i;
do{menu();cout<<"Please enter your choice:";cin>>i;
switch(i)
{
case 1:int a;cout<<"Please enter a number:";cin>>a;S.Insert(a);break;
case 2:int b;b=S.GetTop();if(b==0)cout<<"栈空!"<<endl;else cout<<"栈顶:"<<S.GetTop()<<endl;break;
case 4:break;
case 3:int c;c=S.Pop();if(c==0)cout<<"栈空!"<<endl;else cout<<"弹出后的栈顶为:"<<S.Pop()<<endl;break;
case 5:S.Show();cout<<endl;break;
default:cout<<"enetr error!"<<endl;break;
}}while(i!=4);
return 0;
}void menu(){  
cout<<"请选择下列功能:"<<endl;
cout<<"1--入栈;"<<endl;
    cout<<"2--取栈顶;"<<endl;
cout<<"3--弹栈"<<endl;
    cout<<"4--退出;"<<endl;
    cout<<"5--显示后删除所有数据."<<endl;}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值