原创 一个检查原代码括号配对的程序,栈的应用收藏

新一篇: 一个旋转菜单 | 旧一篇: S60中文模拟器的问题

/**
*write by liujun
*/
import java.io.*;
public class Stack
{
 private char myStack[];
 private int top;
 private int len;
 public Stack(int len)
 {
  myStack = new char[len];
  this.len = len;
  top = -1;
 }
 public boolean push(char value)
 {
  if(isFull())
  return false;
  else
  myStack[++top] = value;
  return true;
 }
 public char pop()
 {
  if (top<0)
  return ' ';
  return myStack[top--];
 }
 public char peek()
 {
  return myStack[top];
 }
 public boolean isFull()
 {
  return top+1 == len;
 }
 public boolean isEmpty()
 {
  return top == -1;
 }
 public static void main(String args[]) throws IOException
 {
  String s = getString();
  Stack st = new Stack(s.length());
  char c;
  int i=0;
  for(i=0;i<s.length();i++)
  {
   c = s.charAt(i);
   switch(c)
   {
    case '{':
     st.push(c);
     break;
    case '[':
     st.push(c);
     break;
    case '(':
     st.push(c);  
     break;
   }
   
   if(c == '}' || c == ']' || c == ')'){
    char c2 = st.pop();
    System.out.println(c+"c2"+c2);
    if((c2 != '{' && c == '}') || (c2 != '['&& c== ']') || (c2 != '(' && c ==')'))
    {
     System.out.println("errer");
     break;
    }
   }
   
  }
  if(i == s.length() && st.isEmpty())
  System.out.println("right");
  else
  System.out.println("error");
 }
 public static String getString() throws IOException
 {
  FileReader f = new FileReader("D:\\A1.java");
  String s= "";
  int c;
  while((c = f.read()) != -1)
  {
   s = s +(char)c;
  }
  return s;
 }
}

发表于 @ 2006年04月17日 11:05:00|评论(loading...)|编辑

新一篇: 一个旋转菜单 | 旧一篇: S60中文模拟器的问题

评论

#Kindy 发表于2006-04-18 18:10:00  IP: 219.136.129.*
Just Perfect.
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © liujun999999