上一篇blog主要简述了树、二叉树相关的定义和类型。
其中一个很重要、很基础的概念就是节点的度。大家有没有想过,为什么要用“度”作为子节点个数的量化单位呢?按理说,如果是子节点个数,用“子”或者“孩”岂不是更好理解?
那这里要想到,计算机整个体系实际上是一种舶来品,我们需要参照原体系中的定义来进行翻译。所以,我找了一些关于树相关的数据结构的出处,但这个“度”其实就是直白地用degree进行了翻译。
是不是degree有一些什么特殊的含义,能够用来表示近似子嗣的概念呢?于是我去查了degree的英文释义,但没有什么收获,基本的含义都是表示“程度”。
在各种查询之后,发现图论中也有“度”这个概念。但与数据结构中树用“度”来表示子节点个数不同,这里的“度”是用来表示节点所连接边的条数,而在有向图中,还有“入度”与“出度”的概念。仔细想想,如果把树结构,连接各个点的边,都从上到下设置为有向,那么数据结构中的“度”与有向图中的“出度”就是相同的了。所以,查到这里我觉得两者应该是同源的。
那么,图论中为什么用度来定义相关的属性呢?来源自哪里?只能继续Google咯.. 在一篇介绍“有限元分析”中的基本概念时,我看到了一些熟悉的词汇:链接
这里的node,element,degree,boundary都是图论中的重要基础概念。其中对于degree的表述这里用到了degree of freedom。虽然不确定有限元分析与图论的准确关系,但是至少,两者是非常紧密的。
看到这里,我好像有点明白了。节点处与外界相连的边,其实就是这个节点能够到其它节点的可能的路径,边越多,路越多,可能性就越多,说自由度更高也就能理解了。图论中还有专门的主题讨论节点这种自由度的分布问题。这里我就大胆臆测,图论中的“度”,其实就是degree of freedom。
在树这种结构中,接触到度这个概念,还特意地要去强调,度指的是子节点的个数,不包含子节点的子节点在内。但是理解到了自由度这个层面上,也就不会有将子节点的边数计算在内的想法了。
-----------------------------------------------------------------------
关于一些基础的,很重要的概念追根溯源,我个人觉得还是很重要。本身如果你心存疑问,就说明多多少少,这种概念和自己的理解是有冲突的,有了冲突如果不去解决,那么我们会本能地把它排斥、遗忘。如果想要内化这些概念,我觉得只有找到它的根源。
很多人会觉得,这只是文字游戏,我们只需要了解真正技术的原理就好了。我认为这样的观点还是太功利了,如果说要想在计算机这个行业走得远、走得稳、走得快乐,那我觉得只要是自己有疑问的地方,都要积极地去探索,而不单单是那些关键技术。正是这些探索伴随着思考,才能给我们带来真正的收获感,同时让我们对于一些概念、原理掌握地更好,可以说对于一些基础性的知识,我们真的需要这份闲情逸致来慢慢地思考,才能够达到真正的吸收和掌握。如果不去思考一些有趣的问题,单纯背八股又有什么乐趣呢?