青岛大学_王卓老师【数据结构与算法】Week05_08_顺序栈的操作2_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。

一方面用于学习记录与分享,

另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。

如有侵权,请留言作删文处理。

课程视频链接:

数据结构与算法基础–第05周08–3.3栈的表示和实现4–3.3.2栈的顺序表示和实现3–顺序栈操作2

📚 【Week05】08_顺序栈的操作2

顺序栈判断栈是否为空

在这里插入图片描述

Status StackEmpty(SqStack S){
	// 若栈为空,返回 TRUE;
    // 若栈不为空,则返回 FALSE
    if(S.top == S.base){
        return TRUE;
    }
    else{
        return FALSE;
    }
}
求顺序栈长度

在这里插入图片描述

int StackLength(SqStack S){
        return (S.top - S.base);
}
清空顺序栈

在这里插入图片描述

int ClearStack(SqStack S){
	if(S.base){
        S.top = S.base;
    }
    return OK;
}
销毁顺序栈
Status DestroyStack(SqStack& S){
	if(S.base){
        delete S.base;
        S.stacksize = 0;
        S.base = NULL;
        S.top = NULL;
    }
    return OK;
}
顺序栈的入栈

在这里插入图片描述

(1) 判断是否栈满,若满则出错(上溢)

(2) 元素 e 压入栈顶

(3) 栈顶指针加 1

Status Push(SqStack& S, SElemType e){
    // 判断栈满
    if((S.top - S.base) == S.stacksize)
        return ERROR;
    *S.top ++ = e;
    // 等价于
    // *S.top = e;
    // S.top++;
    return OK;    
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值