1.树的双亲表示法
前面我们聊得都是二叉树,今天我们来讨论一下如何去表示一棵普通的树。常用的表示方法有三种:双亲表示法、孩子表示法和孩子兄弟表示法。我们首先来聊一下双亲表示法,顾名思义,双亲表示法就是在每一个节点中,存储其父节点的下标。这样就可以将树中各节点的结构关系表示出来,也可以快速的对父节点进行访问。
如下图所示我们将一棵普通的树,用图二中的列表形式进行存储。
具体的python实现代码,如下所示(个人手写,不喜勿怪):
#-*- coding:utf-8 -*-
class Node:
def __init__(self,val,parent):
self.val = val
self.parent = parent
class tree:
def __init__(self):
self._array = []
def addNode(self,val,parent):
node = Node(val,parent)
self._array.append(node)
def show(self):
for i,v in enumerate(self._array):
print('节点下标为 = {} 值为 = {} 父节点下标为{}'.format(i,v.val,v.parent))
def findparent(self,node):
return self._array[node.parent]
tree = tree()
tree.addNode('R',-1)
tree.addNode('A',0)
tree.addNode('B',0)
tree.addNode('C',0)
tree.addNode('D',1)
tree.addNode('E',1)
tree.addNode(