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==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创建二叉树(二维数据)相关推荐
- 二维数据输入到matlab cnn网络训练
如果是三维图片数据,需要另外的方法 matlab搭建cnn分类自己的图片数据 对于二维数据,数据结构也有一定的要求: 原始数据结构(未划分训练和测试): 划分数据集并改变维度: %% random s ...
- matlab画图总结——二维图plot函数、图形标注和坐标轴控制、饼图、条形图、排列图;三维图的绘制
Matlab画图总结 1. 二维数据曲线图 1.1 绘制二维曲线的基本函数 1.plot()函数 2. 含多个输入参数的plot函数 3. 含选项的plot函数 4. 双纵坐标函数plotyy 1.2 ...
- 二维数据热力图的绘制
热力图绘制 前言 解决思路及步骤 需要的软件工具 具体步骤 写在最后 前言 对于二维数据的分析,热力图是一个比较好的手段,通过填充的颜色能直观看出不同变量对结果的影响规律. 上图是横坐标代表pH值,纵 ...
- Matlab系列之二维图形(上)
Matlab系列之二维图形(上) 简要 绘制基础 plot 文字标注 (1) 添加图形标题 (2)添加坐标轴标注 (3)图例 (4)文本注释 示例 程序 结果 线型.点型和颜色 坐标轴设置 示例 结果 ...
- 基于MATLAB的条码二维码识别系统
基于MATLAB的条码二维码识别系统 课题介绍 本设计研究的是基于数字图像处理的EAN-13条形码识别算法,通过工具平台MATLAB实现.其中图像处理部分是条码识别重要的前期工作,利用MATLAB强大 ...
- Matlab系列之二维图形(下)
Matlab系列之二维图形(下) 交互式绘图 ginput gtext zoom 双坐标轴绘图 两个特殊的绘图指令 fplot ezplot 特殊绘图指令 1)对数坐标轴指令 示例1 结果1(仔细看图 ...
- 径向基函数插值(3)二维数据的插值
二维数据的插值过程跟一维数据的过程一样, 只不过在显示二维的数据插值的过程中,需要meshgrid函数产生数据,进行显示插入数据的输出值. 产生二维数据: clear all; figure; %** ...
- Deep learning:十一(PCA和whitening在二维数据中的练习)
前言: 这节主要是练习下PCA,PCA Whitening以及ZCA Whitening在2D数据上的使用,2D的数据集是45个数据点,每个数据点是2维的.参考的资料是:Exercise:PCA in ...
- matlab 如何画二维图形,Matlab 学习 画图篇 一 二维图形
matlab给绘制二维图形提供了很多的函数,把一些绘制二维图形的基本函数做成一张表,如下图所示: 我就按照表的顺序一一记录一些个函数的简略用法. 首先是 1.plot函数 plot函数有很多重载方法, ...
最新文章
- 管理 Active Directory 所必需的工具或技术
- oracle订阅推送,ERP一部推送 | Oracle优化技术分享
- Java JUC工具类--CountDownLatch
- DeepFaceLab报错,CUDA driver is insufficient 解决方法!
- 发布到服务器接口404_新版本永雾林渊周五来袭,404战队真的404了
- php date()时间不对,PHP DATE( )函数与系统时间差8小时解决办法
- python123第九周测验答案2020_脑筋急转弯:什么牛是最好骗的?这答案能笑死人...
- Codeforces Round #147 (Div. 2) E. Build String 最小费用最大流
- mysql 主命令总结
- L2-013. 红色警报
- 利用google网管工具,快速诊断网站(一)
- 基于Socket网络编程
- 1编写偏移量为3的凯撒密码大小写混合加密程序(50分)
- 深度学习--二值神经网络BNN基础概念学习总结+官方代码解析
- zabbix报警邮件qq邮箱收不到的问题
- mysql删除表数据及其关联数据_MYSQL中delete删除多表数据与删除关联数据
- 也谈说话这件事--《好好说话》读后感
- 一个小白的Thingworx成长记录
- 泛微Ecology9单点登录说明
- html语言hr ,HTML hr是什么意思?