二叉树相关(抄袭不能

来源:互联网 发布:python kgram算法 编辑:程序博客网 时间:2024/06/05 05:48

设计思想:

(1)       存储结构。

采用二叉链表的存储结构。二叉链表的每个结点有一个数据域和两个指针域,一个指针指向左孩子,另一个指针指向右孩子。结点结构如下:

                            ypedef struct Bnode

                            {

                            ElemType data;

                            struct Bnode *lch,*rch;

}Bnode;

Bnode为二叉树结点类型标识符。

 

(2)       主要算法基本思想。

本程序利用两种方法建立二叉树,第一种是利用二叉树性质5,借助一维数组v建立二叉树。然后可以利用中根遍历方法统计叶子结点个数和结点总数。利用二叉树的先序遍历递归计算出树深。

1)  在二叉树t中,插入一个结点p的递归算法。

用性质5建立二叉树方法分析(方法一):输入结点的序号和数值域,当输入的结点的序号和数值域不为空的情况下,就会开辟一个结点的空间,然后把刚刚输入的结点的数据放到开辟的结点的数值域中,把左孩子和右孩子都赋值为空。然后再根据性质5找出这个结点的父母结点,然后自动连接起来。本算法循环的结束条件是输入的两个数据都为零,即i,x都为零时不再分配新结点跳出循环体。

 

设计表示:

(1)       函数声明和规格说明。

Bnode *creat_bt0();   利用性质5建立二叉树。

void preorder(Bnode *p);  先根遍历二叉树。

void injishu(Bnode *t);   统计结点总数和叶子结点个数

void predeep(Bnode *t,int i);  二叉树的树深算法





原创粉丝点击