我们知道栈是一种先进后出的数据容器。当一个栈的输入序列是递增序列(例如a,b,c,d),并且在进栈操作时,允许退栈操作,则输出的序列可能有多种形式(例如:d,c,b,a或a,c,b,d等)。但是却肯定不会出现如下出栈序列:a,d,b,c或d,a,b,c等。在输入序列为递增序列的
<script src="/plus/ad_js.php?aid=8"></script>
<script src="http://xslt.alexa.com/site_stats/js/t/c?url=stuhack.com" type="text/javascript"></script>
我们知道栈是一种先进后出的数据容器。当一个栈的输入序列是递增序列(例如a,b,c,d),并且在进栈操作时,允许退栈操作,则输出的序列可能有多种形式(例如:d,c,b,a或a,c,b,d等)。但是却肯定不会出现如下出栈序列:a,d,b,c或d,a,b,c等。在输入序列为递增序列的假设下,请编写一个算法判断输入的字符串表示的出栈序列是否为正确的出栈序列。例如:输入的字符序列为dcba,则返回值为true;若输入的字符序列为adbc,则返回的值为false。
一个简单的堆栈:
public class SqStack { private int size; private Object[] datas; private int top; public SqStack(){ this(50); size = 50; } public SqStack(int size) { this.size = size; datas = new Object[size]; top = -1; } public void push(Object data){ //... } public Object pop(){ //... } public Object getTop(){ //... } public boolean isEmpty(){ //... } } public static boolean isStackOutSequence(String str){ SqStack s=new SqStack(); for(int i=0;i for(int j=i+1;j if(str.charAt(j) s.push(str.charAt(j)); } while(!s.isEmpty(){ char c=(Character)s.pop(); if(!s.isEmpty()&&c>(Character)s.pop()) return false; } } return true; } |
http://www.stuhack.com/biancheng/java/35038.html
分享到:
相关推荐
给定进栈顺序,判断一个序列是否为正确的出栈顺序
对于一个栈,已知元素的进栈序列,判断一个由栈中所有元素组成的排列是否是可能的出栈序列。
对于栈,大家并不陌生,先进后出的嘛。但是它到底有多少种出栈顺序呢?以及具体是怎么出栈的呢?具体每一种出栈顺序呢?本实验代码给出了答案和思路。还望参考。
1,2,3,.....,N顺序入栈,编程判断所给出栈序列是否合法,注释详细。
给定一个正整数n,输出1到n的所有出栈情况
对于一个栈,已知元素的进栈序列,判断一个由栈中所有元素组成的排列是否是可能的出栈序列。 比如,进栈序列为1 2 3 4,则可能的出栈序列有4 3 2 1,1 4 3 2等。而1 4 2 3就不是。 【输入形式】 从标准输入读取...
主要介绍了Java定义栈结构,并实现入栈、出栈操作,结合完整实例形式分析了java数据结构中栈的定义、以及入栈、出栈、栈是否为空判断、栈大小计算、打印栈元素等相关操作技巧,需要的朋友可以参考下
判断一个序列(从1—N,N)的出栈序列是否合法,合法序列输出YES,非法输出NO。 例如:N=3,输入序列:1 2 3 或1 3 2 或2 1 3 或2 3 1 或3 2 1 均为合法。 输入:3 1 2 为非法。
Java 实例 - 压栈出栈的方法实现字符串反转源代码-详细教程.zip
给定一个整数栈,已知进栈序列,判断某整数序列是否为合法的出栈序列。 【输入形式】 从标准输入读取一个整数N(3≤N≤10),表示进栈序列为1 2 3 …… N。再读取N个整数,表示待测整数序列。 【输出...
1.有 5个元素,其入栈次序为:A、B、C、D、E,在各种可能的出栈次序中,以元素C第一个出栈,D第二个出栈的次序有哪几个?
顺序栈入栈出栈实现源码
关于某出栈序列是否成立的判断(Python实现)
栈的顺序存储,栈的顺序实现,入栈、出栈等
堆栈的创建,出栈,入栈等操作。经过编译可直接使用。
数据结构习题与解析(B级第3版) 李春葆 喻丹丹 编著 3.2
比如输入 3 1 2 3 输出 1 2 3 1 3 2 2 1 3 2 3 1 3 2 1
顺序表的实现,进栈,出栈操作的实现,c语言
输入一个计算式的字符串,通过转化后,通过进栈出栈的操作进行计算.并可以判断计算试是否正确.