木構造とグラフ
階層データやネットワークデータの表現に使う木構造とグラフ構造を学びます
「木構造とグラフ」はCoddyKit上の無料C Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C Academyコースには全3レッスンが含まれています。
Cの木構造とグラフ
Cの木構造とグラフ
木構造とグラフは、階層構造やネットワーク構造のデータを表現するために使用される非線形データ構造です。
このレッスンでは、次のことを学びます。
- 木構造とグラフの構成方法。
- Cで二分木を実装する方法。
- 隣接リストと隣接行列を使用してグラフを表現する方法。

木とは何ですか?
木とは何ですか?
木は、ノードで構成される階層型データ構造です。
主な用語:
- Root - 最上位のノードです。
- Parent and Child - 直接接続されたノードです。
- Leaf - 子ノードを持たないノードです。
例:二分木のノード
例:二分木のノード
Cでは、二分木のノードを、左右の子ノードへのポインターを持つstructを使って定義します。
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node *left, *right;
};
struct Node* createNode(int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->left = newNode->right = NULL;
return newNode;
}
int main() {
struct Node *root = createNode(10);
return 0;
}二分木の走査
二分木の走査
走査方法:
- Inorder (LNR) - 左、ノード、右の順です。
- Preorder (NLR) - ノード、左、右の順です。
- Postorder (LRN) - 左、右、ノードの順です。
例:中順走査
例:中順走査
このプログラムは、二分木を中順走査します。
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node *left, *right;
};
void inorder(struct Node *root) {
if (root != NULL) {
inorder(root->left);
printf("%d ", root->data);
inorder(root->right);
}
}
int main() {
struct Node *root = malloc(sizeof(struct Node));
root->data = 10;
root->left = NULL;
root->right = NULL;
inorder(root);
return 0;
}グラフとは何ですか?
グラフとは何ですか?
グラフは、辺によって接続されたノード(頂点)の集合です。
グラフには次の種類があります:
- Directed - 辺に方向があります。
- Undirected - 辺に方向がありません。
グラフの表現方法
グラフの表現方法
グラフは、次の方法で表現できます:
- Adjacency Matrix - 接続関係を表す2次元配列です。
- Adjacency List - 各ノードが隣接ノードを指すリストです。
グラフの走査
グラフの走査
一般的な走査方法:
- Breadth-First Search (BFS) - より深い階層へ進む前に、すべての隣接ノードを訪問します。
- Depth-First Search (DFS) - 戻りながら探索する前に、可能な限り深く探索します。
まとめ
まとめ
このレッスンでは、次のことを学びました:
- 木とグラフの構造
- 木を走査する方法
- グラフを表現して走査する方法
Cのデータ構造のセクションはこれで終了です!

よくある質問
「木構造とグラフ」レッスンは無料ですか?
はい。「木構造とグラフ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C Academyコースには全3レッスンが含まれています。
「木構造とグラフ」で何を学びますか?
階層データやネットワークデータの表現に使う木構造とグラフ構造を学びます ブラウザで直接実行するハンズオンコードでC Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
C Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのC Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。
「木構造とグラフ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このC Academyレッスンでコードを書いて実行できますか?
はい。すべてのC Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。