创建二叉树

创建二叉树

开发工具与关键技术:

作者:                      

撰写时间:2020年5月27

 一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两颗分别称为左子树和右子树的、相互不相交的二叉树组成,每个结点最多只有两个孩子。

二叉树的顺序存储结构,用一组连续的的存储单元存放二叉树中的元素,即按满二叉树的形式存放在一维数组中。

由于在顺序储存结构中是以结点在数组中相对位置表示结点之间的关系,因此,一般二叉树也必须以完成二叉树的形式来储存,可能未造成坤存储空间的浪费。

在二叉树的链式存储结构,最常用的是二叉链表和三叉链表,二叉链表的每个结点有一个数据与和两个指针域,一个指针指向左孩子,另一个指向右孩子。如下图所示:

在创建二叉树之前首先要想到,二叉树的三种遍历方法或二叉树的者操作,是建立在这个内存已经有了这个二叉树的基础上来做的,但是事实上内存中没有这棵二叉树,是需要我们建立二叉树,那二叉树是如何创建的呢?.

如果二叉树自已链表存储方式,首先第一个节点先根遍历,所以第一个节点肯定是根,然后到它的左子树B,B的左子树先根遍历是D,可是D的左右孩子为空,并且B的孩子为空,到A的右孩子C,C的左孩子是E,然后E的左右孩子是空,然后C的孩子是F,F的左右孩子都为空,这样整个二叉树的创建就完成了。

 

下面我们来看一下创建二叉树的代码,它的序列是AB,用#代表空集,我们做的时候就需要输入字符,把字符判断一下,如果是为#,那么二叉树为空,首先要分配一个新的结点,另一个结点我们当成是跟,如果分配成功我们把ch赋值给data域,然后不断地递归创建它的左子树和右子树,其实这是一个递归的过程,我们再次输入一个数据域,这个数据域当作他的左子树,因为这是先根遍历先做左子树一直到空为止在做它的右子树。

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值