Vectors
Hello To All,
I have a program which check for matching braces or brackets. In this program, i am trying to implement a Stack using Vector. I am stuck with some errors. can anyone correct my errors and explain to me.Here goes my program:
import java.io.*;
//import java.util.io.*;
class StackVector
{
private Vector data = new Vector() ;
// public StackVector(int size)
// {
//data = new Vector(size);
// }
public StackVector(int size)
{
data = new Vector(size);
}
// post: removes all elements from stack
public void add(Object item)
{
data.addElement(item);
}
public void push(Object item)
{
add(item);
}
public Object remove()
{
Object result = data.elementAt(size()-1);
return result;
}
public Object pop()
{
return remove();
}
public Object peek()
{
return data.elementAt(size()-1);
}
public boolean empty()
{
return size() == 0;
}
public int size()
{
return data.size();
}
public void clear()
{
data.clear();
}
public boolean isEmpty()
{
return size() == 0;
}
} // end class StackVector
class Checker {
private String input;// input string
public Checker(String in)// constructor
{ input = in; }
public void check()
{
int stackSize = input.length();// get max stack size
StackVector theStack = new StackVector(stackSize);
// make stack
for(int j=0;j<input.length(); j++)
// get chars in turn
{
char ch = input.charAt(j);// get char
Character c = null;
switch(ch)
{
case '{': // opening symbols
case '[':
case '(':
theStack.push(new Character (c)); // push them
break;
case '}': // closing symbols
case ']':
case ')':
if(!theStack.isEmpty())
// if stack not empty,
{
char chx = theStack.pop(new Character(c)); // pop and check
if(
(ch=='}' && chx!='{') ||
(ch==']' && chx!='[') ||
(ch==')' && chx!='(') )
System.out.println("Error: "+ch+" at "+j);
}
else// prematurely empty
System.out.println("Error: "+ch+" at "+j);
break;
default:
// no action on other characters
break;
} // end switch
} // end for
// at this point, all characters // have been processed
if( !theStack.isEmpty() )
System.out.println("Error: missing right bracket");
} // end check()
} // end class Checker
class Brackets {
public static void main(String[] args) throws IOException
{
String input;
while(true)
{
System.out.print(
"Enter string containing brackets and braces: ");
System.out.flush();
input = getString();// read a string from kbd
if(input.equals(""))// quit if [Enter]
break;
Checker theChecker = new Checker(input);
theChecker.check();} // end while
} // end main()
public static String
getString() throws
IOException
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String s = br.readLine();
return s;
}
} //end class Brackets
>

