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();
}
}
測試結果: