请问要怎么解决根节点表意不清的问题,老师说如果两个根节点元素相同就会出错
private BinaryNode<T>create(T prelist[],T inlist[],int start,int end,int instart,int inend)
{
if(start>end||instart>inend)
return null;
else
{
int i;
for(i=instart;i<inend;i++)
{
T l1=inlist[i],l2=prelist[start];
if(inlist[i].equals(prelist[start]))
break;
}
BinaryNode<T> p=new BinaryNode<T>(prelist[start]);
p.left=create(prelist,inlist,start+1,start+i-instart,instart,i-1);
p.right=create(prelist,inlist,start+i-instart+1,end,i+1,inend);
return p;
}
}
设断点调试下
嗯……我知道哪里不行,不会改
@小鸭子嘻嘻哈哈: 两个根节点元素相同是啥意思,一棵树不是只有一个跟节点吗?
@小鸭子嘻嘻哈哈: 我猜测你是不知道怎么处理和父节点的值一样的值怎么插入到树中,对吧?有3中方法,第一是丢弃(或替换),第二是插入到左子节点,第三插入右子节点,根据需求选择一种方案好了。
@会长: 是构造一根二叉树 没办法丢弃,也不是插入
@小鸭子嘻嘻哈哈: 不丢弃,不插入,那要怎么办?????
@会长: 老师说用什么广义,深义的
@小鸭子嘻嘻哈哈: 不太清楚
@会长: 蟹蟹了
@小鸭子嘻嘻哈哈: 你老师说的是“广度优先”和“深度优先”吧?
@会长: 好像是
@会长: 应该是广义表
@小鸭子嘻嘻哈哈: 赞