題目:有兩個相同的棧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 ...