Java程式:按升序排列給定棧的元素
在本教程中,您將學習如何使用Java按升序排列棧的元素。棧是計算機科學中的基本資料結構,遵循後進先出(LIFO)原則。
我們將分解一個簡單而有效的方法,該方法使用一個額外的臨時棧,提供詳細的分步說明,幷包含完整的程式碼示例。本教程非常適合希望增強對棧操作的理解並提高Java程式設計技能的人員。
使用Java按升序排列棧
棧就像一堆書,你只能取走最上面的那一本。也就是說,棧以後進先出的(LIFO)方式儲存專案。最後新增的專案是第一個被移除的專案。以下是使用輔助棧對棧的元素進行排序的步驟:
步驟1:建立一個臨時棧 - 我們將在此臨時儲存排序後的元素。
步驟2:排序元素 - 要對棧的元素進行排序,請按照以下步驟操作:
- 當原始棧包含專案時。
- 從原始棧中取出最頂部的專案。
- 如果臨時棧不為空,並且其頂部專案大於您剛剛取出的專案,則將臨時棧的專案移回原始棧,直到您可以將您的專案放在頂部。
- 將您取出的專案放入臨時棧。
步驟3:移回原始棧 - 一旦所有專案都在臨時棧中,將它們移回原始棧。現在,它們已排序!
示例
以下是一個示例:
import java.util.Stack;
public class StackSorter {
public static void sortStack(Stack<Integer> stack) {
Stack<Integer> tempStack = new Stack<>();
while (!stack.isEmpty()) {
int temp = stack.pop();
while (!tempStack.isEmpty() && tempStack.peek() > temp) {
stack.push(tempStack.pop());
}
tempStack.push(temp);
}
while (!tempStack.isEmpty()) {
stack.push(tempStack.pop());
}
}
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
stack.push(34);
stack.push(3);
stack.push(31);
stack.push(98);
stack.push(92);
stack.push(23);
System.out.println("Original stack: " + stack);
sortStack(stack);
System.out.println("Sorted stack: " + stack);
}
}
結論
使用另一個棧,您可以輕鬆地按升序排列棧的元素,而無需複雜的演算法。
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP