算法总结五

来源:互联网 发布:知乎电影1942精彩片段 编辑:程序博客网 时间:2024/05/16 00:57

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

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

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

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

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

            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的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。


原创粉丝点击