解释void CreateBiTree(BiTree &T) { char ch; cin >> ch; if (ch == '#') T = NULL; else { T = new BiNode; /*创建一个新节点*/ T->data = ch; CreateBiTree(T->lchild); CreateBiTree(T->rchild); } /*递归创建*/ }
时间: 2023-06-07 20:06:48 浏览: 143
CreateBiTree是一个函数,它的作用是创建一个二叉树。函数的参数是一个指向BiTree结构体的指针。该结构体表示二叉树的节点,包括左右子树和数据项等信息。CreateBiTree函数通过读入用户提供的输入,利用递归的方式生成二叉树。当函数执行完毕后,二叉树会被完全创建。由于该函数不需要返回结果,所以其类型为void(无返回值)。
相关问题
#include<iostream> using namespace std; typedef struct BiNode { char data; struct BiNode* lchild, * rchild; }BiTNode, * BiTree; void CreateBiTree(BiTree& T) { char ch; cin >> ch; if (ch == '#') T = NULL; else { T = new BiTNode; T->data = ch; CreateBiTree(T->lchild); CreateBiTree(T->rchild); } }
这段代码是用来创建二叉树的,其中使用了递归的方式。具体来说,它使用了一个结构体 BiNode 来表示二叉树的节点,其中包含了一个数据成员 data 和两个指向左右子树的指针 lchild 和 rchild。接下来是一个函数 CreateBiTree,它的参数是一个指向二叉树根节点的指针 T,函数的作用是根据用户输入的字符来创建二叉树。如果输入的字符是 '#',则将当前节点的左右子树指针都设为 NULL,否则创建一个新节点,并将当前字符赋给它的 data 成员,然后递归调用 CreateBiTree 来分别创建它的左右子树。
#include <stdio.h> #include <stdlib.h> #include <malloc.h> typedef char data_t; typedef struct BiTNode { data_t data;//存放本节点数据 struct tree *l_child;//存放左孩子节点地址 struct tree *r_child;//存放右孩子节点地址 }BiTNode,*BiTree; void CreateBiTree(BiTree &T) { char ch,cin; cin>>ch; if(ch=='#') T=NULL; else{ T= new BiTNode; T->data=ch; CreateBiTree(T->l_child); CreateBiTree(T->r_child); } }
这段代码是二叉树的创建函数 CreateBiTree,它使用递归的方式创建一棵二叉树。函数的参数是一个指向 BiTree 类型的指针 T,用于存储二叉树的根节点地址。
在函数中,首先读入一个字符 ch,如果 ch 是 '#',说明当前节点为空节点,将 T 的值设为 NULL,并结束递归。否则,创建一个新的 BiTNode 节点,并将 ch 存储到节点的 data 成员中。然后,递归调用 CreateBiTree 函数,将返回的地址分别存储到当前节点的左孩子和右孩子中。
值得注意的是,结构体中的成员变量类型应该是 BiTree*,而不是 tree*,因为 BiTree 是一个指向 BiTNode 的指针类型,而不是结构体类型。
阅读全文