#include<iostream>
using namespace std;
typedef struct node
{
char data;
struct node * leftchild;
struct node* rightchild;
}Node,*Bitree;
void creatbitree(Bitree &T)
{
char c;
cin >> c;
if ('#' == c)
T = NULL;
else
{
T = new Node;
T->data = c;
creatbitree(T->leftchild);
creatbitree(T->rightchild); //因为这是按照地址引用进行建立树的,这样递归跟结点的地址连接起来左右子树的
}
}
//或者 创建树
//按先后次序输入二叉树中结点的值(一个字符),#表示空树
//构造二叉链表表示的二叉树
Bitree CreateTree(Bitree T)
{
char ch;
cin >> ch;
if (ch == '#')
{
T = NULL;
}
else
{
T = (Node *)malloc(sizeof(Node));
if (T == NULL)
{
fprintf(stderr, "malloc() error in CreateTree.\n");
return;
}
T->data = ch; //生成根结点
T->leftchild = CreateTree(T->leftchild); //构造左子树
T->rightchild = CreateTree(T->rightchild); //构造右子树
}
return T;
}
int main()
{
Bitree T;
creatbitree(T);
//或者这种方法
T = CreateTree(T);
return 0;
}
二叉树的建立
最新推荐文章于 2024-01-19 19:37:12 发布