行きがけ順で表示するプログラム
アルゴリズムの勉強をし始めたものです。
深さ優先探索で
0
/ \
1 2
/\ /\
3 4 5 6
/\
8 9
の木を行きがけ順で表示(0,1,3,4,2,5,8,9,6)するC言語のプログラムを作っています。参考書を見ながら途中まで作ってみました
/* 行きがけ順で表示するプログラム */
/* 配列のデータが9個と決まっている場合 */
#include <stdio.h>
#define N 100
struct cell
{
int node;
struct cell *next;
};
void preorder(int n, struct cell **S);/* 前順 */
int main()
{
struct cell *S[N];
int root;
preorder(root, S);
}
void preorder(int n, struct cell **S)/* 前順 */
{
struct cell *q;
printf("%d", n);/* 表示 */
q = S[n];
while(q != NULL)
{
preorder(q -> node, S);/* 再帰 */
q = q -> next;
}
return;
}
ここから例えば配列のデータが1,3,5,7,9,11,13,15,17と決まっている場合、どうやってこれらのデータを設定すればいいのでしょうか?参考書を見てもアルゴリズムの部分しか書かれていなかったので完成形が見えてこないです。
よろしくお願いします。