zoukankan      html  css  js  c++  java
  • 基础二叉树

    2020-02-23 

    今天学了一下BST

    有如下内容:

    二叉树的前序遍历:根->左->右;

        中序遍历:左->根->右;

        后序遍历: 左->右->根;

        层次遍历:广搜即可;

    前序遍历的第一个节点为根节点;

    后序遍历的最后一个节点为根节点;

    利用中序遍历可以得出每个节点的左右子树;

    因此,已知中序遍历+前序遍历//后序遍历可得到整个树;

    但如果是BST,只需要知道前序或者后序即可,因为平衡二叉树的特点,你找到了一个根节点,那么左子树都比它小,右子树都比它大;扫一遍前序遍历的序列就可以得到一个点的左右子树情况,递归处理即可;

    2020-02-23  22:27:28

    今天学了一下堆,大概是这么个东西;

    你如果想造一个优先队列:那怎么做呢?

    如果用BST来做,每次查找出优先级最大的点,复杂度log(n),那这样不断的取出队头的元素,会把树删得乱七八糟,最后访问可能就是o(n)的;那你说每次删掉平衡一下可以吗?有些麻烦;

    考虑用完全二叉树实现:

    最大堆:根节点为最大值;

    最小堆:根节点为最小值;

    插入:每次随便找个能放的位置放,然后调整,Olog(n)的复杂度;

    删除:每次把根删除,然后找个能放的子孙放进去,然后调整,log(n)

    建立堆:就是给个序列,随便建立一个完全二叉树,然后从下往上调整最终调整为堆,0(n),注意是边建立,边调整;

    未完待续;

    想的太多,做的太少;
  • 相关阅读:
    起床困难综合症[NOI2014]
    暗之链锁
    平凡的测试数据
    烤鸡翅
    高一寒假集训总结
    聪聪和可可[NOI2005]
    方伯伯的玉米田[SCOI2014]
    aix5下安装python和cx_Oracle
    同样的一句SQL语句在pl/sql 代码块中count 没有数据,但是直接用SQl 执行却可以count 得到结果
    关于SQL优化的一个小试例子
  • 原文地址:https://www.cnblogs.com/littlerita/p/12346809.html
Copyright © 2011-2022 走看看