只使用遞迴實現棧的逆序操作

2022-08-11 11:09:11 字數 347 閱讀 4011

2017-06-23 20:36:02

解決該問題的核心其實是如果通過遞迴演算法來獲取棧底元素,也就是getlast函式的演算法。

getlast演算法實現:

首先獲得stack的top元素,如果當前棧為空,則直接返回結果;

如果當前棧不為空,則遞迴的求解棧的棧底元素,之後再把當前的pop出來的元素壓棧;

實現了getlast演算法後,就可以很方便解決這個問題,每次得到棧底元素,然後遞迴的進行逆序即可。

public void reversestack(stackstack) 

}private int getlast(stackstack)

}

用遞迴操作逆序棧 遞迴

乙個棧依次壓入1,2,3,4,5那麼從棧頂到棧底分別為5,4,3,2,1。將這個棧轉置後,從棧頂到棧底為1,2,3,4,5,也就是實現了棧中元素的逆序,請設計乙個演算法實現逆序棧的操作,但是只能用遞迴函式來實現,而不能用另外的資料結構。給定棧的大小n和乙個棧stack,請返回逆序後的棧。測試樣例 5...

演算法程式設計 遞迴實現棧的逆序

給定乙個棧,在不使用額外資料結構和逆序類庫的條件下實現棧內元素的逆序。例如入棧的順序為12345,逆序後對應的出棧的順序也是12345.c 原始碼 題目 給定乙個棧,使用遞迴方法將其逆序 include include using namespace std 核心演算法 遞迴本質上是乙個棧,其依次將...

用遞迴函式和棧操作逆序棧

乙個棧依次壓入1,2,3,4,5那麼從棧頂到棧底分別為5,4,3,2,1。將這個棧轉置後,從棧頂到棧底為1,2,3,4,5,也就是實現了棧中元素的逆序,請設計乙個演算法實現逆序棧的操作,但是只能用遞迴函式來實現,而不能用另外的資料結構。給定乙個棧stack以及棧的大小top,請返回逆序後的棧。測試樣...