溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java使用鏈表來模擬棧的入棧出棧操作實例代碼

發(fā)布時間:2020-09-22 10:03:25 來源:腳本之家 閱讀:163 作者:進擊的找塵緣 欄目:編程語言

棧:后進先出;最后一個放入堆棧中的物體總是被最先拿出來。

使用鏈表來模擬棧的入棧出棧操作。

1.節(jié)點類代碼

public class Entry<T> {
private T value;
private Entry<T> next;
public Entry() {
  this(null);
}
public Entry(T value) {
  this.value=value;
  this.next=null;
}
  
public void setValue(T value) {
  this.value=value;
}

public void setNext(Entry<T> next) {
  this.next=next;
}

public T getValue() {
  return value;
}

public Entry<T> getNext(){
  return next;
}

}

2.節(jié)點的入棧出棧方法代碼

public class Link<T> {//鏈表實現(xiàn)棧,先進后出
private Entry<T> headEntry;
private int size=0;
public Link() {
  headEntry =new Entry<>();
}
public void pop() {//出棧
  if(headEntry.getNext()!=null) {
  headEntry.getNext().setValue(null);
  headEntry.setNext(headEntry.getNext().getNext());
  size--;
  }else {
    return;
  }
  
}
public void push(T value) {//入棧
  Entry<T> newEntry=new Entry<>(value);
  if(headEntry.getNext()!=null) {
    newEntry.setNext(headEntry.getNext());
    
  }
    headEntry.setNext(newEntry);
    size++;
  
}


public void show(){//打印節(jié)點
  if(headEntry.getNext()==null) {
    return;
  }
  for(Entry<T> p = headEntry.getNext();p!=null;p=p.getNext()){
    System.out.print(p.getValue()+" ");
  }
  System.out.println();
}
}

3.測試類代碼

public class Main {
public static void main(String args[]) {
  Link<String> ll=new Link<>();
  ll.push("1");//入棧
  ll.push("2");
  ll.push("3");
  ll.push("4");
  ll.push("5");
  ll.push("6");
  ll.push("7");
  ll.push("8");
  ll.show();//打印棧內(nèi)元素
  ll.pop();//彈出棧頂元素
  ll.show();
  ll.pop();
  ll.show();
}
}

4.測試結(jié)果

java使用鏈表來模擬棧的入棧出棧操作實例代碼

以上所述是小編給大家介紹的java 使用鏈表來模擬棧的入棧出棧操作詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對億速云網(wǎng)站的支持!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI