一、学习要点
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==0parent=0;
end
fprintf('请输入数据:');
point(1)=input('请输入x轴坐标:');
point(2)=input('请输入y轴坐标:');
if(isempty(tree_cell))node_number=1;assigned_nn=1;tree_cell(node_number).data=point;tree_cell(node_number).parent=parent;
elseif(point(1)==point(2)&&point(1)==-1)tree_out=[];return;
elsenode_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==1tree_out=tree_cell;
end

2.调用的主函数:
函数名:main.m

clear all
global tree_cell
tree_cell=[];
tree_out=build_btree_parent2();

三、程序运行结果:
1.键盘输入:


2.程序运行结果:

matlab创建二叉树(二维数据)相关推荐

  1. 二维数据输入到matlab cnn网络训练

    如果是三维图片数据,需要另外的方法 matlab搭建cnn分类自己的图片数据 对于二维数据,数据结构也有一定的要求: 原始数据结构(未划分训练和测试): 划分数据集并改变维度: %% random s ...

  2. matlab画图总结——二维图plot函数、图形标注和坐标轴控制、饼图、条形图、排列图;三维图的绘制

    Matlab画图总结 1. 二维数据曲线图 1.1 绘制二维曲线的基本函数 1.plot()函数 2. 含多个输入参数的plot函数 3. 含选项的plot函数 4. 双纵坐标函数plotyy 1.2 ...

  3. 二维数据热力图的绘制

    热力图绘制 前言 解决思路及步骤 需要的软件工具 具体步骤 写在最后 前言 对于二维数据的分析,热力图是一个比较好的手段,通过填充的颜色能直观看出不同变量对结果的影响规律. 上图是横坐标代表pH值,纵 ...

  4. Matlab系列之二维图形(上)

    Matlab系列之二维图形(上) 简要 绘制基础 plot 文字标注 (1) 添加图形标题 (2)添加坐标轴标注 (3)图例 (4)文本注释 示例 程序 结果 线型.点型和颜色 坐标轴设置 示例 结果 ...

  5. 基于MATLAB的条码二维码识别系统

    基于MATLAB的条码二维码识别系统 课题介绍 本设计研究的是基于数字图像处理的EAN-13条形码识别算法,通过工具平台MATLAB实现.其中图像处理部分是条码识别重要的前期工作,利用MATLAB强大 ...

  6. Matlab系列之二维图形(下)

    Matlab系列之二维图形(下) 交互式绘图 ginput gtext zoom 双坐标轴绘图 两个特殊的绘图指令 fplot ezplot 特殊绘图指令 1)对数坐标轴指令 示例1 结果1(仔细看图 ...

  7. 径向基函数插值(3)二维数据的插值

    二维数据的插值过程跟一维数据的过程一样, 只不过在显示二维的数据插值的过程中,需要meshgrid函数产生数据,进行显示插入数据的输出值. 产生二维数据: clear all; figure; %** ...

  8. Deep learning:十一(PCA和whitening在二维数据中的练习)

    前言: 这节主要是练习下PCA,PCA Whitening以及ZCA Whitening在2D数据上的使用,2D的数据集是45个数据点,每个数据点是2维的.参考的资料是:Exercise:PCA in ...

  9. matlab 如何画二维图形,Matlab 学习 画图篇 一 二维图形

    matlab给绘制二维图形提供了很多的函数,把一些绘制二维图形的基本函数做成一张表,如下图所示: 我就按照表的顺序一一记录一些个函数的简略用法. 首先是 1.plot函数 plot函数有很多重载方法, ...

最新文章

  1. 管理 Active Directory 所必需的工具或技术
  2. oracle订阅推送,ERP一部推送 | Oracle优化技术分享
  3. Java JUC工具类--CountDownLatch
  4. DeepFaceLab报错,CUDA driver is insufficient 解决方法!
  5. 发布到服务器接口404_新版本永雾林渊周五来袭,404战队真的404了
  6. php date()时间不对,PHP DATE( )函数与系统时间差8小时解决办法
  7. python123第九周测验答案2020_脑筋急转弯:什么牛是最好骗的?这答案能笑死人...
  8. Codeforces Round #147 (Div. 2) E. Build String 最小费用最大流
  9. mysql 主命令总结
  10. L2-013. 红色警报
  11. 利用google网管工具,快速诊断网站(一)
  12. 基于Socket网络编程
  13. 1编写偏移量为3的凯撒密码大小写混合加密程序(50分)
  14. 深度学习--二值神经网络BNN基础概念学习总结+官方代码解析
  15. zabbix报警邮件qq邮箱收不到的问题
  16. mysql删除表数据及其关联数据_MYSQL中delete删除多表数据与删除关联数据
  17. 也谈说话这件事--《好好说话》读后感
  18. 一个小白的Thingworx成长记录
  19. 泛微Ecology9单点登录说明
  20. html语言hr ,HTML hr是什么意思?

热门文章

  1. GDCM:gdcm::Codec的测试程序
  2. Boost:异步操作,涉及重新打包多个操作,但选择仅调用其中一个的测试程序
  3. VTK:图表之RandomGraphSource
  4. VTK:几何对象之Planes
  5. OpenCV在图像中寻找轮廓
  6. C语言实现interpolation search插值查找算法(附完整源码)
  7. QT的QAudioProbe类的使用
  8. C语言求最大公约数3种方法
  9. 「Caffe」python版本caffe编译
  10. 19、20_散点图、连接散点图、气泡图、不同颜色的散点图、直方图