matlab创建二叉树(二维数据)

更新时间:2023-07-14 08:29:27 阅读: 评论:0

matlab创建⼆叉树(⼆维数据)
⼀、学习要点
1.注意matlab中全局变量与局部变量的区别;本⽂中assigned_nn为局部变量,每⼀次递归中的值都是不⼀样的,node_nubmer为全局变量,当前值的改变如递增,必回影响以后每次递归中该变量的值;结点数据的保存是每次都要递增的,故选择全局变量。每个结点左右⼦树的值应为局部变量,因为回溯回去该节点的序号不应改变,⽐如求2号结点的左右⼦树,⽽且回溯回去的左右结点序号也不是按程序执⾏的次数递增。
2.当输⼊为数据为[-1,-1],意味着该分⽀数据不存在,即为空数据,该节点不存在,他⽗节点的对应的⼦树即为空。
3.该⼦树的创建为由键盘数据的⼆维数据先序构建⼆叉树。
4.matlab利⽤的是cell中的struct的序号建⽴整棵树,C语⾔中⼀般利⽤的是指针。
⼆、程序代码
1.创建⼆叉树的代码:
函数名:build_btree_parent2.m
function tree_out=build_btree_parent2(parent)
global node_number
global tree_cell
if nargin==0
parent=0;
end
fprintf('请输⼊数据:');
point(1)=input('请输⼊x轴坐标:');
point(2)=input('请输⼊y轴坐标:');
80个家常小炒if(impty(tree_cell))
手游天龙八部
node_number=1;
assigned_nn=1;
tree_cell(node_number).data=point;
tree_cell(node_number).parent=parent;
elif(point(1)==point(2)&&point(1)==-1)
地方的英语tree_out=[];
return;
el
node_number=node_number+1;
assigned_nn=node_number;
tree_cell(node_number).data=point;
衾何以堪小说
tree_cell(node_number).parent=parent;
end
fprintf('请输⼊[%d,%d]左⼦树数据\n',point(1),point(2));
tree_cell(assigned_nn).left=build_btree_parent2(assigned_nn);
fprintf('请输⼊[%d,%d]右⼦树数据\n',point(1),point(2));
tree_cell(assigned_nn).right=build_btree_parent2(assigned_nn);
护士读书笔记
tree_out=assigned_nn;
if assigned_nn==1
tree_out=tree_cell;
小丑简笔画end
2.调⽤的主函数:
函数名:main.m
clear all
global tree_cell四棱锥
tree_cell=[];
项羽tree_out=build_btree_parent2();
三、程序运⾏结果:
1.键盘输⼊:
2.程序运⾏结果:

本文发布于:2023-07-14 08:29:27,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1095829.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   结点   节点   回去   全局变量
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图