引例
在介绍之前我们先来看一个例子,是关于公司的人事管理系统的:
这是一个典型的树形结构,那么我们怎么才能用代码表示他呢?
分析:
总共有两种不同性质的节点:
无分支的节点:
那这么说,定义三个类不就行了,如下图:
那我们就按照这个类图实现一下代码:
首先是 根节点接口 :
/*** 根节点接口** @author wang suo* @version 1.0* @date 2020/12/21 0021 22:36*/public interface IRoot {/*** 得到总经理的信息** @return 返回信息*/String getInfo();/*** 总经理下边要有小兵-要能增加小兵-比如研发经理-这是树枝节点** @param iBranch 有分支的节点*/void add(IBranch iBranch);/*** 增加树叶节点的方法** @param iLeaf 叶子节点*/void add(ILeaf iLeaf);/*** 还要能进行遍历-不可能总经理不知道他收下有多少人** @return 返回所有手下的[集合]*/List getSubordinateInfo();}
根节点接口的 实现类 ,就是我们这里的总经理:
/*** 根节点的实现类** @Author wang suo* @Date 2020/12/22 0022 11:03* @Version 1.0*/public class Root implements IRoot {/*** 保存根节点下的所有树枝节点和树叶节点*/private List