用遞迴反轉棧(Java實現

2021-08-11 04:41:08 字數 671 閱讀 8188

用遞迴來反轉棧

最開始的想法是乙個遞迴函式解決,然後仔細想想不行

解法:乙個遞迴函式返回棧的棧底元素並將之移除

另乙個遞迴函式進行遞迴壓入得到的資料

**:

/**

* by returnzhang

* 遞迴翻轉棧

*/public class reverse

//壓入函式

public void

push(integer num)

public integer pop()

/*** 得到棧底值並移除**

@return

*/private integer getlastvalue()else

}//通過遞迴重新把棧底值反轉壓入

public void

reversestack()

int last=getlastvalue();

//通過遞迴函式獲取棧底值

reversestack();

//遞迴操作

stack.push(last);

//一層一層壓入值

} public boolean

isempty()

}

java用陣列實現棧

棧是一種先進後出的資料結果 只能在一端 稱為棧頂 top 對資料項進行插入和刪除。stacktest package ch04 public class stacktest system.out.println isfull stack.isfull while stack.isempty clas...

用java陣列實現棧

棧是一種常見的資料結構。如果用一句話來概括棧的特點,估計大部分同學都能脫口而出 後進先出,即先進來的元素儲存在棧的最底部,新來的元素則在棧頂堆積,直到棧滿為止 而取元素的時候,只能從棧頂取,直到棧空為止。整個過程,與摞書的過程很類似 放書的時候都是摞在最上面,取書的時候也是從最上面開始取。要想取出下...

java用陣列實現棧

public class stack 也可以自己設定長度,即容量 public stack int len 返回元素個數 public int size 返回陣列長度,即容量 public int capacity 實現動態的陣列 public void ensurecapacity 入棧 publ...