Skip to content

P4

211275022
田昊东
5.9
(1)
  • 若树的深度为k,此时结点数目最少
  • \(2^{k-1}+m-1\)
  • 若树的深度为k+1,并且第k层的每个非叶结点都有两个子女,此时结点数目最多
  • \(2^k-1+(2^{k-1}-m)*2=2^{k+1}-2m-1\)
(2)
  • 深度计算公式为\(\lceil\log_2(n+1)\rceil\)
  • 深度范围\([\lceil\log_2(2^{k-1}+m-1)\rceil,\lceil\log_2(2^{k+1}-2m-1)\rceil]\)
  • 故可能的取值为\(k,k+1\)
5.16
(3)
  • 绘制为堆
  • image-20231102111111707
  • 有多处不满足最小堆的性质,如根节点为103大于左右子结点
  • 调整为最小堆
  • [06,12,20,23,30,38,42,52,56,55,97,103]
  • image-20231102112209894
(4)
  • 绘制为堆
  • image-20231102112332572
  • 有多处不满足最小堆的性质,如节点2为56大于左右子结点
  • 调整为最小堆
  • [05,23,20,35,28,38,29,61,56,76,40,100]
  • image-20231102112525274
5.20
  • image-20231102115328803

  • 字母 编码
    c1 0100
    c2 10
    c3 0000
    c4 0101
    c5 001
    c6 011
    c7 11
    c8 0001
  • 总码数为:\((3+4+5+6)*4+(10+11)*3+(25+36)*2=257\)

4
(1)
  • image-20231102174734719
(2)
  • 绘制二叉树T
  • image-20231102175045987
leftChild ltag data rtag rightChild
B 0 A 0 F
C 0 B 0 D
null 1 C 1 B
B 1 D 0 E
D 1 E 1 A
G 0 F 0 I
A 1 G 0 H
G 1 H 1 F
J 0 I 0 N
K 0 J 0 L
F 1 K 1 J
M 0 L 1 I
J 1 M 1 L
I 1 N 1 null
(5)
  • 由构造过程看,每次合并两个结点就会新增加一个节点,因此结点数目为\(n+n-1=2n-1\)
  • 最好的情况下构成一个满二叉树,深度为\(\log_2n+1\)
  • 最差情况下构成一条类似链的形状,除第一层外每层两个结点,深度为\(n\)
  • 故范围为\([log_2n+1,n]\)
(6)
  • 001->e
  • 011->f
  • 101->d
  • 100->a
  • 101->d
  • 0001->g
  • 100->a
  • 11->b
  • 001->e
  • 即结果为:efdadgabe