- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
平衡二叉树c语言代码
平衡二叉树c语言代码
[
/*
程序作者: monkeylee
程序名称: 二叉树平衡因子
程序功能: 随机生成用户要求个数的整数,生成二叉树(无重复),
可以进行生成、遍历、查找二叉树,而且进行动态的查找,
如果没有找到节点就把这个值接到树上
能够显示节点的产生顺序、平衡因子(失败),节点值
*/
#includestdio.h
#includestdlib.h
#includetime.h
//自引用结构
struct treeNode
{
int data; //节点值
int balance; //平衡因子
int order; //生成顺序
struct treeNode *left; //指向左子树的指针
struct treeNode *right; //指向右子树的指针
struct treeNode *father;
}; /*结构定义END */
typedef struct treeNode TreeNode;
typedef TreeNode * TreeNodePtr;
/*函数原型*/
void insertNode(TreeNodePtr rootPtr,int value,int order); //插入节点
void inOrder(TreeNodePtr rootPtr); //中序遍历
int instructions(); //菜单
void search(TreeNodePtr rootPtr,int value,int n); //查找
//----------------------------------------------------------------------------------
/*主函数*/
void main()
{
int item; //要操作的数据
int choices; //存储随机制的变量
int i; //循环计数器
int n; //节点个数
TreeNodePtr rootPtr=NULL; //树在开始的时候为空
while(choices=instructions())
{
switch(choices)
{
case 1:
rootPtr=NULL;
printf(输入要生成二叉树的节点数);
scanf(%d,n);
if(n=0)
{
printf(输入节点数必须大于等于1\n);
break;
}
srand(time(NULL));
for(i=1;i=n;i++)
{
item=rand()%(10*n);
insertNode(rootPtr,item,i);
}/*END for*/
break;
case 2:
printf(中序遍历:\n);
if(rootPtr==NULL)
break;
inOrder(rootPtr);
printf(\n);
break;
case 3:
printf(输入要找的数);
scanf(%d,item);
search(rootPtr,item,i);
i++;
break;
default:
printf(请输入正确的选项!\n);
}/*END switch*/
}
printf(\n);
}/*END main函数*/
//----------------------------------------------------------------------------------
int instructions()
{
int choice;
printf(\n菜单: 1.生成 2.遍历 3.查找 0.退出\n);
scanf(%d,choice);
return(choice);
}/*END instructions*/
//----------------------------------------------------------------------------------
/*将节点插入到树中*/
void insertNode(TreeNodePtr rootPtr,int value,int order)
{
//生成新节点,找到一个要连的地方
TreeNodePtr currentPtr=rootPtr;
TreeNodePtr newPtr;
TreeNodePtr prePtr=root
您可能关注的文档
最近下载
- 四川省成都市天府新区2024-2025学年七年级下学期期末数学试卷(含部分简单答案).pdf VIP
- 高一数学第一学期必修一、四全册导学案.pdf VIP
- 应用型大学英语综合教程基础篇1 第五版 配套课件.ppt VIP
- 初中物理必考知识点.docx VIP
- 3at断路器-产品介绍.pptx VIP
- 纯电动汽车故障诊断与排除(吉利帝豪EV450)JL450-教学课件2.2 交流充电口异常故障诊断与排除.pdf VIP
- 教育学原理课后习题(答案).pdf VIP
- 高中英语课件学好英语的方法.ppt VIP
- 航道工程测量方案.docx
- 《中国古典诗词中的品格与修养》2019期末考试答案.pdf VIP
文档评论(0)