问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言 关于二叉树排序树的建立及中序遍历程序的调试

发布网友 发布时间:2022-05-22 04:59

我来回答

1个回答

热心网友 时间:2024-03-06 15:03

看这个吧,跟你的设计一摸一样,有注释,你的没有注释,有些不怎么好理解。
#include
<stdio.h>
#include
<stdlib.h>
struct
tree//声明树的结构
{
struct
tree
*left,*right;
int
data;
};
typedef
struct
tree
treenode;//声明新类型树结构
typedef
treenode
*b_tree;//声明二叉树链表
//插入二叉树节点
b_tree
insert_node(b_tree
root,
int
node)
{
b_tree
newnode
;//声明树根指针
b_tree
currentnode;//声明目前节点指针
b_tree
parentnode;//声明父节点指针
//申请新节点的内存空间
newnode=(b_tree)malloc(sizeof(treenode));
newnode->data=node;//存入节点内容
newnode->right=NULL;//初始化右指针
newnode->left=NULL;
if(root==NULL)return
newnode;
else
{
currentnode=root;//存储目前节点指针
while(currentnode!=NULL)
{
parentnode=currentnode;//存储父节点指针
if(currentnode->data>node)//比较节点的数值大小
currentnode=currentnode->left;//左子树
else
currentnode=currentnode->right;//右子树
}
if(parentnode->data>node)//将父节点和子节点做链接
parentnode->left=newnode;//子节点为父节点的左子树
else
parentnode->right=newnode;//子节点为父节点的右子树
}
return
root;//返回根节点的指针
}
//建立二叉树
b_tree
create_btree(int
*data,int
len)
{
b_tree
root=NULL;
for(int
i=0;i<len;i++)
root=insert_node(root,data[i]);
return
root;
}
//二叉树中序遍历
void
in_order(b_tree
point)
{
if(point!=NULL)//遍历的终止条件
{
in_order(point->left);//遍历左子树
cout<<point->data<<"
";//打印节点的内容
in_order(point->right);//遍历右子树
}
}
//主程序
void
main()
{
b_tree
root=NULL;//树根指针
int
value;//暂存读入将要遍历的数值
int
nodelist[20];
int
index=0;
printf("请输入将要参与遍历的数值:\n");
//读数值到数组中,
//这是一种不知道数组元素到底有几个的情况下的输入方法
scanf("%d",&value);
while(value!=0)
{
nodelist[index]=value;
index++;
scanf("%d",&value);
}
//建立二叉树
root=create_btree(nodelist,index);
//中序遍历
printf("中序遍历二叉树结果如下\n");
in_order(root);
printf("\n");
}
/*
输入:6
3
1
9
5
7
4
8
0(退出)
结果:1
3
4
5
6
7
8
9
*/
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
考研可以查试卷的各题得分吗 如何看到自己的考研试卷 考研成绩可以查各题得分吗 原神机关棋谭双风双岩队伍怎么玩_机关棋谭双风双岩队伍推荐 原神双风阵容怎么搭配 原神魈双风阵容怎么搭配-魈双风阵容搭配推荐 Java有发展潜力还是C#有发展潜力 兴智联和电信什么关系 玫瑰花酱做法二 武汉兴智联科技服务有限公司怎么样 C语言二叉树中序遍历问题 中序遍历二叉树(C语言) - 信息提示 约会大作战狂三第几季 动漫 狂三 去哪看,就是那个约会大作战。 约会大作战一共有多少番外篇? 约会大作战推出新外传,这么可爱的小狂三想不想抱回家 常德澧县的旅游结伴 凤凰 常德哪些地方适合春游? 河南 事业养老保险 事业养老保险查询系统 河南事业养老保险查询 请教七星漂怎么样调漂 家IPTV显示的是1901是什么情况? 我家IPTV现在显示的是1901是什么情况? 我女朋友的名字叫丹阳,请哪位好心人帮我起个网名,网名中有带丹或阳两个字的,吸引她的注意 求解蜜袋鼯胸前有个道子是怎么回事?会不会是自己爪子抓破了呢,有人说是公的,可是买的时候商家说是母的 蜜袋鼯走丢了念什么咒让它听到? 蜜袋鼯从笼子里跑了10个小时怎么办? 如何变异出白色的蜜袋鼯 C语言 关于二叉树的中序遍历问题 急急急!!今晚就要交 C语言中序遍历建立二叉树 有没有一款男士可以免费聊天的相亲软件啊 男士脸夹及嘴唇下面,毛孔粗大,而且毛孔处用手抚摩有突起感,能挤出白色有气味的物质和瞒虫。是什么原因 大专毕业生可以去英国的伦敦大学学院留学吗? 游戏名字女生沙雕可爱女生沙雕可爱游戏名字大全 大专生去英国留学问题 大专生可以申请英国留学吗? 专科生可以去英国留学吗 单眼皮女生的化妆技巧 小眼睛美眉如何打造大眼复古妆容 在北京每月用电14万度可以安装变压器吗? 为什么男生一和女生在一起就想要和他那个? 咱北京 马路边上的变压器一般都是多少千伏的? 北京变压器回收(北京回收变压器)北京变压器回收价格多少? 我自己喜欢了一个男生,他现在跟别的女生搞在一起了,我好想挽救啊,怎么办? 北京北二变变压器集团有限公司怎么样? 男生和一个女生在一起玩了很久 关系也很好 像铁哥们突然有一天他就给我写得不到的永远在*动 什么意思? 男生和女生在一起玩就不好吗? 男生和女生在一起过夜,会发生那个吗? 有谁知道北京电力设备总厂的情况!!!急急急急