dポイントプレゼントキャンペーン実施中!

class Node {
char value;

Node left;
Node right;

public Node(char value, Node left, Node right) {
this.value = value;
this.left = left;
this.right = right;
}





public static void main(String[] args) {
Node root =
new Node('F',
new Node('B',
new Node('A', null, null),
new Node('D',
new Node('C',null,null),
new Node('E',null,null)
)
),
new Node('G',
null,
new Node('I',
new Node('H',null, null),
null
)
)
);

System.out.println("前順走査");
preorder(root);
System.out.println();
System.out.println("中間走査");
inorder(root);
System.out.println();
System.out.println("後順走査");
postorder(root);

}

static void preorder(Node node) {
if ( node == null ) return;
printNode(node);
preorder(node.left);
preorder(node.right);
}
static void inorder(Node node) {
if ( node == null ) return;
inorder(node.left);
printNode(node);
inorder(node.right);
}

static void postorder(Node node) {
if ( node == null ) return;
postorder(node.left);
postorder(node.right);
printNode(node);
}

static void printNode(Node node) {
if( node != null )
System.out.print(node.value + " ");
}
}

フローチャートをサブルーチンを含めて教えていただきたいです。
フローチャートだけでもいいです。

A 回答 (1件)

たとえば


static void preorder(Node node) {
if ( node == null ) return;
printNode(node);
preorder(node.left);
preorder(node.right);
}
これ。

start

<node == null>→yes→ return

printNode(node);

preorder(node.left);

preorder(node.right);

return

これだけ。
フローチャートと呼ぶもおこがましいものです。
ネットで質問して答え待ってる間に書けます。

覚える気が無いのなら、プログラミングなんかやめましょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!