二叉树相关(抄袭不能

设计思想:

(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);  二叉树的树深算法





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值