乙個棧依次壓入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...