出栈的合法序列(c语言)C++

该博客探讨了如何使用C++解决一个数据结构问题:验证给定的出栈序列是否合法。通过模拟入栈和出栈过程,文章提供了一个算法来检查序列是否遵循从栈中出栈的正确顺序。示例展示了从1到n的整数入栈,然后给出一个出栈序列,判断其是否符合规则。
摘要由CSDN通过智能技术生成

话不多说,下面是题目

现有一个空栈c和一个正整数n,将1,2,3,...,n1,2,3,...,依次入栈,期间任意时刻出栈。然后给定一个出栈序列,问其是否是一个合法的出栈序列。

输入的要求是

第一行一个整数n(1≤n≤100),表示需要入栈的整数个数;

第二行为[1,n]的一个排列,表示一个出栈序列,整数间用空格隔开。

输出则要求输出成功为yes,失败为NO,

下面有个小tips:

初始时栈为空,即[]。接下来按下面的顺序执行即可得到出栈序列3 2 4 1

1.1入栈,此时栈为[1]

2.2入栈,此时栈为[1,2]

3.3入栈,此时栈为[1,2,3]

4.3出栈,此时栈为[1,2]

5.2出栈,此时栈为[1]

6.4入栈,此时栈为[1,4]

7.4出栈,此时栈为[1]

8.1出栈,此时栈为[]。 

代码如下:             

#include
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值