二分木中の要素数を求める
Posted: 2007年2月24日(土) 00:12
大学の課題でどうしても作成できないプログラムがあります。
どうか力を貸してください!!!
[二分木中の要素数の個数を求める関数 int tree_size(struct _node* tree);を定義せよ。]
と言う問題なんです。
プログラム全体を作る必要はなく、tree_sizeの関数内を
作成すれば良い形になっています。
/*oct10_1.c二分木*/
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
/*二分木のデータ構造*/
struct _node
{
struct _node *left;
int data;
struct _node *right;
};
/*プロトタイプ宣言*/
struct _node* new_node(struct _node* left, int data, struct _node* right);
int tree_size(struct _node* tree);
/*main関数*/
int main(void)
{
struct _node* test = new_node(new_node(new_node(NULL, 1, NULL), 6, new_node(NULL, 11, NULL)),
4,
new_node(new_node(NULL, 4, NULL), 5, new_node(NULL, 0, NULL)));
struct _node* test1 = new_node(test, 8, test); // tree_size(test1) の要素数は15になる
struct _node* test2 = new_node(test1, 9, test1); // tree_size(test2) の 要素数は31
struct _node* test3 = new_node(test2, 10, test1); // tree_size(test3) の 要素数は47
printf("要素数:%d", tree_size(test3));
return 0;
}
/*新しいノードを追加*/
struct _node* new_node(struct _node* left, int data, struct _node* right)
{
struct _node* ret = (struct _node*)malloc(sizeof(struct _node));
ret->left = left;
ret->data = data;
ret->right = right;
return ret;
}
/*二分木中の要素数を求める関数*/
int tree_size(struct _node* tree)
{
/*この部分を考える。*/
}
どうすれば要素数を求められるのでしょうか?
どうか教えてくださいお願いします(uc_,u*)
どうか力を貸してください!!!
[二分木中の要素数の個数を求める関数 int tree_size(struct _node* tree);を定義せよ。]
と言う問題なんです。
プログラム全体を作る必要はなく、tree_sizeの関数内を
作成すれば良い形になっています。
/*oct10_1.c二分木*/
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
/*二分木のデータ構造*/
struct _node
{
struct _node *left;
int data;
struct _node *right;
};
/*プロトタイプ宣言*/
struct _node* new_node(struct _node* left, int data, struct _node* right);
int tree_size(struct _node* tree);
/*main関数*/
int main(void)
{
struct _node* test = new_node(new_node(new_node(NULL, 1, NULL), 6, new_node(NULL, 11, NULL)),
4,
new_node(new_node(NULL, 4, NULL), 5, new_node(NULL, 0, NULL)));
struct _node* test1 = new_node(test, 8, test); // tree_size(test1) の要素数は15になる
struct _node* test2 = new_node(test1, 9, test1); // tree_size(test2) の 要素数は31
struct _node* test3 = new_node(test2, 10, test1); // tree_size(test3) の 要素数は47
printf("要素数:%d", tree_size(test3));
return 0;
}
/*新しいノードを追加*/
struct _node* new_node(struct _node* left, int data, struct _node* right)
{
struct _node* ret = (struct _node*)malloc(sizeof(struct _node));
ret->left = left;
ret->data = data;
ret->right = right;
return ret;
}
/*二分木中の要素数を求める関数*/
int tree_size(struct _node* tree)
{
/*この部分を考える。*/
}
どうすれば要素数を求められるのでしょうか?
どうか教えてくださいお願いします(uc_,u*)