标签:blog ar sp 数据 div 2014 问题 log bs
Node* BuildTree(int m){//这是错误的二叉树建立方法//空的情况不能判断 if(m > n) return NULL; printf("请输入%d/%d号结点的值:",m,n); Node *node = (Node*)malloc(sizeof(Node)); int v; scanf("%d",&v); node -> value = v; node -> left = BuildTree(m * 2); node -> right = BuildTree(m * 2 + 1); return node; }
我觉得这个二叉树有问题,只能处理比较完整的二叉树,一旦二叉树中有一些空的节点时,就不能解决问题了。
以下附上我的代码:
/* *二叉树建立方法一 *2014.12.17 */ root create_(){ root n; char v; v=getchar(); if(v==‘ ‘) return NULL; else { if(!(n=(node*)malloc(sizeof(node)))) { printf("分配内存失败"); exit(1); } n->data=v; n->left=create_(); n->right=create_(); return n; } }
/* *二叉树建立方法二 *2014.12.17 */ void create_(root *t) { char v; scanf("%c",&v); if(v==‘ ‘) { *t=NULL; } else { if(!(*t=(node*)malloc(sizeof(node)))) { printf("分配内存失败"); exit(1); } (*t)->data=v; create_(&((*t)->left)); create_(&((*t)->right)); } return ; }
标签:blog ar sp 数据 div 2014 问题 log bs
原文地址:http://www.cnblogs.com/yang95/p/4170136.html