栈结构模型
/**
* 用不带头结点的单链表构造的链式栈
* LinkedStack
* 创建人:guxiaohao
* 时间:2017年10月29日-上午9:53:56
* @version 1.0.0
*
*/
public class LinkedStack {
private ElementNode top; // 栈顶指针
class ElementNode {
public Object data;
public ElementNode next;
}
// 初始化栈
void initStack() {
top = null;
}
// 进栈(压栈、入栈)
public void push(Object obj) {
ElementNode en = new ElementNode();
en.data = obj;
en.next = top;
top = en;
}
// 出栈一个元素
public Object pop() {
Object obj = null;
if (top == null) {
System.out.println("栈中没有元素!");
} else {
obj = top.data;
top = top.next;
}
return obj;
}
void print() {
ElementNode p = top;
while (p != null) {
System.out.print(p.data + "\t");
p = p.next;
}
System.out.println();
}
// 判断栈是否为空
public boolean isEmpty() {
return top == null;
}
// 获取栈顶元素
public Object getTop() {
return top.data;
}
}