ホームページ >バックエンド開発 >Python チュートリアル >Pythonでのバイナリツリートラバーサルの実装方法

Pythonでのバイナリツリートラバーサルの実装方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-16 08:46:111235ブラウズ

复制代码代码如下:

#!/usr/bin/python
# -*- コーディング: utf -8 -*-

class TreeNode(object):
def __init__(self,data=0,left=0,right=0):
self.data = data
self.left = left
self .right = 右


class BTree(object):
def __init__(self,root=0):
self.root = root

def is_empty(self):
self.root が 0 の場合:
return True
else:
return False

def preOrder(self,treenode):
treenode が 0 の場合:
return
printtreenode.data
self.preOrder(treenode.left)
self.preOrder(treenoで。右)

def inOrder(self,treenode):
treenode が 0 の場合:
return
self.inOrder(treenode.left)
printtreenode.data
self.inOrder(treenoで。右)

def postOrder(self,treenode):
ツリーノードが 0 の場合:
return
self.postOrder(treenode.left)
self.postOrder(treenode.right)
printtreeノード.data


n1 = TreeNode(data=1)
n2 = TreeNode(2,n1,0)
n3 = TreeNode(3)
n4 = TreeNode(4)
n5 = TreeNode(5,n3,n4)
n6 = TreeNode(6,n2,n5)
n7 = TreeNode(7,n6,0)
n8 = TreeNode(8)
root = TreeNode( 'ルート',n7,n8)

bt = BTree(root)
print 'preOrder....'
print bt.preOrder(bt.root)
print 'inOrder....'
print bt.inOrder(bt.root)
print 'postOrder....'
print bt.postOrder(bt.root)

結果:

preOrder....
root
7
6
2
1
5
3
4
8

inOrder......
1
2
6
3
5
4
7
root
8

postOrder....
1
2
3
4
5
6
7
8
root

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。