建立节点类(Node.java) package com.yz.mystack; public class Node { Object data; Node next; public Node(Object data){ this.data=data; next=null; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } } 建立链表(Link.java) package com.yz.mystack; public class Link { Node head; public Link(){ head=new Node(null); } public void addNode(Node node){ Node p=head; node.setNext(p.getNext()); p.setNext(node); } public void delNode(){ if(!isEmploy()){ head.setNext(head.getNext().getNext()); } } public Node gettop(){ return head.getNext(); } public Boolean isEmploy(){ return head.getNext()==null; } public void display(){ Node p=head; while(true){ p=p.getNext(); if(p!=null){ System.out.println(p.getData()); }else{ break; } } } } 建立堆栈 package com.yz.mystack; public class Stack { Link link; public Stack(){ link=new Link(); } public void push(Object data){ link.addNode(new Node(data)); } public Object peek(){ return link.gettop().getData(); } public Object pop(){ Object data=peek(); link.delNode(); return data; } } 测试(Man.java) package com.yz.mystack; public class Man { public static void main(String[] args){ Stack stack=new Stack(); stack.push("aa"); stack.push("bb"); stack.push("cc"); System.out.println(stack.peek()); System.out.println(stack.peek()); System.out.println(stack.peek()); System.out.println(stack.pop()); System.out.println(stack.pop()); } }