Question
Please document code.
1) A class:
public class Stack<T>
has only one field,
private LNode<T> stackPointer;
uses class LNode<T> for nodes and implements a stack as a linked list.
a) Write a push method:
public void push(T t)
b) Write a pop method:
public T pop()
This method will return null if the stack is empty.
The following class is used in problem 1:
Public class LNode<T>
{
private T data;
private LNode<T> next = null;
public LNode(T data)
{
this.data = data;
}// end of method
// public get and set methods are here
// for data and next
}// end of class
Explanation / Answer
// LNode.java public class LNode { private T data; private LNode next = null; public LNode(T data) { this.data = data; }// end of method public T getData() { return data; } public LNode getNext() { return next; } public void setNext(LNode nxt) { next = nxt; } }// end of class //Stack.java public class Stack { private LNode stackPointer ; public Stack() { stackPointer = null; } public void push(T t) { LNode newNode = new LNode(t); if (stackPointer != null) { newNode.setNext(stackPointer); } stackPointer = newNode; } public T pop() { if(isEmpty()) { return null; } LNode popNode = null; if (stackPointer != null) { popNode = stackPointer; stackPointer = stackPointer.getNext(); } return popNode.getData(); } public boolean isEmpty() { return (stackPointer == null); } public void printStack() { System.out.print("stack -> "); LNode curr = stackPointer; while (true) { if (curr == null) { System.out.println("null"); break; } else { System.out.print(curr.getData() + " -> "); curr = curr.getNext(); } } } }