
Hi here the question the interviewer asked me-
package jp.co.worksap.intern;
/**
*The Stack class represents a last-in-first-out(LIFO) stack of objects
*And this class can look at the object which has the highest (lowest or so) value.
*So every object onto the stack must be comparable to each other.
*@param<E.
*/
public interface ISortableStack<E extends Comparable<E>>{
/**
*Pushes an item onto the top of this stack.
*If the Element e is null, throws NullPointerException.
*
*
@param e
*@throws NullPointerException
*/
public void push(E e);
/**
*Removes the object at the top of this stack and returns that object as the value of this function.
*If the stack is empty, throws EmptyStackException.
*@return
*@throws EmptyStackException
*/
public E pop();
/**
*Locks at the object which has the middle value among the all objects without removing it from the stack.
*Returns the object which has the value of following order <code>(size()/2)+1</code>
*<pre>
*e.g.
*When the stack has the following values (1, 2, 5, 4, 2, 6)
*this method returns 4 and doesn't remove the object.
*</pre>
*
*If the stack is empty, throws EmptyStackException.
*@return
*@throws EmptyStackException
*/
public E peekMidElement();
/**
*Looks at the object which has the highest value among the all objects without removing it from the stack.
*Returns the object which has the value of the following order <code>size()</code>
*<pre>
*e.g.
*When the stack has the following values (1,2,5,4,2,6)
*this method returns 6 and doesn't remove that object
*</pre>
*
*If the stack is empty, throws EmptyStackException.
*@return
*@throws EmptyStackException
*/
public E peekHighestElement();
/**
*Looks at the object which has the lowest value among the all objects without removing it from the stack.
*Returns the object which has the value of the following order <code>1</code>
*<pre>
*e.g.
*When the stack has the following values (1,2,5,4,2,6)
*this method returns 1 and doesn't remove the object.
*</pre>
*
*If the stack is empty, throws EmptyStackException.
*@return
*@throws EmptyStackException
*/
public E peekLowestElement();
/**
*Returns the number of objects in this stack.
*@return
*/
public int size();
}
Now i have implemented the Interface in Eclipse as per the statement shown below code
public class MyStackClass<E extends Comparable<E>> implements ISortableStack<E>{
private int A;
private Node first;
private class Node{
private E e;
private Node next;
}
public MyStackClass() {
first = null;
A = 0;
}
private ArrayList<E> listOne = new ArrayList<E>();
public void push(E e) {
// TODO Auto-generated method stub
Node oldfirst = first;
first = new Node();
first.e = e;
first.next = oldfirst;
A++;
}
@Override
public E pop() {
// TODO Auto-generated method stub
if (isEmpty()) throw new RuntimeException("Stack underflow");
E e = first.e; // save e to return
first = first.next; // delete first node
A--;
return e; // return the saved e
}
@Override
public E peekMidElement() {
// TODO Auto-generated method stub
if(listOne.size() <= 0){
throw new EmptyStackException();
}
return listOne.get(listOne.size()/2);
}
@Override
public E peekHighestElement() {
// TODO Auto-generated method stub
if(listOne.size() <= 0){
throw new EmptyStackException();
}
return listOne.get(listOne.size() - 1);
}
@Override
public E peekLowestElement() {
// TODO Auto-generated method stub
if(listOne.size() <= 0){
throw new EmptyStackException();
}
return listOne.get(0);
}
@Override
public int size() {
// TODO Auto-generated method stub
return A;
}
public boolean isEmpty() {
return first == null;
}
}
Now when i call main method the ISortableStack array list is unable to instantiate shown below.It throws error at ISortableStack as:Cannot make a reference to a non static type . and is not able to instatiate the ISORTABLESTACK.
import java.io.*;
public class DisplayStack {
E ch;
public static void main(String[] args) {
// TODO Auto-generated method stub
ISortableStack<Character> s = new ISortableStack<Character>(); //Cannot instantiate ISORTABLESTACK
char character;
DisplayStack demo = new DisplayStack();
while ((character = (char)System.in.read())!= '\n') //Cannot make reference to a non static type
if (!s.full())
s.push(character);
while (!s.empty())
System.out.print(s.pop());
System.out.println();
}
}
Please help me to get this code work.

Please help me in this one...
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.