Dokusyo-nissi Bessitu

<< 2005/07 >>
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

[Debian Memo] (for Woody)
[sekiyo HPへ]

[はじめてのC] C言語のページ (1)
[その 2] (2)
[その 3] ABC of C
[その 4] CPP World Tutorial (1) (by Prelude) linkrot
[その 5] The Standard C Library (Null)
[その 6] CPP World Tutorial (2) linkrot
[その 7] (3)
[その 8] (4)
[その 9] 作ってわかる Cプログラミング (1)
[その 10] (2)
[その 11] Arrays and Pointers in C
[その 12] Learning GNU C (1)
[その 13] (2)
[その 14] (3)
[その 15] (4)
[その 16] アドレスブック
[K & R 2nd] The C Programming Language (1)
[その 2] (2)
[その 3] (3)
[その 4] (4)
[その 5] (5)
[その 6] (6)

[my bookcase]

(サーチエンジンから 来られた方で 該当する
キーワードが 見つからないときには、上の
はてな検索窓から 再度検索してください ←
[日記] のほうを クリック)

 | 

2005-07-17 φ(-_-)

[]はじめての C

二分木 3

二分木での 構造体を 定義した コードです ▽

struct Node {
int data;
struct Node *left;
struct Node *right;
};

簡単に するため、この tutorial では ノードの値は 整数型に 決めておきます。こうすることで 例題の コードが 簡単に なるのですが、この木 - tree - の ままだと、他で 役にたつとは いえません。一般的に 扱えるよう 変換したものは、このサイトの 中にある ソース群で 供給してあります。ただし、経験を つむためには、まず始めに 自分自身で 試みることですね。

この tutorial では、ノードへの ポインタを 使って 直接、操作しています。実際に 応用するには、Tree という 構造体を 1つ つくって、その内部に 多くのものを 納めます。例えば ▽

struct Tree {
struct Node *root;
/* Other useful info the tree */
};

こうすることで、木 - tree - は 少しばかり 簡素化され、より 有益な 情報、例えば 木の高さや ノード数などを 含ませることが できます。しかし、表示化されることで 起こる mental な 複雑さが 加わることによって、少なからず 難しくなってきます。そこで、このような 明らかに 上級の セットアップについては、扱わないことに しましょう。

しばしば 役にたつ、シンプルな 関数を 定義してみます。これは、新しいノードを 作成するための もので、何度も 繰り返される 労力から 開放してくれるのです。では やってみましょう ▽

int new_node(struct Node **node, int value)
{
*node = malloc(sizeof(**node));
if (*node == NULL)
return 0;
(*node)->data = value;
(*node)->left = NULL;
(*node)->right = NULL;
return 1;
}

 | 

[シラノの新聞]

[枇杷と柿]

[馬葉礼 談話]

[My Links]

[Network Archives]


[かうんた→ 533417]