Java開發中巧妙使用鏈表來實現模擬棧的入棧出棧操作

Java開發中巧妙使用鏈表來實現模擬棧的入棧出棧操作

  在Java開發中經常會碰到需要你用Java鏈表來實現入棧出棧的模擬操作,下文就這個操作做了一個詳細的描述。
  棧:後進先出;最後一個放入堆棧中的物體總是被最先拿出來。
  使用鏈表來模擬棧的入棧出棧操作。

1.節點類代碼

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.節點的入棧出棧方法代碼

public class Link<T> {//鏈表實現棧,先進後出
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(){//打印節點
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();//打印棧內元素
ll.pop();//彈出棧頂元素
ll.show();
ll.pop();
ll.show();
}
}

4.測試結果
Java開發中巧妙使用鏈表來實現模擬棧的入棧出棧操作

文章來自:https://www.itjmd.com/news/show-5371.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章