有一种数据结构叫做树

 

计算机科学中,有一门基础课程叫做数据结构。它是专门研究现实世界中,物体之间的关系,以及这种关系在计算机中是如何存储的。通俗讲,就是把现实世界中物与物之间的关系弄到计算机里面去,只有弄进去了,才有可能通过计算机科学的方法研究它们。物与物相互之间的关系,就构成了一种结构。在计算机科学中,是用数据来表示物体的,因此,这种数字化了的物体之间的结构,又叫做数据的结构。

树,便是一种重要的数据结构。任何一本讲数据结构的著作,都会有一个完整的章节来讲树。这种结构一般如下图所示,
但是,按我的理解,应该是翻过来的。即,这样

为什么会有这种数据结构,现实生产生活中,肯定有类似的问题存在。比如,钻山洞,是溶洞那种山洞。

在洞中有很多分叉,在毎一个叉点,都有好几种去路供判断选择。但是,如果想退回洞口,就只有一条路可走。树,其实描述的就是这一类问题,去向有很多选择,但退回,只有一条路可走。因此,与其将这种数据结构叫做树,还不如叫做“洞”。

现实中,没有那么多洞可钻,也没那么多人爱钻洞。计算机科学这么重视这种结构,肯定有更广泛的存在。

是的,太广泛了,它其实描述的是人生。

在我们人的一生,或者截取任何一个片段。毎到一个节点,都有0,1或者若干种选择,但是如果回头望,我们走过的,却只有一条路径,这就是我们的经历。

比如,我的一个朋友,这些来在一些节点经历了选择。文理分科,选理科;高考专业,选择了医学;医学分支,选择了外科;外科科室,选了肝胆;工作,几大医院盛情邀请加盟,选择了东方肝胆。对于他来讲,他面对了很多个分叉,做出了好几次选择。但作为他人,或者客观来看,我们只会这么说,他读了理科,学了医,选了外科,修了肝胆,去了上海。只有这么一条路径。

正是因为树这种结构的广泛存在。计算机科学才会专门研究它。它不仅是一种描述,还有更深刻的启示。
那就是,一定要活在当下,站在当下的节点上,面对未来,做出最符合自己内心的选择。身后,只有一条固化的路径,前方,还大有可为。


在树的毎一个节点,无论是最下面的根节点,还是中间的任何一个节点,往前看,都是一模一样的。前方有分岔,分岔还有分岔……。也就是说,站在任何一个节点,往前看,以站立处为根节点,前方都是一棵树,没有任何区别。这种思想,产生了用递归来存储树的方法。反正没有区别,就用同样的方式来建立分岔好了,重复调用就可以了,这样,就节省了很多工作量。
在计算机科学中,递归的思想很重要。她对现实的指导意义,就在于,活在当下,每个时刻和节点,做出选择的重要性。

选择,没有对错。试问,谁来告诉我,什么是对的,什么是错的?没有,每个人都有自己的标准。所谓正确的选择,也即大多数人的标准而已。如果能追寻自己内心的声音,追求目标和实际利益的最大化,尽量在法律允许的范围内,合作共赢,不能共赢则将对他人的伤害控制在一个可以接受的范围内,做出顺应本心的选择。我认为,这就是一个很好的选择。这也仅仅是我的标准。

我们的前方,永远都是一棵树,在前方的前方,还是一颗树,站在前方的前方的前方,面前还是一颗树……。在身后,却是一条已经固化的路径,哎……。活在当下,立足当下,面对未来,做出选择,真的太重要。选择比努力,重要地多的多。选择之后,是否坚持自己选择,也是一种选择,好累啊。

无关紧要的选择,随心就好。在大的选择面前,要做出合适的选择,考察对比各种选择路径带来的价值是有必要的。这在计算科学中,属于算法的内容。所谓的算法,就是如何去做以达到目的的步骤和方法。这些步骤和方法,若想计算机能够识别和运作,要用编程语言来表示。这就是程序。所以,数据结构是很重要的,只有把现实中的物体与物体之间关系弄到计算机里面去了,才能让程序在上面跑。

希望每一个朋友在大多数节点,都能做出顺应自己内心的选择。

转载自知乎 https://zhuanlan.zhihu.com/p/25753710

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>