package cc.mrbird.febs.tree; /** * @author wzy * @date 2022-08-23 **/ public class MatrixTree { // 节点数量 private int count = 0; private MemberNode root; public MatrixTree() {} public MatrixTree(MemberNode root) { count = 1; this.root = root; } public int getCount() { return count; } /** * 查找整个树下对应节点 * @param param memberId/address/inviteId * @return */ public MemberNode getNode(Object param) { return getNode(root, param); } /** * 查找某节点下的对应节点 * * @param node 某节点 * @param param memberId/address/inviteId * @return */ public MemberNode getNode(MemberNode node, Object param) { if (node == null) { return null; } if (node.getMemberId().equals(param) || node.getAddress().equals(param) || node.getInviteId().equals(param)) { return node; } MemberNode leftNode = getNode(node.getLeft(), param); if (leftNode != null) { return leftNode; } return getNode(node.getRight(), param); } }