>本文演示了如何使用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
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); } }
时间和空间复杂性:
<code>Original Stack: [4, 2, 9, 7] Sorted Stack in Descending Order: [9, 7, 4, 2]</code>
时间复杂性:
以上是Java程序以降序对堆栈的元素进行排序的详细内容。更多信息请关注PHP中文网其他相关文章!