1.链表实现栈
public class LinkStack {
private Node head;
private int count;
private class Node{
private Object data;
private Node next;
public Node(Object data) {
this.data = data;
}
}
public void push(Object data) {
Node node = new Node(data);
if(count==0) {
head = node;
}else {
node.next = head;
head = node;
}
count++;
}
public Object pop() {
Object data = null;
if(count==0) {
System.out.println("stack is null");
}else {
data = head.data;
head = head.next;
count--;
}
return data;
}
public void display() {
if(count==0) {
System.out.println("[]");
}else if(head.next==null) {
System.out.println("["+head.data+"]");
}else {
int tempSize = count;
Node node = head;
while(tempSize>0) {
if(node==head) {
System.out.print("["+node.data+"->");
}else if(node.next==null) {
System.out.print(node.data+"]");
}else {
System.out.print(node.data+"->");
}
node = node.next;
tempSize--;
}
System.out.println();
}
}
}
2.使用
public class TestLinkStack {
public static void main(String[] args) {
LinkStack lstack = new LinkStack();
lstack.display();
lstack.push("111");
lstack.push("222");
lstack.push("333");
lstack.display();
System.out.println("------------------------");
System.out.println(lstack.pop());
System.out.println(lstack.pop());
System.out.println(lstack.pop());
System.out.println(lstack.pop());
}
}