>本文演示瞭如何使用Java以降序排序堆棧的元素。 遵循最後一項(LIFO)原理的堆棧是基本數據結構。 想想瀏覽器的歷史;最近訪問的網站首先訪問。 我們將探索針對此分類任務的遞歸Java解決方案。
>問題:
給出了一個未分佈的整數堆棧,以降序排列其元素(頂部最大的元素)。
>輸入示例:
<code>Original Stack: [4, 2, 9, 7]</code>
>輸出示例:
<code>Sorted Stack in Descending Order: [9, 7, 4, 2]</code>
遞歸java解決方案:
>方法:sortStack(Stack<integer> stack)</integer>
sortStack
此方法處理暫時刪除元素的插入堆棧中的插入,以保持降序。 它檢查堆棧是空的還是要插入的元素大於當前頂部元素。如果任何一個條件都是正確的,則將元素推到堆棧上。否則,暫時刪除了頂部元素,被遞歸地稱為,然後將暫時刪除的元素推回。
sortedInsert(Stack<integer> stack, int element)</integer>
sortedInsert
>
對其進行排序,然後打印出排序的堆棧。 main
這是完整的Java代碼:sortStack
<code class="language-java">import java.util.Stack; public class StackSorter { public static void sortStack(Stack<integer> stack) { if (!stack.isEmpty()) { int top = stack.pop(); sortStack(stack); sortedInsert(stack, top); } } public static void sortedInsert(Stack<integer> stack, int element) { if (stack.isEmpty() || element > stack.peek()) { stack.push(element); return; } int temp = stack.pop(); sortedInsert(stack, element); stack.push(temp); } public static void main(String[] args) { Stack<integer> stack = new Stack<>(); stack.push(4); stack.push(2); stack.push(9); stack.push(7); System.out.println("Original Stack: " + stack); sortStack(stack); System.out.println("Sorted Stack in Descending Order: " + stack); } }</integer></integer></integer></code>
時間和空間複雜性:
<code>Original Stack: [4, 2, 9, 7] Sorted Stack in Descending Order: [9, 7, 4, 2]</code>
時間複雜性:
以上是Java程序以降序對堆棧的元素進行排序的詳細內容。更多資訊請關注PHP中文網其他相關文章!