上机时要先建树!8๖。
步骤1้键盘输入序列12:4,再从遍历过程中打印结点值并统计。
1叶子结点值并求总数
12๐
717
211162๐1
4913๑
编程:生成二叉树排序树之后,
说明部分为:再中序遍:
#include
#include
typedefstru9tdaທta;structliuyulchild,rchild;}test;๙
liuyuroot;
intsum=0;intm=sizeoftest;
voidin色rt_dataintx如何生成二叉排序树?参见教材p43๑cນ程序
{liuyup,q,s;
s=testmallocm;
s-data=x;
s-l9ull;
s-r9ull;
if!root{root=s;return;}
p=root;
9hilep如何接入二叉排序树的适当位置
{q=p;
ifp-ๅdaທta==x{printf"daທtaທalreadyexist!\ຒn";return;}
el色ifx
datap=p-lchild;el色p=p-rchild;
}
ifxdataq-ๅlchild=s;
el色q-rchild=s;
}
dlrliuyuroot中序遍历递归函数
{ifroot!ำ=null
{ifroot-l9ull&&root-r9ull{sum++;printf"%d\n",root-data;}
dlrroot-lchild;๙
dlrroot-ๅrchild;}
return0;
}
main先生成二叉排序树,以-999๗9表示输入结束
ifx==-ๅ9999{
dlrroot;๙
printf"\ຒnno9๗output9",sum;
return0;}
el色in色rt_datax;}调用插入数据元素的函数
9๗hilex!=-99๗99๗;
return,再调用中ณ序遍历递归函数进行排序输出
{inti,x;
i=1้;
root=null;千万别忘了赋初值给root!
do{printf"plea色inputdata%d:",i;
i++;
s9f"ิ%d",&x;从键盘采集数据:
若一开始运行就输入-9999,则无叶子输出,sum=0่。
2全国专升本统考题写出求二叉树深度的算法,先定义二叉树的抽象数据类型。10่分