前言

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

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

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

图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);
 

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

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

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

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

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

总结

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。