算法总结五

本文详细介绍了二叉树的前序、中序、后序及层次遍历方法,并通过具体例题展示了如何根据给定的中序和后序遍历来构造二叉树。同时探讨了平衡二叉树的概念及其与二叉搜索树的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前序遍历:根结点 ---> 左子树 ---> 右子树

中序遍历:左子树---> 根结点 ---> 右子树

后序遍历:左子树 ---> 右子树 ---> 根结点

层次遍历:只需按层次遍历即可

记住什么序遍历,根节点就在什么位置,前序遍历就是根节点在前面然后左子树和右子数

            System.out.print(root.val+"  ");  
            preOrderTraverse1(root.left);  
            preOrderTraverse1(root.right);
这就是前序

题目:已知中序为DCBGEAHFIJK 后序遍历为DCEGBFHKJIA ,画出二叉树

解法:先求根节点,一看后序最后就知道根节点为A,那么中序A之前的为左子树,接着看第一个字母是否一样,一样说明第一个字母为左节点,不一样说明第一个字母为右节点或者为左右节点的根节点,解这题关键在于从左向右一个字符一个字符去推敲,先看中序前三个字母,再看后序前三个字母,画出可能的样子,再推下一个节点


这些可能都要考虑


在C#进行字符串拼接的时候,最好不要采用String+的方式拼接字符串,因为这样会产生更多的string实例,造成时间和空间的浪费。更好的办法是采用StringBuilder的Append方法


平衡二叉树称为AVL树,左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树,平衡二叉树必定是二叉搜索树

二叉搜索树的特性:左节点必定小于根节点,右节点必定大于根节点

排序算法的稳定性通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj, Ai原来在位置前,排序后Ai还是要在Aj位置前。举个例子,在选择排序中。序列5 8 5 2 9, 我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值