首页 > 其他 > 详细

栈应用之平衡符号

时间:2015-04-11 11:57:14      阅读:263      评论:0      收藏:0      [点我收藏+]

栈的应用:检查每件事情是否能成对出现,算法叙述:

    做一个空栈。读入字符直到文件结尾。如果字符是一个开放符号,则将其推入栈中。如果字符是一个封闭符号,则当栈为空时报错。否则,将栈元素弹出。如果弹出的符号不是对应的开放符号,则报错。在文件结尾,如果栈非空则报错。

public class BalanceSigned {
	
	@SuppressWarnings("unchecked")
	public static void checkChar(char[] words,int size){
		boolean error = false;
		//创建空栈
		Stack s = createStack();
		for(char c:words){
			switch(c){
			case ‘(‘:
			case ‘{‘:
			case ‘[‘:
				s.push(c);
				break;
			case ‘)‘:
			case ‘}‘:
			case ‘]‘:
				if(s.isEmpty()){
					System.out.println("Error,"+ c +" is no match.");
				}else{
					char cc = (char) s.pop();
					if((c==‘)‘&&cc!=‘(‘)||(c==‘}‘&&cc!=‘{‘)||(c==‘]‘&&cc!=‘[‘)){
						System.out.println("Error,"+ cc +" mismatch "+ c);
					}		
				}
				break;
			}
		}
		if(!s.isEmpty()){
			System.out.println("Error,sign is remaining.");
		}
	}
	
	public static Stack createStack(){
		Stack s = new Stack();
		return s;
	}
	public static void main(String[] args) {
		char[] ch ={‘(‘,‘2‘,‘}‘,‘}‘};
		checkChar(ch,3);
	}
}


栈应用之平衡符号

原文:http://my.oschina.net/elain/blog/398873

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!