From e801ff836ee27da8a3e3ed2e18460515bf093c8a Mon Sep 17 00:00:00 2001 From: herry <858570636@qq.com> Date: Mon, 12 Nov 2018 08:40:32 +0800 Subject: [PATCH 1/2] =?UTF-8?q?23=20|=20=E4=BA=8C=E5=8F=89=E6=A0=91?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=EF=BC=88=E4=B8=8A=EF=BC=89=EF=BC=9A=E4=BB=80?= =?UTF-8?q?=E4=B9=88=E6=A0=B7=E7=9A=84=E4=BA=8C=E5=8F=89=E6=A0=91=E9=80=82?= =?UTF-8?q?=E5=90=88=E7=94=A8=E6=95=B0=E7=BB=84=E6=9D=A5=E5=AD=98=E5=82=A8?= =?UTF-8?q?=EF=BC=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- algorithm/tree/__init__.py | 1 + algorithm/tree/btree.py | 57 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 algorithm/tree/__init__.py create mode 100644 algorithm/tree/btree.py diff --git a/algorithm/tree/__init__.py b/algorithm/tree/__init__.py new file mode 100644 index 0000000..d3f5a12 --- /dev/null +++ b/algorithm/tree/__init__.py @@ -0,0 +1 @@ + diff --git a/algorithm/tree/btree.py b/algorithm/tree/btree.py new file mode 100644 index 0000000..ec566a3 --- /dev/null +++ b/algorithm/tree/btree.py @@ -0,0 +1,57 @@ +class Tree(object): + def __init__(self, ltree=0, rtree=0, data=0): + self.data = data + self.ltree = ltree + self.rtree = rtree + + +class BTree(object): + def __init__(self, base=0): + self.base = base + + def pre_out(self, tree_base): + ''' + 前序遍历 + ''' + if tree_base == 0: + return + print(tree_base.data) + self.pre_out(tree_base.ltree) + self.pre_out(tree_base.rtree) + + def in_out(self, tree_base): + ''' + 中序遍历 + ''' + if tree_base == 0: + return + self.in_out(tree_base.ltree) + print(tree_base.data) + self.in_out(tree_base.rtree) + + def post_out(self, tree_base): + ''' + 后序遍历 + ''' + if tree_base == 0: + return + self.in_out(tree_base.ltree) + self.in_out(tree_base.rtree) + print(tree_base.data) + + +if __name__ == '__main__': + tree1 = Tree(data=1) + tree2 = Tree(data=2) + tree3 = Tree(tree1, data=3) + tree4 = Tree(tree2, 0, data=5) + base = Tree(tree3, tree4, 6) + btree = BTree(base) + + btree = BTree(base) + print("----pre_out----") + btree.pre_out(btree.base) + print("----in_out----") + btree.in_out(btree.base) + print("----post_out----") + btree.post_out(btree.base) From 6e02eb074dbba02b03fe3edad13ff4e77bf0c604 Mon Sep 17 00:00:00 2001 From: herry <858570636@qq.com> Date: Mon, 12 Nov 2018 22:46:44 +0800 Subject: [PATCH 2/2] =?UTF-8?q?23=20|=20=E4=BA=8C=E5=8F=89=E6=A0=91?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=EF=BC=88=E4=B8=8A=EF=BC=89=EF=BC=9A=E4=BB=80?= =?UTF-8?q?=E4=B9=88=E6=A0=B7=E7=9A=84=E4=BA=8C=E5=8F=89=E6=A0=91=E9=80=82?= =?UTF-8?q?=E5=90=88=E7=94=A8=E6=95=B0=E7=BB=84=E6=9D=A5=E5=AD=98=E5=82=A8?= =?UTF-8?q?=EF=BC=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- algorithm/tree/btree.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/algorithm/tree/btree.py b/algorithm/tree/btree.py index ec566a3..2261710 100644 --- a/algorithm/tree/btree.py +++ b/algorithm/tree/btree.py @@ -1,19 +1,19 @@ class Tree(object): - def __init__(self, ltree=0, rtree=0, data=0): + def __init__(self, ltree=None, rtree=None, data=None): self.data = data self.ltree = ltree self.rtree = rtree class BTree(object): - def __init__(self, base=0): + def __init__(self, base): self.base = base def pre_out(self, tree_base): ''' 前序遍历 ''' - if tree_base == 0: + if tree_base == None: return print(tree_base.data) self.pre_out(tree_base.ltree) @@ -23,7 +23,7 @@ def in_out(self, tree_base): ''' 中序遍历 ''' - if tree_base == 0: + if tree_base == None: return self.in_out(tree_base.ltree) print(tree_base.data) @@ -33,20 +33,22 @@ def post_out(self, tree_base): ''' 后序遍历 ''' - if tree_base == 0: + if tree_base == None: return - self.in_out(tree_base.ltree) self.in_out(tree_base.rtree) print(tree_base.data) + self.in_out(tree_base.ltree) if __name__ == '__main__': - tree1 = Tree(data=1) - tree2 = Tree(data=2) - tree3 = Tree(tree1, data=3) - tree4 = Tree(tree2, 0, data=5) - base = Tree(tree3, tree4, 6) - btree = BTree(base) + rtree2 = Tree(data=7) + ltree2 = Tree(data=6) + rtree = Tree(ltree=ltree2, rtree=rtree2, data=3) + + ltree1 = Tree(data=4) + rtree1 = Tree(data=5) + ltree = Tree(ltree=ltree1, rtree=rtree1, data=2) + base = Tree(ltree=ltree, rtree=rtree, data=1) btree = BTree(base) print("----pre_out----")