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);
|
}
|
}
|