- スタックをトラバースする方法: スタックをトラバースするには、以下のいくつかの方法があります。
方法1: スタックをポップしながらトラバースする方法 スタックの要素をすべて取り出しながらトラバースする方法です。pop() メソッドを使用してスタックから要素を取り出し、取り出した要素を処理します。スタックが空になるまで繰り返します。
Stack<Integer> stack = new Stack<>();
// スタックに要素を追加するコード
while (!stack.empty()) {
int element = stack.pop();
// 要素を処理するコード
}
方法2: スタックをイテレータでトラバースする方法 Stack クラスは Iterable インターフェースを実装しており、イテレータを使用してスタックをトラバースすることもできます。
Stack<Integer> stack = new Stack<>();
// スタックに要素を追加するコード
Iterator<Integer> iterator = stack.iterator();
while (iterator.hasNext()) {
int element = iterator.next();
// 要素を処理するコード
}
- コード例: 以下に、スタックをトラバースするための完全なコード例を示します。
import java.util.Stack;
public class StackTraversalExample {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
// スタックをポップしながらトラバースする方法
System.out.println("メソッド1: スタックをポップしながらトラバース");
while (!stack.empty()) {
int element = stack.pop();
System.out.println("要素: " + element);
}
// スタックをイテレータでトラバースする方法
System.out.println("メソッド2: スタックをイテレータでトラバース");
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
Iterator<Integer> iterator = stack.iterator();
while (iterator.hasNext()) {
int element = iterator.next();
System.out.println("要素: " + element);
}
}
}
以上が、Javaでスタックをトラバースする方法とコード例です。これらの方法を使って、スタック内の要素を順番に処理することができます。