0Pricing
C Academy · レッスン

木構造とグラフ

階層データやネットワークデータの表現に使う木構造とグラフ構造を学びます

「木構造とグラフ」はCoddyKit上の無料C Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C Academyコースには全3レッスンが含まれています。

Cの木構造とグラフ

Cの木構造とグラフ

木構造とグラフは、階層構造やネットワーク構造のデータを表現するために使用される非線形データ構造です。

このレッスンでは、次のことを学びます。

  • 木構造とグラフの構成方法。
  • Cで二分木を実装する方法。
  • 隣接リストと隣接行列を使用してグラフを表現する方法。
木構造とグラフ — イラスト1

木とは何ですか?

木とは何ですか?

木は、ノードで構成される階層型データ構造です。

主な用語:

  • 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のデータ構造のセクションはこれで終了です!

木構造とグラフ — イラスト10

よくある質問

「木構造とグラフ」レッスンは無料ですか?

はい。「木構造とグラフ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 連結リスト
  2. スタックとキュー
  3. 木構造とグラフ
← C Academyに戻る