Python二叉树

/ / Python二叉树

树(Tree)表示通过边连接的节点,它是一种非线性数据结构,它具有以下属性。

  • 一个节点被标签为"root "根节点。
  • 除根节点外,每个节点都与一个父节点关联。
  • 每个节点可以具有子节点(child)的编号。

无涯教程将一个节点指定为根节点,然后添加更多节点作为子节点,下面是创建根节点的程序。

创建根节点

只创建一个Node类,并向该节点添加一个赋值。这变成只有根节点的树。

链接:https://www.learnfk.comhttps://www.learnfk.com/python-data-structure/python-binary-tree.html

来源:LearnFk无涯教程网

class Node:

    def __init__(self, data):

        self.left=None
        self.right=None
        self.data=data


    def PrintTree(self):
        print(self.data)

root=Node(10)

root.PrintTree()

执行以上代码后,将产生以下输出-

无涯教程网

10

插入节点到树

为了插入到树中,使用与上面创建的相同的节点类,并向其中添加一个插入节点,插入类比较值将该节点添加到父节点,并决定将其添加为左节点还是右节点。最后,PrintTree类用于打印树。

class Node:

    def __init__(self, data):

        self.left=None
        self.right=None
        self.data=data

    def insert(self, data):
# 将新值与父节点进行比较
        if self.data:
            if data < self.data:
                if self.left is None:
                    self.left=Node(data)
                else:
                    self.left.insert(data)
            elif data > self.data:
                if self.right is None:
                    self.right=Node(data)
                else:
                    self.right.insert(data)
        else:
            self.data=data

# 打印树
    def PrintTree(self):
        if self.left:
            self.left.PrintTree()
        print( self.data),
        if self.right:
            self.right.PrintTree()

# 使用insert方法添加节点
root=Node(12)
root.insert(6)
root.insert(14)
root.insert(3)

root.PrintTree()

执行以上代码后,将产生以下输出-

无涯教程网

3 6 12 14

祝学习愉快! (发现内容有误?请选中要编辑的内容 -> 右键 -> 修改 -> 提交!帮助我们改进教程质量)

精选教程推荐

👇 以下精选教程可能对您有帮助,拓展您的技术视野

Rust并发编程实战课 -〔晁岳攀(鸟窝)〕

大型Android系统重构实战 -〔黄俊彬〕

快速上手C++数据结构与算法 -〔王健伟〕

云原生架构与GitOps实战 -〔王炜〕

快手 · 移动端音视频开发实战 -〔展晓凯〕

设计模式之美 -〔王争〕

全栈工程师修炼指南 -〔熊燚(四火)〕

Java性能调优实战 -〔刘超〕

Nginx核心知识150讲 -〔陶辉〕

📝 好记忆不如烂笔头,留下您的学习笔记吧!

暂无学习笔记,成为第一个分享的人吧!

您的笔记将帮助成千上万的学习者