堆栈顺序存储的c++实现与测试

/*堆栈的顺序存储实现与测试*/
#include<iostream>
using namespace std;
#define ERROR -100 /*定义函数出错时的返回值*/
#define maxsize 100/*定义数组空间最大值*/
typedef int ElementType;
typedef struct SNode *Duizhan;/*定义间接访问堆栈的数据类型*/
/*定义堆栈结构体*/
struct SNode{
ElementType Data[maxsize];/*定义数组空间*/
int top;/*栈顶指针,指向栈顶元素的数组下标*/
};
/*入栈,给定一个堆栈,把一个元素压入栈顶*/
void Push(Duizhan Ptrs,ElementType item){
if(Ptrs->top==maxsize-1){
cout<<"full"<<endl;
return;
}/*栈满*/
Ptrs->Data[++(Ptrs->top)]=item;/**/
return;
}
/*出栈,指定堆栈栈顶元素出栈,并返回该元素值*/
ElementType Pop(Duizhan Ptrs){
if(Ptrs->top==-1){
cout<<"empty"<<endl;
return ERROR;
}/*空栈*/
return Ptrs->Data[(Ptrs->top)--];
}
int main(){
Duizhan S;/*创建一个堆栈*/
S=(Duizhan)malloc(sizeof(struct SNode));/*分配内存空间*/
S->top=-1;/*初始化,设置为一个空栈*/
int v[3];
int k,n;
for(k=0;k<3;k++){
cin>>v[k];
Push(S,v[k]);
}/*依次将三个元素压入栈顶*/
n=Pop(S);
cout<<n<<endl;
return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值