Bitree CreateBItree( char *h , Bitree G ) { if( !G ) { G = (Bitree)malloc(sizeof(struct BiTnode)); strcpy(G->data,h); G->lchild = G->rchild = NULL; } else if( strcmp( h , G->data ) > 0 ) G->rchild = CreateBItree( h , G->rchild ); else if( strcmp( h , G->data ) < 0) G->lchild = CreateBItree( h , G->lchild ); return G; }分析这段代码
时间: 2024-04-26 16:24:13 浏览: 67
数据结构中BiTree的C语言实现
5星 · 资源好评率100%
这是一个递归函数,用于创建一个二叉树。具体流程如下:
1. 判断当前二叉树 G 是否为空,如果为空,新建一个二叉树节点,并将节点数据设置为单词表中的第一个单词 h,同时将左右子树指针设置为 NULL。
2. 如果当前二叉树节点的数据小于 h(即当前节点的单词在单词表中排在 h 的前面),递归调用该函数,将 h 插入当前节点的左子树。
3. 如果当前二叉树节点的数据大于 h(即当前节点的单词在单词表中排在 h 的后面),递归调用该函数,将 h 插入当前节点的右子树。
4. 最后返回该二叉树节点。
该函数主要利用二叉树的性质,根据单词在单词表中的大小关系,递归地将单词插入到对应的位置上,最终构建出一棵二叉树。
阅读全文