用遞迴函式和棧逆序乙個棧

2021-10-08 09:43:52 字數 739 閱讀 8988

乙個棧依次壓入1,2,3,4,5,那麼從棧頂到棧底分別為5,4,3,2,1。將這個棧轉置後,從棧頂到棧底為1,2,3,4,5,也就是實現棧中元素的逆序,但是只能用遞迴函式來實現,不能用其他資料結構。

輸入描述:

輸入資料第一行乙個整數n為棧中元素的個數。

接下來一行n個整數x

ix_i

xi​表示從棧頂依次到棧底的每個元素。

輸出描述:

輸出一行表示棧中元素逆序後的每個元素

示例1輸入

5

1 2 3 4 5

輸出
5 4 3 2 1
題解:

這題比較煩人,如果只是為了過題的話,直接將輸入逆序輸出就行,但是題目要求只能遞迴,那行吧,開整。。。

我們需要兩個遞迴函式,乙個是獲取棧底元素並刪除的函式,乙個是逆序函式,也就是題目要求實現的函式。

具體的看**吧,倒來倒去的。。。

**:

#include

using

namespace std;

const

int n =

100010

;int stk[n]

;int top;

intgetandremovelastelement()

}void

reversestack()

intmain

(void

)

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

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

棧與佇列3 用遞迴和棧操作逆序乙個棧

乙個棧依次壓入1,2,3 此時棧頂到棧底元素分別為 3,2,1 將棧反轉,使得棧頂到棧底元素為 1,2,3,僅限遞迴函式,並且不能使用其他資料結構 使用兩個函式reverse和getandremovelastelement函式 詳細介紹reverse,reverse負責將棧逆序,通過getandre...

如何僅用遞迴函式和棧操作逆序乙個棧

題目 乙個棧依次壓入1,2,3,4,5那麼從棧頂到棧底分別為5,4,3,2,1。將這個棧轉置後,從棧頂到棧底為1,2,3,4,5,也就是實現棧中元素的逆序,但是只能用遞迴函式來實現,而不能用另外的資料結構。解答 本題考察棧的操作和遞迴函式的設計,我們需要設計出兩個遞迴函式。遞迴函式一 將棧stack...