⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 teststack.java

📁 数据结构 包括数组(Array包) 和二叉树(Tree) 链表(Linelist包) 等等
💻 JAVA
字号:
package Array;
import java.io.IOException;

import MyLib.MyApp;
public class testStack {
	public static void main(String args[]) throws IOException{
		MyApp app=new MyApp();
		String in;
		System.out.println("enter String");
		in=app.readString();
		while(in!=null && !in.equals("exit")){
		System.out.println("enter String");
		 StringUser st=new StringUser(in);
		 
		 st.dov();
		 if(st.isCorrect)
			 System.out.println("correct entered");
		 in=app.readString();
		 
		}
	}
}
//=======================================================================
class StringUser{
	String input;
	String output;
	boolean isCorrect;
	public StringUser(String in){
		input=in;
		
	}
	public void dov(){
		isCorrect=true;
		int stackSize=input.length();
		MyStack stack=new MyStack(stackSize);
		for(int i=0;i<stackSize;i++){	
			String errMessage=" ";
		char ch=	input.charAt(i);
  //---------------------------------------------
		 switch(ch){
		 case '{' :
		 case '[' :
		 case '(' :                   // {[( 为入 stack 字符
			 stack.pushStack(ch);
			 break;
		 case '}':
			 
		 case ']':
		 case ')':
		//============================================
			 if(!stack.stackIsEmpty()){
				  char chx=stack.popStack();
				  if((ch=='}')&&(chx!='{')||
					 (ch==']')&&(chx!='[')||
					 (ch==')')&&(chx!='(')){
					//---------------------------  
					  switch(chx){
					  case '{':
						  errMessage="the correct input is '}'";
						  break;
				      case '[':
				    	  errMessage="the correct input is ']'";
						  break;
					  case '(': 
						  errMessage="the correct input is ')'";
						  break;
					  }
					  
					//---------------------------  
					  System.out.println("error at "+ i+" "+ch);
					  System.out.println(errMessage);
					  isCorrect=false;
				  } 
			 }else{
				 switch(ch){
				  case '}':
					  errMessage="{";
					  break;
			      case ']':
			    	  errMessage="[";
					  break;
				  case ')': 
					  errMessage="(";
					  break;
				 }
				  System.out.println("error at"+ i+" '"+errMessage+"' not input before ");
				 isCorrect=false;
			 }
			 break;
	 //===============================================
		 default :
			 
			 break;		
		}
   //-------------------------------------------------------------		 
		/*
		output=" ";
		 while(!stack.stackIsEmpty()){
			 output=output+stack.popStack();
			 
		 }
		 return output;*/
	}
}
}
//======================================================================
class MyStack{//堆栈结构
  	int stackMax;
	int stacktop;
	char[] myStack;
	public MyStack(int maxSize){
		myStack=new char[maxSize];
		stacktop=-1;
	}
	
	public void pushStack(char pushUnit){
		myStack[++stacktop]=pushUnit;
	}
	
	public char popStack(){
	  return	myStack[stacktop--];
	}
	
	public char peek(){
		return myStack[stacktop];
	}
	public boolean stackIsEmpty(){
		if(stacktop==-1)
			return true;
		else 
			return false;
		
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -