打字猴:1.700468766e+09
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属性,什么后序遍历(从下往上找)、中序遍历(从中间某个环节往上或往下遍历)都解决了,这个就不多说了。
1700468810
1700468811 再提一个问题,树叶节点和树枝节点是有顺序的,你不能乱排,怎么办?比如我们上面的例子,研发一组下边有3个成员,这3个成员要进行排序(在机关里这叫做排位,同样是同事也有个先后升迁顺序),你怎么处理?问我呀,问你呢,好好想想,以后用得着的!
1700468812
1700468813
1700468814
1700468815
[ 上一页 ]  [ :1.700468766e+09 ]  [ 下一页 ]