cosyer's Blog

Blog


  • 首页

  • 友链

  • 留言板

  • 归档

  • 关于

  • 搜索

算法 标签

10月
04
更新于
10月04
2020
JS

算法题练习

发表于 2020-04-23 | 热度 ℃
| 字数统计: 2,262 (字) | 阅读时长: 11 (分钟)

五大算法

  • 贪心算法:局部最优解法
  • 分治算法:分成多个小模块,与原问题性质相同
  • 动态规划:每个状态都是过去历史的一个总结
  • 回溯法:发现原先选择不优时,退回重新选择
  • 分支限界法:按广度优先策略搜索问题的解空间树,适合求解最优化问题

数据树

  • 二叉树: 最多只有两个子节点

    • 完全二叉树
      • 若设二叉树的深度为k,除第 k 层外,其它各层 (1~k-1) 的结点数都达到最大个数,第k 层所有的结点都连续集中在最左边
    • 满二叉树
      • 深度为 h, 有 n 个节点,且满足 n = 2^h - 1
    • 平衡二叉树
      • 它或者是一颗空树,或它的左子树和右子树的深度之差(平衡因子)的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树
    • 最优二叉树(哈夫曼树)
      • 树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。
  • 二叉查找树: 是一种特殊的二叉树,能有效地提高查找效率

    • 小值在左,大值在右
    • 节点 n 的所有左子树值小于 n,所有右子树值大于 n

binary-search-tree

  • 遍历节点
    • 前序遍历
      • 根节点
      • 访问左子节点,回到 1
      • 访问右子节点,回到 1
    • 中序遍历
      • 先访问到最左的子节点
      • 访问该节点的父节点
      • 访问该父节点的右子节点, 回到 1
    • 后序遍历
      • 先访问到最左的子节点
      • 访问相邻的右节点
      • 访问父节点, 回到 1

DLR–前序遍历(根在前,从左往右,一棵树的根永远在左子树前面,左子树又永远在右子树前面 )

dlr

LDR–中序遍历(根在中,从左往右,一棵树的左子树永远在根前面,根永远在右子树前面)

ldr

LRD–后序遍历(根在后,从左往右,一棵树的左子树永远在右子树前面,右子树永远在根前面)

lrd

  • 插入与删除节点

阅读全文 »
陈宇(cosyer)

陈宇(cosyer)

不去做的话永远也做不到。

159 日志
10 分类
51 标签
RSS
GitHub Twitter E-Mail FB Page
推荐阅读
  • Callmesoul
  • JsTips
  • Personal Site
  • Resume
© 2021 陈宇(cosyer)
终于等到你(UV):   |   欢迎再来(PV):
Blog总字数: 312.5k字
苏ICP备17005342号-1