数据结构基础讲解(四)——栈专项练习

本文数据结构讲解参考书目:

通过网盘分享的文件:数据结构  C语言版.pdf
链接: https://pan.baidu.com/s/159y_QTbXqpMhNCNP_Fls9g?pwd=ze8e 提取码: ze8e

数据结构基础讲解(三)——线性表之循环链表专项练习-优快云博客

个人主页:樱娆π-优快云博客

 

目录

 

栈的定义和特点

栈的类型定义

栈的基本操作

顺序栈的表示和实现

1.顺序栈的初始化

【算法步骤】

【算法实现】

2.顺序栈的入栈

【算法步骤】

【算法实现】

3.顺序栈的出栈

【算法步骤】

【算法实现】

4.取栈顶元素

【算法实现】

链栈的表示和实现

1.链栈的初始化

【算法实现】

2.链栈的入栈

【算法步骤】

【算法实现】

3.链栈的出栈

【算法步骤】

【算法实现】

4.取栈顶元素

【算法实现】

栈与递归


 


栈的定义和特点

栈 (stack) 是限定仅在表尾进行插入或删除操作的线性表。 因此, 对栈来说, 表尾端有其 特殊含义, 称为栈顶 (top), 相应地, 表头端称为栈底 (bottom)。 不含元素的空表称为空栈

栈又称为后进先出 (Last In First Out, LIFO) 的线性表。

由图可知,出栈和入栈都是在栈顶进行的!!

栈的类型定义

栈的基本操作除了入栈和出栈外, 还有栈的初始化、 栈空的判定,以及取栈顶元素。

ADT Stack {

 数据对象: D={ai I ai含于EElemSet, i=1, 2, …, n,n>=0}

数据关系: R= { < ai-1, ai > I ai-1,ai含于D, i=2, …, n}

约定 an 端为栈顶, a1端为栈底

基本操作:

}

栈的基本操作

基本操作 初始条件 操作结果
InitStack(&S) / 构造一个空栈s
DestroyStack(&S) 栈S已存在 栈S被销毁
ClearStack(&S) 栈S已存在 将S清为空栈
StackEmpty(S) 栈S已存在 若栈 s 为空栈, 则返回 true, 否则返回 false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

樱娆^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值