R语言の二叉树
来源:互联网 发布:js绘制流程图的插件 编辑:程序博客网 时间:2024/06/05 08:12
#类:BinaryTree#功能:二叉树,左子树小于根节点,右子树大于根节点#思路:printTree():打印树 newTree():创建空树 insertTree()插入树newTree<-function(root,size)#root:根节点的值 size:树的大小{tree<-matrix(rep(NA,size*3),nrow=size,ncol=3);#矩阵二叉树,NA值填充,第1列:左树 第2列:右树 第3列:值tree[1,3]<-root;#根节点的值写入return(list(tree_matrix=tree,tree_next=2,tree_size=size));#返回树,下一个节点编号,树的大小}insertTree<-function(node,tree,value)#node:根节点 tree:树 value:插入值{#判断插入的左右树位置left_right<-ifelse(value<=tree$tree_matrix[node,3],1,2);#判断root节点的左右树是否为空if(is.na(tree$tree_matrix[node,left_right])){#矩阵不够用了,加点儿if(tree$tree_next==nrow(tree$tree_matrix)+1){tree$tree_matrix<-rbind(tree$tree_matrix,matrix(rep(NA,tree$tree_size*3),nrow=tree$tree_size,ncol=3));}#插入树tree$tree_matrix[node,left_right]<-tree$tree_next;#修改根节点的左右树记录tree$tree_matrix[tree$tree_next,3]<-value;#修改子树的值tree$tree_next<-tree$tree_next+1;#下一树的序号递增return(tree);#返回树}else tr<-insertTree(tree$tree_matrix[node,left_right],tree,value) #在子树上递归}printTree<-function(node,tree){#左子树left<-tree$tree_matrix[node,1];if(!is.na(left))#左子树非空{printTree(left,tree);#递归打印}cat(tree$tree_matrix[node,3],"\n");#右子树right<-tree$tree_matrix[node,2];if(!is.na(right))#左子树非空{printTree(right,tree);}}
0 0
- R语言の二叉树
- R语言の云图
- R语言树模型
- R语言の快速排序
- R语言の文本分析
- C语言 二叉树
- c语言 二叉树
- 二叉树(C语言)
- c语言二叉树
- C语言 二叉树
- 二叉树-C语言
- 二叉树C语言
- R语言
- R语言
- R语言
- R语言
- R语言
- R语言
- PHP数组遍历差异(array_diff的实现)
- 开始
- 登陆成功后返回前一个页面
- 音乐缓存问题的解析
- iOS怎样导出IPA包
- R语言の二叉树
- (一)为Android系统编写Linux内核驱动程序HelloWorld
- MCNearbyServiceBrowser
- Android常用代码段
- ajax--无ajax做到无刷新
- Java并发编程:线程池的使用
- c++多重继承
- 钱咖下载,钱咖二维码下载
- jquery学习总结