演算法題目刷題 第三題,反轉棧只用遞迴函式

2021-08-31 13:24:00 字數 469 閱讀 5060

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

思路:這個題目用了遞迴函式的思想,本來遞迴函式底層就是棧結構實現的。用圖私下做出函式遞迴呼叫的流程圖一幕了然。這個方法get,自己去想的話著實很難。

//3,棧的反轉

int getandremovelastelement(stack&stack) //獲得棧底元素,其他元素的位置不動

else

} void reverse(stack&stack)

int i = getandremovelastelement(stack);

reverse(stack);

stack.push(i);

}

刷題計畫 棧演算法 三

題目 根據逆波蘭表示法,求表示式的值。有效的運算子包括 每個運算物件可以是整數,也可以是另乙個逆波蘭表示式。說明 示例 1 輸入 2 1 3 輸出 9 解釋 2 1 3 9 示例 2 輸入 4 13 5 輸出 6解釋 4 13 5 6示例 3 輸入 10 6 9 3 11 17 5 輸出 22解釋 ...

刷題第三天

今天被p老師看見刷b站了,下午想到了乙個還不錯的idea,做做調研看看會不會被reject掉,今天真的好懶惰,今天可能不做太多太難的題了,明天還要起大早上英語課,我真的是好煩喲,我真的不想做題啊啊啊啊 這道題沒啥可說的,各種方法都能解決,但是我彷彿記得我多年前面測試的時候被問過一次,反轉單鏈表,反正...

學習演算法第三題

問題 判斷整數是否是回文。ps 回文 把相同的詞彙或句子 在下文中調換位置或顛倒過來,產生首尾回環的情趣,叫做回文,也叫回環。要求 不能將整數轉化成字串!示例1 輸入 121 輸出 true 說明 從左到右,顯示121 從右到左,顯示121 因此為回文。示例2 輸入 121 輸出 false 說明 ...