(用来做笔记,欢迎交流讨论!)
程序包含以下几个方法:
1. public boolean isEmpty() //判栈空
2. public void push(T data) //进栈
3. public void pop() //出栈
4. public T getTop() //读栈顶元素
贴上代码:
package com.fei.example.lib;
public class LinkStack<T> {
private class Node {
private T data;
private Node next;
public Node(T data) {
this.data = data;
}
}
private Node lhead;//该链栈不带头节点,lhead指向当前栈顶
public LinkStack() {
lhead = null;
}
//判栈空
public boolean isEmpty() {
return lhead == null;
}
//进栈
public void push(T data) {
Node node = new Node(data);
node.next = lhead;
lhead = node;
}
//出栈
public void pop() {
if (isEmpty()) {
System.out.println("栈为空");
return;
}
lhead = lhead.next;
}
//读栈顶元素
public T getTop() {
return lhead.data;
}
//测试数据
public static void main(String[] args) {
LinkStack<String> stack = new LinkStack<>();
stack.pop();
stack.push("00");
stack.push("11");
stack.push("22");
stack.push("33");
stack.push("44");
stack.pop();
System.out.println(stack.getTop());
}
}