数据结构与算法
希望将学习到的数据结构和算法做一次全面的总结
灯塔先生
这个作者很懒,什么都没留下…
展开
-
数据结构与算法--Trie树
基础知识概念前缀树,字典树,又称单词查找树或键树。树形结构,哈希树的变种。树的路径上存储的是字符,节点上存储的是以当前节点为结尾的字符串的个数。性质:根节点不包含字符,除根节点外每一个节点都只包含一个字符。 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。 每个节点的所有子节点包含的字符都不相同。典型应用可以检验是否含有某个字符串(在节点上添加属性,用...原创 2019-06-21 10:08:00 · 227 阅读 · 0 评论 -
数据结构与算法--红黑树
介绍等价定义含有红黑链接并满足下列条件的二叉查找树:红链接均为左链接; 没有任何一个节点同时和两条红链接相连; 该树是完美黑色平衡,即任意空链接到根节点的路径上的黑链接数量相同;以上定义和相应2-3树一一对应。红黑树的插入算法结合了以下两种优势:二叉查找树中简洁高效的查找方法; 2-3树中高效的平衡插入算法;颜色表示链接的颜色保存在节点的Nod数据类型的布尔变...原创 2019-07-08 11:38:30 · 171 阅读 · 0 评论 -
数据结构与算法--动态规划篇
动态规划(dynamic programming)概念可以将一个复杂的大问题分解为简单的小问题,通过求解小问题来得出大问题的解。性质无后效性:某一阶段状态确定之后,这阶段之后的发展不受这阶段以前各阶段的状态影响。即未来与过去无关最优子结构:大问题的最优解可以由小问题的最优解推出重叠子问题:在用递归算法自顶向下解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次...原创 2019-06-14 23:12:17 · 283 阅读 · 0 评论 -
背包问题和图论
01背包给定N个物品和容量为C的背包,每个物品的体积为w[i],每个物品的价值为v[i],问如何装入物品使背包中的总价值最大?思路:给定一个F[i][j]二维数组,代表前i个物品装入容量为j的背包中的价值最大。主要考虑第i件物品背包是否可以装的下。如果装的下,应该考虑装下的价值和不装的价值哪个大,则F[i][j] =max{ F[i - 1][j - w[i]] + v[i],F[...原创 2019-09-07 15:54:04 · 527 阅读 · 0 评论