【題目】
乙個棧依次壓入 1、2、3、4、5,那麼從棧頂到棧底分別為 5、4、3、2、1。將這個棧轉置
後,從棧頂到棧底為 1、2、3、4、5,也就是實現棧中元素的逆序,但是只能用遞迴函式來實
現,不能用其他資料結構。
【解答】
本題考查棧的操作和遞迴函式的設計,我們需要設計出兩個遞迴函式
public
static
intgetandremovelastelement
(stack
stack)
else
}
如果從棧頂到棧底為3、2、1,這個函式的執行過程如下:
;//棧底元素
reverse
(stack)
;//遞迴
stack.
push
(i);
//所有遞迴之後依次執行
}如果從棧頂到棧底依次是3、2、1,reverse函式的具體過程如下:
getandremovelastelement()方法在圖中簡單表示為 get 方法,表示移除並返回當前棧底元素。
如何僅用遞迴函式和棧操作逆序乙個棧
題目 乙個棧依次壓入1,2,3,4,5那麼從棧頂到棧底分別為5,4,3,2,1。將這個棧轉置後,從棧頂到棧底為1,2,3,4,5,也就是實現棧中元素的逆序,但是只能用遞迴函式來實現,而不能用另外的資料結構。解答 本題考察棧的操作和遞迴函式的設計,我們需要設計出兩個遞迴函式。遞迴函式一 將棧stack...
如何僅用遞迴函式和棧操作逆序乙個棧
題目 乙個棧依次壓入1 2 3 4 5,那麼從棧頂到棧底分別為5 4 3 2 1,將這個棧轉置後,從棧頂到棧底為1 2 3 4 5,也就是實現棧中元素的逆序,但是只能用遞迴函式來實現,不能用其他資料結構。思路 具體實現如下reverse方法 getandremovelastelement方法在圖中簡...
如何僅用遞迴函式和棧操作逆序乙個棧
題目 乙個棧一次壓入1 2 3 4 5 那麼從棧頂到棧底分別為 5 4 3 2 1,將這個棧逆序,只能用遞迴,不能用其他資料結構。思路 先設計乙個遞迴函式得到棧底元素 再設計乙個遞迴函式,逆序乙個棧 實現 public class main 得到棧底元素 public static intgetan...