Quantcast
Channel: 楽天 みんなで解決!Q&A 新着質問([技術者向] コンピューター/205)
Viewing all articles
Browse latest Browse all 29232

再帰呼び出しについて

$
0
0
C言語のプログラムについてです。 テキストからランダムに並べられたアルファベットを順番にひっぱってきて、 二分木の構造にアルファベットをアルファベット順に格納していき、その順番で表示するプログラムなのですが、 typedef struct rec{ char word[1]; struct rec *left; struct rec *right; }rec; という構造体が定義されており、 二分木構造に(なるように)アルファベットを順番に格納していったあと、 それをアルファベット順に表示していく関数が以下の関数hyoujiなのですが、 (二分木を生成する際にmallocを使用しているので、freeがありますが今回は無視してください。) void hyouji(rec *top){ if(top!= NULL){ hyouji(top->left); printf("%s\n",top->word); hyouji(top->right); free(top); } } この再帰呼び出しの動きがよくわかりません。(つまりはhyoujiの関数の動きがわかりません。) *topは二分探索木の一番上のアドレスを示しています。 wordにアルファベットが格納されています。 たとえば、下のように格納されていたらどのようにhyouji関数は動くのでしょうか。 順番に説明していっていただけたらありがたいです。 (ちなみにプログラム的に下の例のように格納されていきます。 まずtopを生成して、テキストファイルの先頭のアルファベットを入れて、そこから順に 格納していくので、topがaとは限りません。) ........................[b] ..................../...\ .................[a]........[e] .........................../...\ .......................[c].........[g]

Viewing all articles
Browse latest Browse all 29232

Trending Articles