s=struct('parent',{'A','B','C','D','E','F','G'},'children',{'BC','DE','F','G','','',''})
function [nodesnum]=numofnodes(s,num,node)%s为树的结构体,node为子树的根节点
syms A
for i=1:size(s,2)
if isequal(s(i).parent,node)
t=i
end
end
if isempty(s(t).children)
num=num
else
A=s(t).children
num=size(A,2)+num
end
for j=1:size(A,2)
for k=t:size(s,2)
if isequal(s(k).parent,A(j))
numofnodes(s,num,s(k).parent)
end
end
end
上面的程序是求树的节点数,求高手给我看看为什么出来的结果不正确,谢谢大家啦!
------解决方案--------------------------------------------------------
楼主,你的数据结构不科学
像你这样的设计,完全可以用2个cell数组保存信息,用struct完全没有意义
例如:
- Python code
parent = {'A','B','C','D','E','F','G'};children = {'BC','DE','F','G','','',''};