基於連結串列的棧實現
阿新 • • 發佈:2018-12-27
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(); } }
測試結果: