网站内容管理系统cms,重庆速代网络科技,怎样建设单位网站,网站备案未注销 影响之前我们在学习二叉树的遍历的时候都是先手动创建出一个二叉树#xff0c;然后再前中后序的遍历#xff0c; 但实际中#xff0c;是给你一个数组里面存的数#xff0c;然后把他以#xff08;前中后#xff09;的遍历储存创建为一个二叉树 思路#xff1a; 想要创建二叉树…之前我们在学习二叉树的遍历的时候都是先手动创建出一个二叉树然后再前中后序的遍历 但实际中是给你一个数组里面存的数然后把他以前中后的遍历储存创建为一个二叉树 思路 想要创建二叉树首先就要有树节点的结构体
typedef char DataType;
typedef struct TreeNode
{struct TreeNode* left;struct TreeNode* right;DataType val;
}TNode;然后遍历字符数组只要不是#就要创建一个树节点把数据存进去然后递归先递归左直到返回NULL.说明左树已经遍历到底然后递归遍历右树这样就实现了把字符串中的数组按前序遍历的数组储存到树中也就建立了一二叉树
TNode* FrontTree(char* tre,int* pi)//创建二叉树
{if(tre[*pi]#){(*pi);return NULL;}TNode* node(TNode*)malloc(sizeof(TNode));node-valtre[*pi];(*pi);node-leftFrontTree(tre,pi);node-rightFrontTree(tre,pi);return node;
}
void IntoTree(TNode* root)//中序打印
{if(rootNULL){return; }IntoTree(root-left);printf(%c ,root-val);IntoTree(root-right);
}
int main() {char tre[100];scanf(%s,tre);int i0;TNode* treeFrontTree(tre,i);IntoTree(tree);return 0;
}