重学数据结构之栈

  • 定义
#define MaxSize 10
typedef struct {
    //定义数组存放栈中元素
    int data[MaxSize];
    //栈顶指针(记录栈顶下标)
    int top;
}SeqStack;
  • 初始化栈
/**
 * 初始化栈
 * @param S 顺序栈
 */
void InitStack(SeqStack &S){
    S.top=-1;
}
  • 入栈
/**
 * 新元素入栈
 * @param S 顺序栈
 * @param x 入栈的元素
 * @return
 */
bool Push(SeqStack &S,int x){
    //栈满,报错
    if(S.top==MaxSize-1)
        return false;
    //指针元素加1,新元素入栈
    S.data[++S.top]=x;
}
  • 出栈
/**
 * 新元素出栈
 * @param S 顺序栈
 * @param x 出栈的元素
 * @return
 */
bool Pop(SeqStack &S,int &x){
     if(S.top==-1)
         return false;
     //栈顶元素先出栈,指针再减1(数据还残留在内存中,只是在逻辑上被删除了)
     x=S.data[S.top--];
    return true;
}
  • 读取栈顶元素
/**
 * 读取栈顶元素
 * @param S
 * @param x
 * @return
 */
bool GetTop(SeqStack S,int &x){
    if(S.top==-1)
        return false;
    //记录栈顶元素
    x=S.data[S.top];
    return true;
}

  • 判断栈空
/**
 * 判断栈是否为空
 * @param S 顺序栈
 * @return
 */
bool StackEmpty(SeqStack S){
    if(S.top==-1)
        return true;
    else
        return false;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值