数据结构第二版(朱昌杰版)栈和队列二

基本操作:
初始化栈

InitStack(&S)

判断栈空

EmptyStack(&S);

判断栈满

StackFull(&S);

获取栈顶元素

GetTop(&S);

进栈

Push(&S);

出栈

Pop(&S);

正片开始
初始化栈

 int InitStack(SqStack &s){
  S.top=-1;
  return OK;
    }

结构体先声明一下

#define MaxSize 100
typedef  struct{
	DataType data[Maxsize];
	int top;
}SqStack;

判断空

int StackEmpty(SqStack S){
	return (S.top==-1?TRUE:FALSE;);
}

判断栈满

int StackFull(SqStack S){
	return (S.top==maxsize-1?TRUE:FLASE;);
}

进栈

int Push(SqStack &S,DataType e){
	if(StackFull(S)) retuern ERROR;
	S.top++;
	S.data[S.top]=e;
	retuern OK;
}

出栈

int Pop(SqStack &S,DataType &e){
	if(StackEmpty(S)) return ERROR;
	e=S.data[top];
	S.top--;
	return OK;
}

取栈顶元素

int GetTOp(SqStack S,DataType &e){
	if(StackEmpty(S)) return ERROER;
	e=S.data[top];
	return OK;
}

以上是栈的顺序存储


接下来是链式存储
和链式存储相不同的是顺序是以数组实现,链式是用数组形成的,下一章节讨论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值