ホームページ  >  記事  >  バックエンド開発  >  Python を使用してツリー トラバーサル アルゴリズムとツリー トラバーサルの種類を実装する

Python を使用してツリー トラバーサル アルゴリズムとツリー トラバーサルの種類を実装する

王林
王林転載
2024-01-22 21:03:23742ブラウズ

树遍历意味着访问树中的每个节点。和线性数据结构单一的遍历方式不同,二叉树是分层式数据结构可以以不同的方式遍历。

树遍历结构和类型 Python实现树遍历

树遍历结构特点

1、每个树的节点都承载一个数据

2、每个树下都有2个子树

树遍历结构和类型 Python实现树遍历

树遍历有三种类型

1、中序遍历

先遍历左子树所有节点,在是根节点,最后访问右子树所有节点。

2、前序遍历

先遍历根节点,再访问左子树中的所有节点,最后访问右子树中的所有节点。

3、后序遍历

先访问左子树中的所有节点,再访问右子树中的所有节点,最后访问根节点。

Python实现树遍历

class Node:
   def __init__(self,item):
        self.left=None
        self.right=None
        self.val=item
#中序遍历
def inorder(root):
   if root:
        inorder(root.left)
        print(str(root.val)+"->",end='')
        inorder(root.right)
#前序遍历
def postorder(root):
   if root:
        postorder(root.left)
        postorder(root.right)
        print(str(root.val)+"->",end='')
#后序遍历
def preorder(root):
   if root:
        print(str(root.val)+"->",end='')
        preorder(root.left)
        preorder(root.right)
root=Node(1)
root.left=Node(2)
root.right=Node(3)
root.left.left=Node(4)
root.left.right=Node(5)
print("中序遍历")
inorder(root)
print("前序遍历")
preorder(root)
print("后序遍历")
postorder(root)

以上がPython を使用してツリー トラバーサル アルゴリズムとツリー トラバーサルの種類を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は163.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。