用遞迴操作逆序棧 遞迴

2021-08-07 13:20:52 字數 590 閱讀 8052

乙個棧依次壓入1,2,3,4,5那麼從棧頂到棧底分別為5,4,3,2,1。

將這個棧轉置後,從棧頂到棧底為1,2,3,4,5,也就是實現了棧中元素的逆序,請設計乙個演算法實現逆序棧的操作,

但是只能用遞迴函式來實現,而不能用另外的資料結構。

給定棧的大小n和乙個棧stack,請返回逆序後的棧。

測試樣例:

5 1 2 3 4 5

返回:

5 4 3 2 1

public

class

main

}//第一步,將最上面的數出棧儲存,然後將下面的棧逆序(這裡用到遞迴);

//第二步,將原先最上面的數插到最底層

public

static

int reverse(int a,int n)

int tmp=a[0];

for(int i=0;i1;i++)

a[n-1]=tmp;//棧頂存放最小元素

a=reverse(a,--n);

return a;

}}

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

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

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

乙個棧依次壓入1,2,3,4,5,那麼從棧頂到棧底分別為5,4,3,2,1。將這個棧轉置後,從棧頂到棧底為1,2,3,4,5,也就是實現棧中元素的逆序,但是只能用遞迴函式來實現,不能用其他資料結構。輸入描述 輸入資料第一行乙個整數n為棧中元素的個數。接下來一行n個整數x ix i xi 表示從棧頂依...

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

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