Esempio n. 1
0
 public void addChild(Node<T> child) {
   this.children.add(child);
   this.descendants.add(child);
   this.descendants.addAll(child.descendants);
   // 通知所有上级增加dept
   informParentAdd(child);
   // 更新dept的上级节点列表
   child.updateParentAdd(this);
 }
Esempio n. 2
0
 /**
  * 移除一个节点
  *
  * @param child
  */
 public void removeChild(Node<T> child) {
   // 直属上级移除子列表
   this.children.remove(child);
   // 直属上级移除子孙列表
   this.descendants.remove(child);
   this.descendants.removeAll(child.descendants);
   // 在祖先节点的子孙节点列表中移除dept
   informParentRemove(child);
   // 在dept的祖先节点列表中移除当前节点
   child.updateParentRemove(this);
 }