按指定月份序列构建二叉搜索树的方法及月份大小判定疑问
二叉搜索树构建步骤与月份大小判定
一、月份大小关系判定
要构建二叉搜索树,首先得明确月份的排序规则:直接用月份对应的**自然数字顺序(1-12)**判定大小,映射关系如下:
- JAN=1、FEB=2、MAR=3、APR=4、MAY=5、JUN=6
- JUL=7、AUG=8、SEP=9、OCT=10、NOV=11、DEC=12
对比两个月份时,只需看对应数字:数字小的月份视为“更小”,数字大的视为“更大”。
二、按顺序构建二叉搜索树的步骤
二叉搜索树核心规则:左子树所有节点值 < 根节点值;右子树所有节点值 > 根节点值,插入节点时按此规则逐层查找位置。以下是按给定顺序(JAN→MAR→JUN→FEB→JUL→MAY→APR→SEP→AUG→OCT→NOV→DEC)的构建过程:
- 插入JAN:作为树的根节点。
- 插入MAR:MAR(3) > JAN(1),成为JAN的右子节点。
- 插入JUN:JUN(6) > JAN→MAR,且JUN(6) > MAR(3),成为MAR的右子节点。
- 插入FEB:FEB(2) > JAN→MAR,且FEB(2) < MAR(3),成为MAR的左子节点。
- 插入JUL:JUL(7) > JAN→MAR→JUN,且JUL(7) > JUN(6),成为JUN的右子节点。
- 插入MAY:MAY(5) > JAN→MAR→JUN,且MAY(5) < JUN(6),成为JUN的左子节点。
- 插入APR:APR(4) > JAN→MAR→JUN→MAY,且APR(4) < MAY(5),成为MAY的左子节点。
- 插入SEP:SEP(9) > JAN→MAR→JUN→JUL,且SEP(9) > JUL(7),成为JUL的右子节点。
- 插入AUG:AUG(8) > JAN→MAR→JUN→JUL→SEP,且AUG(8) < SEP(9),成为SEP的左子节点。
- 插入OCT:OCT(10) > JAN→MAR→JUN→JUL→SEP,且OCT(10) > SEP(9),成为SEP的右子节点。
- 插入NOV:NOV(11) > JAN→MAR→JUN→JUL→SEP→OCT,且NOV(11) > OCT(10),成为OCT的右子节点。
- 插入DEC:DEC(12) > JAN→MAR→JUN→JUL→SEP→OCT→NOV,且DEC(12) > NOV(11),成为NOV的右子节点。
最终构建的二叉搜索树结构(层级展示):
JAN \ MAR / \ FEB JUN / \ MAY JUL / \ APR SEP / \ AUG OCT \ NOV \ DEC
内容的提问来源于stack exchange,提问作者Rohit Bhadra
相关产品推荐
相关产品推荐

