当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
计算机二级辅导:Java判断出栈顺序是否正确的方法
发布时间:2010/4/5 17:33:04 来源:城市学习网 编辑:admin
  我们知道栈是一种先进后出的数据容器。当一个栈的输入序列是递增序列(例如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;
  }
  :
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved