代码风格
不甚了解
是不能更了解的意思,这个地方应该使用存疑。后期在不断优化
,’在’应为’再’。googlec++编程规范
,Google拼写错误
代码本地编译
粘到本例来运行
存疑,应为本地本题运行
存疑,应为本地
ACM二叉树
左孩子和右孩子的下标不太好理解。我给出证明过程:
如果父节点在第层,第个节点,则其左孩子所在的位置必然为层,第%2B1#card=math&code=2%2A%28m-1%29%2B1)个节点。- 计算父节点在数组中的索引: %2Bm-1%3D2%5Ek-1%2Bm-1%0A#card=math&code=index%7Bfather%7D%3D%28%5Csum%7Bi%3D0%7D%5E%7Bi%3Dk-1%7D2%5Ei%29%2Bm-1%3D2%5Ek-1%2Bm-1%0A)
- 计算左子节点在数组的索引: %2B2*m-1-1%3D2%5E%7Bk%2B1%7D%2B2m-3%0A#card=math&code=index%7Bleft%7D%3D%28%5Csum%7Bi%3D0%7D%5E%7Bi%3Dk%7D2%5Ei%29%2B2%2Am-1-1%3D2%5E%7Bk%2B1%7D%2B2m-3%0A)
- 故左孩子的下表为,同理可得到右子孩子的索引关系。也可以直接在左子孩子的基础上
+1
。