源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

python数据结构之二叉树的建立实例

  • 时间:2020-10-16 10:30 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python数据结构之二叉树的建立实例
先建立二叉树节点,有一个data数据域,left,right 两个指针域
[u]复制代码[/u] 代码如下:
# -*- coding: utf - 8 - *-                   class TreeNode(object):     def __init__(self, left=0, right=0, data=0):         self.left = left         self.right = right         self.data = data
[u]复制代码[/u] 代码如下:
class BTree(object):     def __init__(self, root=0):         self.root = root
手动建立二叉树
[u]复制代码[/u] 代码如下:
node1 = TreeNode(data=1) node2 = TreeNode(node1, 0, 2) node3 = TreeNode(data=3) node4 = TreeNode(data=4) node5 = TreeNode(node3, node4, 5) node6 = TreeNode(node2, node5, 6) node7 = TreeNode(node6, 0, 7) node8 = TreeNode(data=8) root = TreeNode(node7, node8, 'root') bt = BTree(root)
然后会生成下面的二叉树
[u]复制代码[/u] 代码如下:
# 生成的二叉树 # ------------------------ #          root #       7        8 #     6 #   2   5 # 1    3 4 # # -------------------------
除了 手动一个个的制定 node 节点,还可以创建一个 create 方法,接受用户输入添加二叉树节点。。。使用前续方式添加 ,代码如下:
[u]复制代码[/u] 代码如下:
# -*- coding: utf - 8 - *-             class TreeNode(object):     def __init__(self, left=0, right=0, data=0):         self.left = left         self.right = right         self.data = data             class BTree(object):     def __init__(self, root=0):         self.root = root     def is_empty(self):         if self.root is 0:             return True         else:             return False     def create(self):         temp = input('enter a value:')         if temp is '#':             return 0         treenode = TreeNode(data=temp)         if self.root is 0:             self.root = treenode         treenode.left = self.create()         treenode.right = self.create()
使用create创建二叉树
[u]复制代码[/u] 代码如下:
#运行文件 在交互解释器下面运行 bt = BTree() bt.create() enter a value:9 enter a value:7 enter a value:6 enter a value:2 enter a value:1 enter a value:'#' enter a value:'#' enter a value:'#' enter a value:5 enter a value:3 enter a value:'#' enter a value:'#' enter a value:4 enter a value:'#' enter a value:'#' enter a value:'#' enter a value:8 enter a value:'#' enter a value:'#'
通过 create 也可以得到同样的效果
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部