package BinarySearchTree;
/**
* Stiva ce contine Lista inlantuta
* @author Dan
*
*/
public class Stack
{
private LinkedListStack listObj;
public Stack()
{
listObj = new LinkedListStack();
}
public void push(Node num)
{
listObj.insert(num);
}
public Node pop()
{
return listObj.delete();
}
public boolean isEmpty()
{
return listObj.isEmpty();
}
}
/**
* Node de stiva cotine referinta la urmatorul
* @author Dan
*
*/
class StackNode
{
public Node item;
public StackNode next;
public StackNode(Node val)
{
item = val;
}
}
/**
* Lista inlantuita
* @author Dan
*
*/
class LinkedListStack
{
private StackNode first;
public LinkedListStack()
{
first = null;
}
public boolean isEmpty()
{
return (first==null);
}
public void insert(Node key)//inserts at beginning of list
{
StackNode newLLNode = new StackNode(key);
newLLNode.next = first;
first = newLLNode;
}
public Node delete()//deletes at beginning of list
{
StackNode temp = first;
first = first.next;
return temp.item;
}
}