1

私はJavaを使用しており、リストを使用して、最後から最初の順序でスタックに必要なノードのリストを持っています。

例:

私のリストは {node1,node2,node3} です

私のスタックはあるはずです

{

ノード1、

ノード2、

ノード3

}

これを簡単に解決するにはどうすればよいですか?

これは機能しますか?

if (hasWhiteNeighbor(startNode)) {
        List<Node> conNodes = getAdjacentNodes(startNode);
        while (conNodes.size() > 0) {
            int conCount = conNodes.size();
            stack.push(conNodes.get(conCount));
            conNodes.remove(conCount);
        }
    }
4

1 に答える 1

0

List は反復の順序が要素が追加された順序と同じであることを保証するため、正しい順序でノードをリストに追加し、リストを反復して各要素を追加するだけで、この問題を簡単に解決できます。スタック。

List<String> stringList = new ArrayList<String>();
stringList.add("node1");
stringList.add("node2");
stringList.add("node3");

Deque<String> stringStack = new ArrayDeque<String>();
for (String s : stringList) {
  stringStack.push(s);
}

while (!stringStack.isEmpty()) {
  System.out.println(stringStack.pop());
}

上記のコードは、次の出力を生成します。

node3
node2
node1

リンク
http://docs.oracle.com/javase/7/docs/api/java/util/List.html
http://docs.oracle.com/javase/7/docs/api/java/util/Stack. html
http://docs.oracle.com/javase/7/docs/api/java/util/Deque.html

于 2013-06-12T03:07:15.403 に答える