Python图结构-树的实现

来源:互联网 发布:淘宝网店装修策略 编辑:程序博客网 时间:2024/06/05 18:11

在一般情况下,但凡可以用来表示图的方法通常都可以用来表示树,因为树本身就是图的一种特殊情况。

大部分树算法都可以被理解成一般图概念中的思路,但特定的树结构会使得它们更容易实现。

例子:


带根的树结构,这种树的每条边都从根出发,并向下方延伸,此类结构往往代表的是某个数据集所拥有的层次结构,其根结点代表着全部对象。而其内部各节点所代表的对象都是以该节点为根的树结构的叶结点。我们可以将其各个子树组织成一个子树列表。

 我们可以将上图中的树表示成一个二维列表。

>>> T=[['a','b'],['c'],['d',['e','f']]]>>> T[0][1]'b'>>> T[2][1][0]'e'>>> 
二叉树类:

>>> class Tree:def __init__(self,left,right):self.left=leftself.right=right>>> t=Tree(Tree('a','b'),Tree('c','d'))>>> t.right.left'c'

多搜索树类:

“先子节点,后兄弟节点”


>>> class Tree:def __init__(self,kids,next=None):self.kids=self.val=kidsself.next=next>>> t=Tree(Tree('a',Tree('b',Tree('c',Tree('d')))))>>> t.kids.next.next.val'c'