C语言:栈(Stack)的实现

本文介绍了栈的“先进后出”原则,通过实例解释了栈的操作,包括入栈(压栈)和出栈(弹栈)。讨论了栈的两种表示方式——顺序栈和链式栈,分析了它们各自的优缺点,并给出了使用顺序表实现栈的测试代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

栈呢,废话不多说,上图!

入栈前
入栈后

如上图,A B C D 争先恐后地从栈顶进入,A 跑的最快,所以他先到达栈底。B 紧随其后,接着是C ,然后是 D 。而这时候,A 被其他三个人压着喘不过气来了,他想出去,可是大家想想,他出的去吗?嘿嘿嘿,当然出不去呀,所以他只能等 B 走了......而 B 想出去,也得先等 C 走,C 想出去得等 D 走,而 D 么......想什么时候走就什么时候走!他就是那个最自由的男人!A B C 这时候肯定后悔了:早知道我在下一个人进来之前就出去了!

又名堆栈,总的来说,是一种仅在表尾进行插入和删除操作的线性表。我们学习过链表和顺序表,他们俩都是线性表,又可以对表尾进行增加和删除,那么,栈就可以用链表或者顺序表的方式来表示

栈的“先进后出”原则

使用栈存储数据元素,对数据元素的“存”和“取”有严格的规定:数据按一定的顺序存储到栈中,当需要调取栈中某数据元素时,需要将在该数据元素之后进栈的数据元素先出栈,该数据元素才能从栈中提取出来。
如上图 ,栈中存放了 4 个数据元素,进栈的顺序是 A 先进栈,然后 B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值