1700468760
1700468761
public Corp getParent(){
1700468762
1700468763
return this.parent;
1700468764
1700468765
}
1700468766
1700468767
}
1700468768
1700468769
就增加了粗体部分,然后我们再来看看树枝节点的改变,如代码清单21-26所示。
1700468770
1700468771
代码清单21-26 树枝构件
1700468772
1700468773
public class Branch extends Corp{
1700468774
1700468775
//领导下边有那些下级领导和小兵
1700468776
1700468777
ArrayList<Corp>subordinateList=new ArrayList<Corp>();
1700468778
1700468779
//构造函数是必须的
1700468780
1700468781
public Branch(String_name,String_position,int_salary){
1700468782
1700468783
super(_name,_position,_salary);
1700468784
1700468785
}
1700468786
1700468787
//增加一个下属,可能是小头目,也可能是个小兵
1700468788
1700468789
public void addSubordinate(Corp corp){
1700468790
1700468791
corp.setParent(this);//设置父节点
1700468792
1700468793
this.subordinateList.add(corp);
1700468794
1700468795
}
1700468796
1700468797
//我有哪些下属
1700468798
1700468799
public ArrayList<Corp>getSubordinate(){
1700468800
1700468801
return this.subordinateList;
1700468802
1700468803
}
1700468804
1700468805
}
1700468806
1700468807
增加了粗体部分。看懂程序了吗?甭管是树枝节点还是树叶节点,在每个节点都增加了一个属性:父节点对象,这样在树枝节点增加子节点或叶子节点是设置父节点,然后你看整棵树除了根节点外每个节点都有一个父节点,剩下的事情还不好处理吗?每个节点上都有父节点了,你要往上找,那就找呗!大家自己考虑一下,写个find方法,然后一步一步往上找,非常简单的方法,这里就不再赘述。
1700468808
1700468809
有了这个parent属性,什么后序遍历(从下往上找)、中序遍历(从中间某个环节往上或往下遍历)都解决了,这个就不多说了。
[
上一页 ]
[ :1.70046876e+09 ]
[
下一页 ]