面試題 利用乙個棧倒序另外乙個棧中的數

2022-03-06 16:29:23 字數 755 閱讀 5687

題目:有兩個相同的棧a和b,在棧a中存放著從大到小的數:1,2,3,4,5,棧頂為最小數1,另外乙個棧b為空的。現在要求不使用其他的資料結構,將棧a中的數字順序倒過來,使其棧頂的數為最大值5。
解題思路:

這道題目有乙個非常直觀的思路。首先棧a中存放著1,2,3,4,5這樣5個數字,棧頂元素為1,我們需要將其倒序為5,4,3,2,1。

我們首先需要將棧頂的最小值1取出來存放在臨時變數temp中,然後將剩下的四個數字2,3,4,5轉移到棧b中去,再將剛才存放在臨時變數中的1插入到棧a中,最後將棧b中的數字轉移回到棧a,此時棧a中有乙個書是排序好的,就是棧底的1。

重複上面的思路,這回我們取出棧頂的最小值2存放在臨時變數中,將其餘剩下的3,4,5轉移到棧b中,然後再將2插入棧a中。

**例項

view code

#include#include

#include

using

namespace

std;

template

void reverseorder(stack&s1,stack&s2)

//首元素存入s1

s1.push(temp);

++sortnum;

while(!s2.empty())

}cout

<

逆序棧輸出:

"<

while(!s1.empty())

}void

main()

利用乙個棧倒序另外乙個棧中的數

題目 有兩個相同的棧a和b,在棧a中存放著從大到小的數 1,2,3,4,5,棧頂為最小數1,另外乙個棧b為空的。現在要求不使用其他的資料結構,將棧a中的數字順序倒過來,使其棧頂的數為最大值5。include include include using namespace std template v...

用乙個棧實現另外乙個棧的排序

題目 乙個棧中的型別為整形,現在想將該棧從頂到底按從小到大的順序排序,只允許申請乙個棧 除此之外,可以申請新的變數,但是不能申請額外的資料結構,如何完成排序。思路 設計乙個cur變數,存放stack棧彈出的當前元素,和輔助棧help的棧頂元素進行比較,若大於輔助棧棧頂元素,則將輔助棧中元素一一彈出,...

乙個面試題

題目是 假設乙個 搜尋引擎收錄了2 24首歌曲,並記錄了可收聽這些歌曲的2 30條url,但每首歌的url不超過2 10個。系統會定期檢查這些url,如果乙個url不可用則不出現在搜尋結果中。現在歌曲名和url分別通過整型的song id和url id唯一確定。對該系統有如下需求 1 通過song ...