一聚教程网:一个值得你收藏的教程网站

热门教程

python创建与遍历二叉树的方法代码实例

时间:2022-06-25 02:09:20 编辑:袖梨 来源:一聚教程网

本篇文章小编给大家分享一下python创建与遍历二叉树的方法代码实例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

前言

树型结构是一类重要的非线性数据结构,其中以树和二叉树最为常用,是以分支关系定义的层次结构。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构;在计算机领域中也有广泛应用,如在编译程序中,可用树来表示源程序的语法结构;在数据库系统中,树型结构也是信息的重要组织形式之一;在机器学习中,决策树,随机森林,GBDT等是常见的树模型。

树(Tree)是个结点的有限集。在任意一棵树中:(1)有且仅有一个特定的称为根(Root)的节点;(2)当时,其余节点可分为个互不相交的有限集其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。

图1 树型结构

python创建与遍历二叉树

python创建和遍历二叉树,可以使用递归的方式,源代码如下:

#!/usr/bin/python 
class node():
	def __init__(self,k=None,l=None,r=None):
		self.key=k;
		self.left=l;
		self.right=r;
 
def create(root):
	a=raw_input('enter a key:');
	if a is '#':
		root=None;
	else:
		root=node(k=a);
		root.left=create(root.left);
		root.right=create(root.right);
	return root;
 
def preorder(root):  #前序遍历
	if root is None:
		return ;
	else :
		print root.key;
		preorder(root.left);
		preorder(root.right);
 
def inorder(root):  #中序遍历
	if root is None:
		return ;
	else:
		inorder(root.left);
		print root.key;
		inorder(root.right);
 
def postorder(root): # 后序遍历
	if root is None:
		return ;
	else :
		postorder(root.left);
		postorder(root.right);
		print root.key;
		
root=None;  # 测试代码
root=create(root);
preorder(root);
inorder(root);
postorder(root);
 

运行程序,建立二叉树如图:

前序遍历结果为: a b c d e f

中序遍历结果为:c b d a f e

后序遍历结果为:c d b f e a

热门栏目