function [nodeids_,nodevalue_] = print_tree(tree)
%% 打印树,返回树的关系向量
global nodeid nodeids nodevalue;
nodeids(1)=0; % 根节点的值为0
nodeid=0;
nodevalue={};
if isempty(tree)
disp('空树!');
return ;
end
queue = queue_push([],tree);
while ~isempty(queue) % 队列不为空
[node,queue] = queue_pop(queue); % 出队列
visit(node,queue_curr_size(queue));
if ~strcmp(node.left,'null') % 左子树不为空
queue = queue_push(queue,node.left); % 进队
end
if ~strcmp(node.right,'null') % 左子树不为空
queue = queue_push(queue,node.right); % 进队
end
end
%% 返回 节点关系,用于treeplot画图
nodeids_=nodeids;
nodevalue_=nodevalue;
end
function visit(node,length_)
%% 访问node 节点,并把其设置值为nodeid的节点
global nodeid nodeids nodevalue;
if isleaf(node)
nodeid=nodeid+1;
函数:print_tree
最新推荐文章于 2024-09-20 21:14:37 发布
本文介绍了一个用于打印和绘制决策树的`print_tree`函数。该函数遍历树结构,采用队列进行节点处理,同时记录节点关系,便于使用`treeplot`画图。在函数中,还包括辅助函数`visit`来访问节点并判断是否为叶子节点,以及`isleaf`用于检查节点是否为叶节点。
订阅专栏 解锁全文
5211

被折叠的 条评论
为什么被折叠?



