declare class TreeNode { private key; private value; /** * 初始高度 */ private height; /** * 父节点 */ private parent; /** * 左子节点 */ private left; /** * 右子节点 */ private right; constructor(key: K, value: V); getKey(): K; setKey(key: K): void; getValue(): V; setValue(value: V): void; /** * 是否有左子节点 */ hasLeft(): boolean; hasRight(): boolean; getLeft(): TreeNode | null; getRight(): TreeNode | null; setLeft(left: TreeNode | null): void; setRight(right: TreeNode | null): void; getParent(): TreeNode | null; setParent(parent: TreeNode): void; hasParent(): boolean; /** * 是否是根节点 */ isRoot(): boolean; /** * 是否是叶节点 */ isLeaf(): boolean; /** * 左旋 */ rotateLeft(): void; /** * 右旋 */ rotateRight(): void; /** * 1. 左子节点左旋 * 2. 当前节点右旋 */ rotateLeftRight(): void; /** * 1. 右子节点右旋 * 2. 当前节点左旋 */ rotateRightLeft(): void; /** * 做节点高度 */ getLeftHeight(): number; /** * 右节点高度 */ getRightHeight(): number; /** * 获取自身高度 */ getHeight(): number; /** * 根据子节点更新自身高度 */ updateHeight(): void; /** * 获取高度差 */ getBalance(): number; isBalanced(): boolean; isLeftChild(): boolean; isRightChild(): boolean; } export default TreeNode;