C言語の自己参照型を使用しプログラムを作ろうとしていますが、
2分探索木についての解説、サンプルをのせているサイトは
たくさんあり勉強になったのですが、
木が2以上の複数の場合になった場合、どういったプログラムをくめば
いいのかわからず、学習したいと思っています。
参考となる、サイト、サンプルを教えていただけないでしょうか?
//2分木の場合
struct node{
int nodeID;
struct node *nextA;
struct node *nextB;
}
//複数木の場合?
struct node{
int nodeID;
struct node **next;
}
のように複数木の場合は、次の木が複数に対応できるように
ポインタのポインタを使用するのかと思いますが、
構造体のメンバでポインタのポインタの使用の仕方が
いまいち理解できませんでした。
よろしくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
「複数木の場合」のように分岐先をnextで持ってもいいのですが,考え方を変えて多分木を2分木で表現することもでき,この方法だとセルの数は多くなりますがリスト操作やデータの取り扱いがシンプルになることが多いです。
Lispという言語をご存知ですか?これは基本的なデータ構造がリストなのですが,見かけ上多分木であっても全て2分木としてデータに格納されます。データの参照・加工はcar, cdr, cons, eq, atom という少数の関数ででき,これを基にして必要な関数を定義します。
No.1
- 回答日時:
next = (struct node **) malloc(sizeof(struct node *) * 分岐数);
for (i = 0; i < 分岐数; i++) {
next[i] = (struct node *) malloc(sizeof(struct node));
}
malloc()で領域確保ができなった場合の処理は、適切に付け加えてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# 関数ポインタの高速化のメリット 7 2023/05/05 20:15
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# プログラムが書けません。 4 2023/01/22 22:57
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# 未解決の外部シンボル _printfが関数_mainで参照されました 1 2022/09/18 15:28
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- 数学 特定の座標点を通る回帰を行う方法について。 2 2022/10/10 10:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セグメントエラー
-
戻り値で構造体を返すことは可...
-
init関数の意味
-
fopne で失敗する原因
-
ハンドルはポインタか
-
Run-Time Check Failure #3とい...
-
C言語のポインタに直接アドレス...
-
C言語の関数と配列に関する質問
-
アプリを32bitから64bit移行
-
VBはCを混乱させる?
-
プログラミングのfarについて
-
連結リスト 要素の入れ替え
-
C言語でのconstを返す関数
-
コンストラクタでnewを失敗した...
-
入れ子の構造体について
-
[excel vba] マウスポインタの...
-
VB6でのgethostbyaddrの使用方...
-
エラーの意味
-
デバイスハンドルとは?
-
ExcelVBAでのkernel32(64bit)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインタに直接アドレス...
-
C言語の関数と配列に関する質問
-
戻り値で構造体を返すことは可...
-
fopne で失敗する原因
-
init関数の意味
-
Run-Time Check Failure #3とい...
-
LPSTR型の初期化について
-
セグメントエラー
-
アプリを32bitから64bit移行
-
コンストラクタでnewを失敗した...
-
ExcelVBAでのkernel32(64bit)
-
Cで作成したDLL関数をVBから呼...
-
ハンドルはポインタか
-
DLL<->VB間での受け渡し(文字...
-
C言語でのconstを返す関数
-
ポインタについて
-
参照型で受け取った引数をポイ...
-
TCHAR文字列内の検索について
-
デバイスハンドルとは?
-
基本アルゴリズムの『返す』の...
おすすめ情報