今天上课讲了二叉树,结构如下,一直没搞明白这样的二叉树的意义是什么?这样写的话data域不就是固定的了吗,这样还有什么意义呢?是因为还没讲完吗??求解答,感谢!
typedef int datatype_tree;
typedef struct tree_node
{
datatype_tree data;//数据域
struct tree_node* lchild;//左子left
struct tree_node* rchild;//右子right
}tree;
tree* CreateBitree(int n, int i) {
tree* p = (tree*)malloc(sizeof(tree));
assert(NULL != p);
p->lchild = NULL;
p->rchild = NULL;
p->data = i;
if (2 * i <= n) {
p->lchild = CreateBitree(n, 2 * i);
}
else {
p->lchild = NULL;
}
if (2 * i + 1 <= n) {
p->rchild = CreateBitree(n, 2 * i + 1);
}
else {
p->rchild = NULL;
}
return p;
}