Evaluating Infix Expressions Using Generic Stacks
May 12, 2014
I am given the task to create a program that evaluates infix expressions using two generic stacks, one operator stack and one value stack.
This is my GenStack.java file:
import java.util.*;
public class GenStack<T>{//T is the type parameter
private Node top;//top of stack
public class Node {//defines each node of stack
T value;
Node next;
[Code] ....
I'm having trouble with the eval and apply methods. The eval method doesn't appear to pickup ')' characters, like it doesn't even see them.
View Replies
ADVERTISEMENT
Apr 7, 2014
So I am supposed to be changing infix notation to postfix notation using stacks. This is simply taking a string "3 + 5 * 6" (infix) and turning it into (3 5 6 * +" (postfix).
To do this, we are to scan the string from left to right and when we encounter a number, we just add it to the final string, but when we encounter an operand, we throw it on the stack. Then if the next operand has a higher input precedence than the stack precedence of the operator on the top of the stack, we add that operator to the stack too, otherwise we pop from the stack THEN add the new operator.
I am supposed to be utilizing a hash map but I don't see how you would go about doing this. We are supposed to store operators on the hash map but operators need their own character, input precedence, stack precedence, and rank. How do you use a hash map when you need to tie a character to 3 values instead of just 1? I just don't get it.
The following is our Operator class that we are to use. Another problem is this isn't really supposed to be modified, yet we were given two important variables (inputPrecedence and outputPrecedence) that we can't have nothing to be initialized to and no way of accessing? So that might be where a hash map comes in but I am not sure. I am not very sure on how they exactly work anyway...
public class Operator implements Comparable<Operator>
{
public char operator; // operator
privateint inputPrecedence; // input precedence of operator in the range [0, 5]
privateint stackPrecedence; // stack precedence of operator in the range [-1, 3]
[Code] ....
So my question mostly revolves around how I tie an Operator character to its required values, so I can use it in my code to test two operators precedence values.
My original thought was turn string into character array, but then I would need nested for/while loops to check if it is a number or letter, or if it is an operator and thus result in O(n^2) time
View Replies
View Related
Jul 23, 2014
1 import java.util.ArrayList;
2 import java.util.List;
3
4 public class MyList<E> {
5
6 public List<E> list;
7 public int length;
[code]...
I am trying to define a class MyList, which i just a wrapper around an ArrayList, no real purpose, just for the sake of learning Generics. Idea here is that I create a parameterized class, MyList<E>, which holds a parameterized instance var of type List<E>. I have an add method which adds an element of type E to the List<E>. If I create an instance of MyList, call it 'm', for some reason when I try to call a method on that instance the compiler complains that 'm' cannot be found.
View Replies
View Related
Feb 3, 2015
I am working on a program to evaluate an expression without brackets using stacks. I am getting the following error :
3+1*2+4
-2.0
Exception in thread "main" java.util.EmptyStackException
at java.util.Stack.peek(Stack.java:102)
at java.util.Stack.pop(Stack.java:84)
at assignment2.Evaluate.main(Evaluate.java:42)
I imported the Stack from java.util.Stack
package assignment2;
import java.util.Scanner;
import java.util.Stack;
public class Evaluate {
public static void main(String[] args) {
Stack<String> ops = new Stack<String>();
[Code] ....
What is causing this error? Does it look like the program should function as intended?
View Replies
View Related
Jan 14, 2015
I have to take a users input. The general gist of the problem is I want to convert a decimal number entered by the user inputs into it's binary equivalent....the conversion part I know how to do.
I'm stuck at the user input phase. If the user inputs a decimal number within the correct range (lets say between 0-5000 for this example) the conversion goes ahead as planned and the program outputs on the screen the binary equivalent.
If on the other hand the user inputs a number outside of this range ... OR a String OR and empty space, an error message is given and the user is asked to try again. I don't know how to handle it if the user enters the different types...int or String.
View Replies
View Related
Feb 25, 2014
Case study : infix to postfix conversion, i don't really know how i could make codes, I can understand what is the meaning of infix and postfix but when it comes of making codes i really have a hard time with it.
View Replies
View Related
Nov 24, 2014
I need to convert infix To Postfix but have a few errors.
Error msg:
PostFix:
Exception in thread "main" java.util.EmptyStackException
at java.util.Stack.peek(Unknown Source)
at java.util.Stack.pop(Unknown Source)
at assignment4.infixToPostfix.evaluatePostfix(infixTo Postfix.java:129)
at assignment4.infixToPostfix.main(infixToPostfix.jav a:19)
NB:
129 >>return (double) s1.pop(); AND 19>>>double ans = evaluatePostfix(postfixStr);
Deadline = less than 1 hour
View Replies
View Related
Jul 28, 2014
So my code works perfectly when I input (a+(c-d) and i get ab+cd- for postfix and *+ab-cd for prefix. However when I input a+b+c for infix i receive abc++ postfix and +a+bc prefix when its supposed to be ab+c+ postfix and ++a b c prefix. So my issue is that any infix input with parenthesis, it converts them correctly, however without parenthesis it does not convert correctly.
import java.util.*;
public class stack {
public static char[] convertToPostfix(char[] infixEx) {
Stack<Character> operatorStack = new Stack<Character>();
char[] postfix = new char[infixEx.length];
int index = 0;
[Code] .....
View Replies
View Related
Feb 7, 2014
I am having a problem with infix and prefix ... Here is the code
import java.util.StringTokenizer;
import static java.lang.Math.pow;
import java.util.Stack;
public class Calculator {
static int precedence(char op) {
switch(op) {
[Code] ....
it says in line 72
possible loss of precision
required: int
found: double
the pow only takes int values?not doubles?how do i fix it?
View Replies
View Related
Oct 16, 2014
So we have to ask the user to put in a string of letters, and bring those letters in as cars to where there is a storage area and an assembly area, and we have to sort them from there into the assembly area with the smallest (A) at the head. I think I set up my code pretty well, but when I run it, no matter what I put in it returns CBAo. Say I input KATE, it should return TKEA but instead CBAo or if I input JANICE it should return NJIECA but it just returns EDCBAo. Here's my code:
import java.util.Scanner;
import java.util.Stack;
public class carStacksDessart
{
public static void main(String[] args) {
Stack<Integer> storage = new Stack();
[Code] ....
View Replies
View Related
May 15, 2014
write a code using the stacks?i want the output to produce my name.
View Replies
View Related
Nov 16, 2014
I am having some trouble with this program. I am getting only one result to print when it should show all the solutions. Also the 1 solution I am getting is only printing 7 queens not 8.
import java.util.Stack;
public class Queen1 {
boolean conflict, complete = false;
public int solve(int n) {
//create a stack
//each element stores the position of the queen on a different row
Stack<Integer> s = new Stack<Integer> ();
[Code] ......
View Replies
View Related
Feb 5, 2014
I got to make a java code for my class. I must make a calculator using stacks. I have a code but i got some mistakes. Here is the code
Java Code:
package stackscalc;
import java.util.Scanner;
import java.util.Stack;
import java.util.EmptyStackException;
class Arithmetic {
int length;
Stack stk;
String exp,
[Code] .....
View Replies
View Related
Jun 5, 2012
Prompt user to enter a social security number in the format DDD-DD-DDDD, where D is a digit. Displays "Valid SSN" for a correct ssn, and "Invalid SSN" otherwise.I have it working I am just looking for other ways to solve this with an array maybe or something simpler. I have used if statements here:
public static boolean checkSSN(String social) {
boolean valid = false;
// 9 digits and 2 hyphens. First three characters, 5 and 6, and 8, 9,
// 10, 11 are digits
[code]...
View Replies
View Related
Feb 4, 2014
i got a problem with this program.I am supposed to make a calculator using stacks but it seems that i m stack. i can t get the right recognition
for () and {} []
its not necessary to use all these symbols.just a simple () will do .here s the program
package stackscalc;
import java.util.Scanner;
import java.util.Stack;
import java.util.EmptyStackException;
class Arithmetic
{
int length;
Stack stk;
String exp,
postfix;
[code]....
View Replies
View Related
May 17, 2014
public class ThreeStackArray
{
static int row = 10;
static int col = 2;
int[][] stack = new int[row][col];
//place numbers into the first row of array
public void push(int num)
[Code] .....
I found this program idea online. Make a array with three stacks. Either I jump out of bounds if I use "continue" instead of "break" in my loop in the push method. If I use break the output looks like:
12900
0000
0000
0000
0000
if I use continue the output looks like:
An error has occured java.lang.ArrayIndexOutOfBoundsException: 2
1212
1212
1212
1212
1210
View Replies
View Related
Nov 12, 2013
In jsp when using EL the parenthesis are not allowed for grouping of expressions. I mean
${(2+3)-1}
is not allowed so if i have to group expressions in EL how do i achieve it?
I wanted to do the following in EL
${(a==b && b==c) || (v==r && r==d)}
so how do i achieve this?
View Replies
View Related
Jul 21, 2014
I have a program in which I take some characters input from User
using
String inputString=in.next();
How can i restrict user that input should be only char 0 or 1?
If the answer is regular expressions then What Should be Its Regular expressions?
View Replies
View Related
May 11, 2014
I am trying to write a program that checks for parentheses matching using stacks.This is my ArrayStack class.
public class ArrayStack{
private final int DEFAULT_SIZE=10;
public int tos;
Object[] array;
public ArrayStack(){
array=new Object[DEFAULT_SIZE];
[Code] ....
But the problem is when I compile matching I get an error as unreported exception EmptyStackException.must be caught or declared to be thrown. I think the problem is with exceptions which I don't have a good knowledge of.
View Replies
View Related
Oct 23, 2014
I'm supposed to use stacks (implemented with an array) to check to see if a string is a palindrome. I've finished all my classes and methods, but I'm getting an ArrayIndexOutOfBoundsException when I try to run my demo program.Here are my classes:
public interface Stack {
// Creates an empty stack
public void initializeStack()
// Returns true if the stack is empty, returns false otherwise
public boolean isEmpty();
// The stack can never be full, so always return false
public boolean isFullStack();
[code]...
View Replies
View Related
Feb 21, 2014
So I have 3 classes in this project, and When it compiles, I get a null pointer.
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class Project2 {
[Code] .....
View Replies
View Related
Apr 20, 2015
I'm getting errors on all the exceptions called EmptyCollectionException. I think this is because the import statement has a error on it but I'm not sure. I'm suppose to add methods for peek, isEmpty, size, and toString methods. I only started isEmpty also am wondering what I have to change from peek method if anything at all.
import jsjf.exceptions.*;//Error on jsjf
import java.util.Arrays;
public class ArrayStack<T> implements StackADT <T> { //Error on StackADT
private final static int DEFAULT_CAPACITY = 100;
private int top;
private T[] stack;
[Code] .....
View Replies
View Related
Jan 11, 2014
Following are the expressions? I tried running them and those are the answers I got. However, I cannot figure out the working.
//c = ++a + a++ - --a - a-- + a * + a/a ; //ans is 10
//c= a* + a/a ; ans. is 1.
//c= a * +3 ; //ans is 30
//c =5+ a* +2; //25
// c= 5+ a* + a/a ; //ans. is 15.
View Replies
View Related
Nov 23, 2014
I am doing a calculator using stacks but when i try to calculate I getting the wrong data example stack contains 8 and user enter -3 stack should change to 5.
package comp10152.lab5;
import java.util.Scanner;
import java.util.Stack;
[Code].....
View Replies
View Related
Apr 1, 2014
I have the following Output
_G7120+1#=K,
_G7132+_G7133#=_G7120,
_G7144+_G7145#=_G7132,
_G7156+_G7157#=_G7144,
_G7168*Z#=_G7156,
_G7180*Z#=_G7168,
_G7192*Z#=_G7180,
_G7204*Y#=_G7192,
_G7192, in 10..15 / 16
X*Y#=_G7204,
X+Y#=_G7133,
_G7145+X#=Z1_a,
Y in 1..15,
Z/Y#=_G7157,
__X in 1..15 / 17 / 20.
From this, I need to extract the statements of variables that do not start with _G . I mean, I need to extract, Y in 1..15 , __X in 1..15 /17/20 but not _G7145 in 10..15 / 16.
I am using regular Expression for this as [^_G]^[A-Za-z0-9_]+ in|ins [-9 -9]..[-9-9] [/[-9-9]..[-9-9]]+
View Replies
View Related
Feb 22, 2015
I am reading a book on Java and we are at a point where it is explaining type conversion in expressions. One of the examples shared has a byte being multiplied by itself and then assigned back to itself ...
byte b;
b = 10;
b = (byte) (b * b);
this is all good and dandy (that is, the code functions properly).
However, I am confused why I need to typecast here! Without the cast, the compiler screams, "Type mismatch: cannot convert from int to byte." Yet I haven't converted to an int?? It appears there was an implicit conversion.
The final value, 100, is clearly within byte's range of -127 to +127 isn't it? So I am lost as to what is the issue here.
View Replies
View Related