tree--树,最常见的复杂关系结构

昨天想用Python解析html文档,仔细研究了一下Html网页之后,发现所有html都是由xml标签组成的树结构。然后今天就总结一下常见的这种结构,原来树结构不只是在html网页中有,他遍布大自然。
下边例举几个例子:
1.细胞有丝分裂,
我们都知道植物与动物成长的过程其实就是细胞的分裂过程,人和植物其实质上是一样的,都是树形结构。由最初的受精卵,一直以二叉树的结构分裂开来,在这个分裂的过程中子细胞与父细胞开始出现了一些不同,他们在功能上开始出现了分工合作。但通过每一个子细胞,我们都可以找到最初的祖细胞信息,这就是都有相同的DNA,只是细胞在进行二叉树成长的过程中,他的一些DNA外部属性发生了变化。这些变化就像htm标签中的标签属性一样。
2.html文档结构
根标签<html> </html>-->body标签<body> </body>-->接来就是整个网页界面之间的关系标签。
3.家族族谱
以前小时候,听说那些地主和富人家里都是有家族族谱的。这种家族族谱的结构和html一样是同一种树形结构。
爷爷辈,父叔辈,兄弟辈,子女辈,孙子辈,重孙辈。。。等等,一个完美的树形结构,随然所有的人都来自祖辈,但在树中的每一个人都又是不同的,他们有不同的职业,不同的爱好。又与另一棵树进行杂交。
4.软件的界面
作客户端开发的人最常要打交道的东西就是用户界面,界面有场景中的父界面,在父界面中可能会再多出一个层,层中可能会有一张图片,图片中又有一个按钮。很多游戏中喜欢把所有的界面都叫作节点(node),父节点可以添加子节点,这样以树形一层一层的组成一棵界面树结构。
5.企业管理体系
董事长-->董事会成员-->部门经理-->岗位组长-->普通工人,等等,从上到下组成了一棵企业树。
6.金融体系
国际货币基金组织--->各国中央银行(美国是美联储,全世界最有权利的中央银行)--->各国的商业及国有银行--->企业贷款,企业负债,个人存款,个人负债--->企业股票证卷(与存款一样,也是一种债务)--->大股东--->散户.
金融体系,这里我想多说一下,这棵树是目前与我们生活最贴近的一棵体积最大的树,他是整个社会运行的基础,最少目前是这样的。 整个金融体系其实就是一种债务关系,是某些人或者组织对另一个组织的借贷关系。就是互相之间欠下的债。这种债关系组成了这棵金融树。
6.游戏中的人体骨骼动画
这也是组一级的动画传递,先是身体的根节点,这个节点一般是人体的臀部,然后是上身,腿,肩,头和手臂,手腕,手指等等,这种关系也是一种树形关系。
总结一下,说了这么多的树,他们有什么共同点呢:
1)所有子树及叶子节点都由最初的根结点控制。
 动物植物都是由最初的一个细胞分裂出来;
 所有的html子标签都包含在<html> </html>标签中.
 家族是由最祖辈的那一对人产生;
 软件界面由根场景层控制;
 企业由董事会控制;
 整个金融体系由国际货币基金组织控制;
人体骨骼动画由根骨骼控制。
这些祖节点是否存在则决定着子节点是否可以正常保持其之间关系的重点。但是,基本上所有的子节点都有向上查找其父节点的关系链,有的子节点还保存着祖节点的全部信息,像细胞。
2)这些树都可以使用我们软件中的list和map进行保存和查找。
我们可以建立一种结构,使得每一个子节点都可以保存整棵树的关系。这样在我们解析html文档,想设计一个网络爬虫时,就可以轻松从大量的html文档中找出我们所需要的内容,并同时找出和他有关系的html标签。
同样的,我们一旦知道了软件界面的树关系,我们就可以从这种结构中自动生成我们想要的软件设计代码树。所有的客户端开发将会实现自动化。
如果我们要玩金融,玩股票,就需要研究整个金融体系之间的债务关系,那么这棵金融树就正是我们想要的,他可以轻松帮我们搞定这个非常庞大和复杂的关系网,让我们从中找出规律。
在我们维护企业正常运行的过程中,企业树内部各个成员之间都有一定的关系,而我们这种树结构将帮助我们完善企业管理体系,使企业内部矛盾可以未卜先知。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值