二叉树的定义
二叉树是n个结点的有限集合,该集合或者为空集,或者由一个根节点和两颗互不相交的、分别称为左子树和右子树的二叉树组成。
二叉树的建立(递归)
树形结构多用递归来求解。
定义二叉树结构体:
typedef struct TreeNode
{
int date;
struct TreeNode *left;
struct TreeNode *right;
}Node;
创建二叉树:
Node* create()
{
Node *p;
int n;
cin >> n;
if(n==0)
p = null;
else
{
p = (Node*)malloc(sizeof(Node));
p->date = n;
p->left = create();
p->right = create();
}
return p;
}
二叉树创建顺序为先中心节点,然后左子树和右子树,到了叶节点后左右子树赋值为0。例如二叉树: 1
2 3
要输入1 2 0 0 3 0 0
完整代码:
#include<bits/stdc++.h>
using namespace std;
typedef struct TreeNode
{
int date;
struct TreeNode *left;
struct TreeNode *right;
}Node;
Node* create()
{
Node *p;
int n;
cin >> n;
if(n==0)
p = NULL;
else
{
p = (Node*)malloc(sizeof(Node));
p->date = n;
p->left = create();
p->right = create();
}
return p;
}
int main()
{
Node *root = NULL;
root = create();
cout << "创建成功";
}