python数据结构 树

导读:本篇文章讲解 python数据结构 树,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

数据结构 树 – python

	树是一种数据结构
	树是一种可以递归定义的数据结构 
	树是由n 个节点组成的集合:
	如果 n = 0 , 则是一颗空树;
	如果n > 0, 则存在1 个节点作为树的根节点 ,其他节点可以分为m 个集合 ,每个集合本身又是一棵树,

二叉树
二叉树的链式存储:将二叉树的节点定义为一个对象,节点之间通过类似链表的链接方式来连接.

class BiTreeeNode:
    def __int__(self, data):
        self.data = data
        self.lchild = None  # 左孩子
        self.rchild = None  # 右孩子

二叉树的遍历

# 前序遍历 
def pre_order(root):
		if root:
			print(root.data, end=',')
			pre_order(root.lchild)
			pre_order(root.rchild)

#  中序遍历
def in_order(root):
    if root:
        in_order(root.lchild)
        print(root.data, end=',')
        in_order(root.rchild)
 
#  后序遍历 
def post_order(root):
    if root:
        post_order(root.lchild)
        post_order(root.rchild)
        print(root.data, end=',')
 # 层级遍历   
 此处还需要导入队列 
def level_order(root): 
	queue = deque() 
	queue.append(root)
	while len(queue) > 0:  只要队不空
		   node = queue.popleft()
		   print(node.data, end=",")
		   if node.lchild:
		   		queue.append(node.lchild)
		   if node.rchild:
		   		queue.append(node.rchild) 

二叉树搜索树

	二叉搜搜索书是一颗二叉树满足性质: 
	设x的是二叉树的一个节点。如果y是x左子树的一个节点 ,
	那么y.key<=x.key; 如果y 是x右子树的一个节点,
	那么y.key>=x.key。

在这里插入图片描述

AVL 树 是一个自平衡的二叉搜索树

AVL 树 具有以下性质:
根据左右子树的高度之差的绝对值不能超过1
根的左右子树都是平衡二叉树

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/77135.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!