二叉树中使用最多的方法就是递归,要能在大脑中想象出函数递归调用的过程。
下面代码实现了二叉树结构体的建立,二叉树的形成,二叉树的遍历,二叉树深度和叶子节点数。
在Dev C++中调试运行通过。
#include <stdio.h>
#include <stdlib.h>
typedef struct BiTNode{
char data;
struct BiTNode *lChild;
struct BiTNode *rChild;
}BiTNode,*BiTree;
//先序创建二叉树
void CreateBiTree(BiTree *T)
{
char ch;
scanf("%c",&ch);
getchar();//回车符也算一个字符,将其去掉
if (ch == '#')//如果输入#,表示没有该节点
{
*T = NULL;
return;
}
else
{
*T = (BiTree)malloc(sizeof(BiTNode));
(*T)->data = ch;
printf("输入%c的左子节点:",ch);
CreateBiTree(&((*T)