数据结构定义中的中(大陆地区)美差异
这篇讲的是一个挺有意思的技术概念“撞车”现象:作者在和一位清华博士讨论数据结构的选择题时,发现自己按国内教材理解的答案和标准答案大相径庭。一查权威资料才发现,原来“满二叉树”、“完全二叉树”这些基本概念,中国大陆教材的定义和美国及国际通行定义存在系统性差异。 文章核心对比了三个概念。最典型的是“满二叉树”:国内严蔚敏版教材定义为“深度为k且有2^k-1个节点的二叉树”,即每一层都完全填满;而美国NIST的定义(对应full binary tree)则是“每个节点要么是叶子,要么有两个孩子”。两者描述的结构截然不同。对于“完全二叉树”,中美定义在“最后一层节点尽可能靠左”这一点上达成了一致。另外,美国定义中的“perfect binary tree”实际上就是国内教材所说的满二叉树,只是国内很少单独提出这个术语。 作者借此指出,国内考研、等级考试广泛采用的定义与国际标准存在偏差,建议读者在学习数据结构时,多参考英文原版教材以避免概念混淆。