Box Trace (基于递归插入)
- 插入 Jan
- 当前树为空,创建 Jan 作为根节点。
- 插入 Feb
- Feb < Jan,递归到 Jan 的左子树。
- Jan 的左子树为空,将 Feb 作为 Jan 的左子节点。
- 插入 Mar
- Mar > Jan,递归到 Jan 的右子树。
- Jan 的右子树为空,将 Mar 作为 Jan 的右子节点。
- 插入 Apr
- Apr < Jan,递归到 Jan 的左子树。
- Apr < Feb,递归到 Feb 的左子树。
- Feb 的左子树为空,将 Apr 作为 Feb 的左子节点。
- 插入 May
- May > Jan,递归到 Jan 的右子树。
- May > Mar,递归到 Mar 的右子树。
- Mar 的右子树为空,将 May 作为 Mar 的右子节点。
- 插入 Jun
- Jun > Jan,递归到 Jan 的右子树。
- Jun < Mar,递归到 Mar 的左子树。
- Mar 的左子树为空,将 Jun 作为 Mar 的左子节点。
- 插入 Jul
- Jul > Jan,递归到 Jan 的右子树。
- Jul < Mar,递归到 Mar 的左子树。
- Jul < Jun,递归到 Jun 的左子树。
- Jun 的左子树为空,将 Jul 作为 Jun 的左子节点。
- 插入 Aug
- Aug < Jan,递归到 Jan 的左子树。
- Aug < Feb,递归到 Feb 的左子树。
- Aug > Apr,递归到 Apr 的右子树。
- Apr 的右子树为空,将 Aug 作为 Apr 的右子节点。
- 插入 Sep
- Sep > Jan,递归到 Jan 的右子树。
- Sep > Mar,递归到 Mar 的右子树。
- Sep > May,递归到 May 的右子树。
- May 的右子树为空,将 Sep 作为 May 的右子节点。
- 插入 Oct
- Oct > Jan,递归到 Jan 的右子树。
- Oct > Mar,递归到 Mar 的右子树。
- Oct > May,递归到 May 的右子树。
- Oct < Sep,递归到 Sep 的左子树。
- Sep 的左子树为空,将 Oct 作为 Sep 的左子节点。
- 插入 Nov
- Nov > Jan,递归到 Jan 的右子树。
- Nov > Mar,递归到 Mar 的右子树。
- Nov > May,递归到 May 的右子树。
- Nov < Sep,递归到 Sep 的左子树。
- Nov < Oct,递归到 Oct 的左子树。
- Oct 的左子树为空,将 Nov 作为 Oct 的左子节点。
- 插入 Dec
- Dec < Jan,递归到 Jan 的左子树。
- Dec < Feb,递归到 Feb 的左子树。
- Dec > Apr,递归到 Apr 的右子树。
- Dec > Aug,递归到 Aug 的右子树。
- Aug 的右子树为空,将 Dec 作为 Aug 的右子节点。
通过以上步骤,构建的 BST 结构如下:
