数据结构学习之路之链栈

链栈

typedef struct StackNode{
ElemType data;
struct StackNode *next;
}StackNode,*LinkStack;

初始化

void InitStack(LinkStack &S){
S=NULL;
}

判断链栈是否为空

int StackEmpty(LinkStack S){
if(S=NULL)return 1;
else return 0;

入栈

int Push(LinkStack &S,ElemType e){
p=(LinkStack)malloc(sizeof(StackNode));
if(!p)exit(-2);
p->data=e;
p->next=S;
S=p;
return OK;
}

出栈

int Pop(LinkStack &S,ElemType &e){
if(S=NULL)return ERROR;
e=S->data;
p=S;
S=S->next;
free§;
return OK;
}

取栈顶元素

int GetTop(LinkStack S){
if(S=NULL)exit(1);
else return S->data;
}

栈的应用

1、迷宫游戏
2、表达式计算
3、递归

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值