数据结构之树的新建
树这一章节,最最具有代表性的就是二叉树。当然,和树相关的就有一系列功能的实现。例如,树的新建,数的赋值,数的遍历,数的深度的计算等等。下面只谈一谈数的新建。
下面是一段代码:
void GreatBiTree(sTree root){ //将树根的引用传进来
int a;
printf("请输入该节点的值\n");
scanf("%d",&(root->e ) ); //对这个节点自身赋值
printf("需要创建左孩子请输入1,否则输入0\n");
scanf("%d",&a);
if(a==1){
root->left=(sTree)malloc(sizeof(Tree));
GreatBiTree(root->left);
}
else root->left=NULL; //如果需要创建左孩子那么把这个节点当作根 //再次调用这个方法使用递归。
printf("需要创建右孩子请输入1,否则输入0\n");
scanf("%d",&a);//右孩子同上
if(a==1) {root->right=(sTree)malloc(sizeof(Tree));
GreatBiTree(root->right);}
else root->right=NULL;
}
数的新建过程可以使用化繁为简的思想,将整棵树化简到每一个节点。对该节点赋值后,然后将这个节点当作一个根继续调用此函数,直到叶子节点。