matlab求树的节点数s=struct('parent',{'A','B','C','D','E


matlab求树的节点数
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
上面的程序是求树的节点数,求高手给我看看为什么出来的结果不正确,谢谢大家啦!

Web后端 Web开发 程序开发

Jueast 13 years, 4 months ago


楼主,你的数据结构不科学
像你这样的设计,完全可以用2个cell数组保存信息,用struct完全没有意义
例如:

  Python code

  parent = {'A','B','C','D','E','F','G'}; children = {'BC','DE','F','G','','',''};

一切为了后宫 answered 13 years, 4 months ago

Your Answer