建立二叉树分析1

23 篇文章 0 订阅

编程题 链接:http://blog.csdn.net/jjf09/article/details/70339364
分析
1. 用层析遍历来做
2. 若二叉树先序遍历为 4 5 7 8 6,要求根据这个遍历结果来确定该二叉树的结构???
答:其实这是没法确定该二叉树结构的,如下所示两二叉树,先序遍历结果都为 4 5 6 7 8 6
4           4
/ \         / \
5 6       5 6
/ \         \
7 8         7
           /
          8
且要注意到:用先序遍历创建上述第一个二叉树时,从控制台输入:4 5 7 0 0 8 0 0 6 0 0

该怎样来完成编程题 ?链接:http://blog.csdn.net/jjf09/article/details/70339364
关注:
1. http://www.cnblogs.com/masterlibin/p/5911298.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
二叉树是一种非常重要的数据结构,其建立和遍历操作算法的设计和复杂度分析也是非常重要的。下面是二叉树建立和遍历操作算法的分析与设计。 1. 二叉树的建立算法 二叉树的建立有两种方式:递归法和非递归法。 递归法建立二叉树的过程如下: - 如果当前节点为NULL,则返回NULL。 - 如果当前节点不为NULL,则创建一个新节点,并且为其赋值。 - 递归建立左子树。 - 递归建立右子树。 - 返回当前节点。 非递归法建立二叉树的过程如下: - 创建一个空栈。 - 读入根节点,将其入栈。 - 如果当前节点不为NULL,则创建一个新节点,并且为其赋值。 - 如果当前节点的左子树不为空,则将其入栈。 - 否则,将当前节点弹出栈,并且读入右子树。 - 重复步骤3-5,直到栈为空。 二叉树的建立算法的时间复杂度是O(n),其中n是二叉树中节点的个数。 2. 二叉树遍历算法 二叉树遍历分为三种:前序遍历、中序遍历和后序遍历。 前序遍历的算法如下: - 如果当前节点不为空,则输出当前节点的值。 - 递归遍历左子树。 - 递归遍历右子树。 中序遍历的算法如下: - 递归遍历左子树。 - 如果当前节点不为空,则输出当前节点的值。 - 递归遍历右子树。 后序遍历的算法如下: - 递归遍历左子树。 - 递归遍历右子树。 - 如果当前节点不为空,则输出当前节点的值。 三种遍历算法的时间复杂度都是O(n),其中n是二叉树中节点的个数。 总的来说,二叉树的建立和遍历操作算法的设计和复杂度分析是非常重要的基础知识,对于算法和数据结构的学习和应用都有重要的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值