棧和佇列 用乙個棧實現另乙個棧的排序

2021-08-08 00:11:54 字數 510 閱讀 4471

【題目】

乙個棧元素的型別為整型,現在想將該棧從頂到底按從大到小的順序排序,只許申請乙個棧,可以申請新的變數,但不能申請額

外的資料結構,如何完成排序?

【解答】

將要排序的棧記為stack,申請的輔助棧記為help,在stack上執行pop操作,彈出的元素記為cur

1.如果cur小於或者等於help棧頂元素,則將cur直接壓入help

2.如果cur大於help棧頂元素,則將help的元素逐一彈出,逐一壓入stack,直到cur小於或者等於help棧頂元素,再將cur壓入help。

一直執行以上操作,直到stack棧中的全部元素都壓入到help中,最後將help中的所有元素逐一壓入stack。

public class sortstack 

help.push(cur);

} while(!help.isempty())

stack.push(help.pop());

}}

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

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

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

背景 乙個棧的排序其實是很好做的,但是現在要你將該棧從頂到底從大到小排序,只允許申請乙個輔助棧,可以申請有限個變數,除此之外不能再申請額外的資料結構,你該怎麼搞?演算法 設要排序的棧為st,輔助棧為help,從st彈出的元素記為cur,help的棧頂元素記為top。一直執行上述操作,直到st為空結束...

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

題目 乙個棧中元素型別為整型,想將該棧從頂到底按從大到小排序,只允許申請乙個棧。除此之外,可以申請新變數,但不能申請額外的資料結構。舉例 public static void main string args 用乙個棧實現另乙個棧的排序 public static void sortstack st...