C言語で二分木を作る方法は何ですか?
C言語では、構造体を使用して二分木のノードを表すことができ、再帰的な方法で二分木を作成することができます。具体的な方法は、以下の通りです。
- 最初に、二分木ノードの構造体を定義します。
typedef struct Node {
int data;
struct Node* left;
struct Node* right;
} Node;
- 二分木のノードを再帰的に構築する関数を作成してください。
Node* createNode(int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
- 二分木を構築するための関数を作成してください。
Node* createBinaryTree() {
Node* root = createNode(1);
root->left = createNode(2);
root->right = createNode(3);
root->left->left = createNode(4);
root->left->right = createNode(5);
root->right->left = createNode(6);
root->right->right = createNode(7);
return root;
}
- 上記のコードを変更して、異なるバイナリツリーを構築することができます。 バイナリツリーを作成した後、ツリーを処理するために走査などの操作を行うことができます。