排序 排序乙個棧(通過乙個輔助棧)

2022-07-26 10:42:22 字數 377 閱讀 6853

問題描述:

現有乙個棧,包含一些整型的元素,現需要將此棧從頂到底按從大到小的順序排列(只允許申請乙個新棧)。

演算法實現:

public void sortstackbystack(stackstack) 

help.push(cur);

}while (!help.isempty())

}

演算法解析:

1.申請乙個新棧,通過這兩個棧空間和棧的特性,將元素通過一定的比較規則和在兩個棧中的進出棧操作,實現乙個有序棧;

2.操作過程中,主要涉及到棧是否為空的判斷和輔助棧中元素和待排序棧每乙個將出棧元素的比較;

3.用紙筆畫出兩個棧,或者在大腦中構想兩個棧,結合**模擬比較和不斷的進出棧操作。

乙個棧實現另乙個棧排序

乙個棧中元素為整形,現在想將這個棧從棧頂到棧底自大到小排序,允許申請乙個棧。除此之外無其他資料結構。允許申請新變數,如何完成排序?1.設定需要排序的棧為stack,輔助的棧為help,從stack彈出的當前值為curt 2.將stack依次彈出,判斷彈出的值curt與help的棧頂元素大小關係,如果...

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

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

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

題面 用乙個棧實現另外乙個棧的頂到底降序排序 要求 不能使用額外的資料結構,但可以使用新的變數。思路 給定棧s,輔助棧help 1.遍歷給定棧 出棧 棧頂出棧cur,與help棧頂比較,如果大於輔助棧頂元素值,那麼輔助棧棧頂元素出棧至s棧,直到help棧頂元素值 cur 2.help壓入cur 2....