对于二叉树的操作一般的我们使用递归的方法,因为在二叉树中每一个子树又是一颗二叉树。
这篇代码主要是演示了二叉树的以下操作
- 二叉树的创建
- 二叉树的三种遍历
- 求解二叉树的高度
- 求解指定层数的结点个数
- 求解二叉树的叶子结点个数
/*********************************************************
- Copyright (C): 2016
- File name : tree.c
- Author : - Zhaoxinan -
- Date : 2016年07月31日 星期日 19时44分36秒
- Description :
* *******************************************************/
#include <stdio.h>
#include <stdlib.h>
//定义结点
typedef struct BiTNode
{
char data; //数据
struct BiTNode *lchild; //左孩子
struct BiTNode *rchild; //右孩子
}BiTNode, *BiTree;
//////////////////////////////////////////////////////////
//先序创建二叉树
BiTree CreateBiTree()
{
char ch;
BiTree T;
scanf("%c", &ch);
if (ch == '#')
{
T = NULL;
}
else
{
T = (BiTree)malloc(sizeof(BiTNode));
T->data = ch;
T->lchild = CreateBiTree();
T->rchild = CreateBiTree();
}
return T;
}
/////////////////////////////////

2万+

被折叠的 条评论
为什么被折叠?



