在现实世界,我们无时无刻要感受到图和树的关系。
图,是数学和逻辑上的一个概念:在图论中,图代表着不同物体之间的关系;在图里,不同物体可以和其他物体彻底没有关系,也可以有很复杂的关系。在图里,整个世界和逻辑都是混沌的;在图里,我们通常只能获得一个混沌的世界和关系。
而树,则是数学和逻辑上这样的概念:每一个数,原则上只有一个最起始的节点(如果是空树则没有任何节点);任何节点都最多有一个父节点;根朝上,叶朝下。典型的树如图所示:
由于树是由一个父节点出发,构建出逐层的关系;逐层出发,整个物体和整个世界,逻辑关系,变得清晰。
我们认识世界和学习知识,很重要的方面是让图变为树,如果图变成了树,那么你会发现,你对物体的认识,将是如此的清晰、简单和明了。
在科学史上,有一个经典的图变树的例子:历史上的人们,从来都在用不同方式认识宇宙;宇宙里的星星和各种天体纷繁复杂,人们无法确定各种星星的关系。直到有一天,有个叫哥白尼的人,提出了日心说——以太阳为中心的恒星,围绕着不同的行星,包括地球。
这本质就是一个图变树的过程:以太阳为父节点,各大行星为子几点,然后,构建了一个太阳系的树;随后,整个宇宙的树得以清晰显示。
与这个相似的,很多科学的知识,形成体系,也是一个混沌的图变成逻辑分明的树的过程。
进行程序设计,好友UI界面显示,也是个图变树的过程。
在讲完正题之后,我也啰里啰嗦再讲一个话题:XML语言。
有人问我XML语言的本质是什么,我回答:XML语言本质上就是个树。
在XML语言里,有父节点,有子节;通过这一系列节点,可以分别得出不同节点的关系。由于XML语言的特性,所以,才可以方便的扩展和运用。
附:典型的XML语言如下:
<?xml version="1.0" encoding="UTF-8"?> <recipe> <recipename>Ice Cream Sundae</recipename> <ingredlist> <listitem> <quantity>3</quantity> <itemdescription>chocolate syrup or chocolate fudge</itemdescription> </listitem> <listitem> <quantity>1</quantity> <itemdescription>nuts</itemdescription> </listitem> <listitem> <quantity>1</quantity> <itemdescription>cherry</itemdescription> </listitem> </ingredlist> <preptime>5 minutes</preptime> </recipe>