JAVA Write a Program than using one stack check if one expre
JAVA
Write a Program than using one stack check if one
expression is parenthesis well balanced.
2. Complete this program
public class ex2
{
public static void Print(Stack<Integer> st)
{
// Complete
}
public static void main(String[] args)
{
Stack<Integer> mySt = new LinkedStack();
for(int i=0;i<10;++i) mySt.Push(i);
Print(mySt);
}
}
Solution
I guess you are looking for Expression bancer but Stack of integers can not be used. It should be Stack of Characters.
Sample code:
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
String ex=\"{[12}\";
boolean flag=true;
Stack<Character> st = new Stack<Character>();
for(int i = 0; i < ex.length(); i++) {
char c = ex.charAt(i);
if(c == \'[\' || c == \'(\' || c == \'{\' ) {
st.push(c);
}else if(c == \']\') {
if(st.isEmpty() || st.pop() != \'[\'){flag=false; break;}
}else if(c == \')\') {
if(st.isEmpty() || st.pop() != \'(\'){flag=false; break;}
}else if(c == \'}\') {
if(st.isEmpty() || st.pop() != \'{\'){flag=false; break;}
}
}
if(!flag || !st.isEmpty()){
System.out.println(\"Expression is not balanced.\");
}else{
System.out.println(\"Expression is balanced.\");
}
}
This code may help

