码迷,mamicode.com
首页 > 其他好文 > 详细

栈应用之平衡符号

时间:2015-04-11 11:57:24      阅读:150      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!