Bootstrap

统计二叉树中叶子结点数数据结构C语言,数据结构(C语言实现) - 二叉树的基本操作(建立,遍历,结点数,叶子结点数,高度,按树状打印,输出叶子结点等)...

通常,对二叉树的操作都是利用二叉链表进行的。

二叉链表:包括三个域-数据域,左孩子,右孩子的结点结构的二叉树存储结构。

二叉链表的存储结构如下:

typedef char DataType;

typedef struct node/*二叉树的存储结构*/

{

DataType data;

struct node *Lchild;

struct node *Rchild;

}BiTNode,*BiTree;

二叉树的基本操作包括:建立,递归遍历,求结点数,求叶子结点数,输出叶子结点,求二叉树的高度,求结点的双亲,按树状打印等等。 完整代码如下:

#include

#include

typedef char DataType;

typedef struct node/*二叉树的存储结构*/

{

DataType data;

struct node *Lchild;

struct node *Rchild;

}BiTNode,*BiTree;

int Count1=0;/*统计结点数目的全局变量*/

int Count2=0;/*统计叶子结点数目的全局变量*/

int depth = 0;/*记录当前求得的最大层次*/

BiTNode *Create_BiTree();/*先序建立二叉树*/

void PreOrder(BiTree root);/*先序遍历二叉树*/

void InOrder(BiTree root); /*中序遍历二叉树*/

void PostOrder(BiTree root); /*后序遍历二叉树*/

void PreOrder_CalNode(BiTree root);/*统计二叉树的结点*/

void InOrder_PrintLeaf(BiTree root); /*输出二叉树的叶子结点*/

void PostOrder_CalLeaf(BiTree root);/*方法1-统计叶子结点的数目*/

int CalLeaf(BiTree root);/*方法2-统计叶子结点的数目*/

void TreeDepth(BiTree root,int h);/*方法1-求二叉树的高度*/

int PostOrder_TreeDepth(BiTree root);/*方法2-求二叉树的高度*/

BiTree Parent(

;