1.创建链节点类link
只有一种数据int类型,和对下一个链节点的引用next
public class Link {
public int a;
public Link next;
public Link(int m){
a=m;
}
public void displayLink(){
System.out.print(a +" ");
}
}
2.创建链表类LinkList
public class LinkList {
private Link first;
public void LinkList(){
first=null;
}
public boolean isEmpty(){
return (first==null);
}
public void insertFirst(int a){ //在链表头部插入新元素
Link newLink =new Link(a);
newLink.next=first;
first=newLink;
}
public int deleteFirst(){ //删除链表第一个元素
Link link=first;
first=first.next;
return link.a;
}
public void displayLinklist(){ //展示链表
Link current=first;
System.out.println("链表数据为:");
while (current!=null){
current.displayLink();
current=current.next;
}
System.out.println(" ");
}
}
3.创建LinkStack类对LinkList中的方法进行封装
private LinkList linkList;
public LinkStack(){
linkList=new LinkList();
}
public void push (int a){ //进栈
linkList.insertFirst(a);
}
public int pop(){ //出栈
return linkList.deleteFirst();
}
public boolean isEmpty(){
return (linkList.isEmpty());
}
public void display(){
System.out.print("栈顶--->>栈底的");
linkList.displayLinklist();
}
}
4测试
public class LinkStackApp {
public static void main(String args[]){
LinkStack linkStack=new LinkStack();
linkStack.push(3);
linkStack.push(4);
linkStack.push(5);
linkStack.push(8);
linkStack.push(1);
linkStack.display();
linkStack.pop();
linkStack.pop();
linkStack.display();
}
}
测试结果: