# 代码风格

  • 不甚了解是不能更了解的意思,这个地方应该使用存疑。
  • 后期在不断优化,'在'应为'再'。
  • googlec++编程规范,Google拼写错误

# 代码本地编译

  • 粘到本例来运行存疑,应为本地
  • 本题运行存疑,应为本地

# ACM二叉树

  • 左孩子和右孩子的下标不太好理解。我给出证明过程:

    如果父节点在第k层,第$m,m \in [0,2^k]$个节点,则其左孩子所在的位置必然为$k+1$层,第$2*(m-1)+1$个节点。

    • 计算父节点在数组中的索引: $$ index_{father}=(\sum_{i=0}^{i=k-1}2^i)+m-1=2^k-1+m-1 $$

    • 计算左子节点在数组的索引: $$ index_{left}=(\sum_{i=0}^{i=k}2^i)+2*m-1-1=2^{k+1}+2m-3 $$

    • 故左孩子的下标为$index_{left}=index_{father}\times2+1$,同理可得到右子孩子的索引关系。也可以直接在左子孩子的基础上+1

上次更新:: 8/22/2024, 9:07:28 PM
@2021-2025 代码随想录 版权所有 粤ICP备19156078号