数据结构
文章平均质量分 88
ilsswfr
这个作者很懒,什么都没留下…
展开
-
队列
队列是一种在一端进行删除而在另一端进行插入的一种数据结构队列的基本操作: 入队(enqueue):在队尾(rear)插入一个元素 出队(dequeue):删除对头(front)的元素实现: 首先创建一个链表,定义一原创 2016-03-01 02:32:25 · 265 阅读 · 0 评论 -
学习记录:树 (二叉树 二叉查找树 AVL树)
基本概念树 是一些节点的集合 节点r是其下子树的根的父亲,而其下子树的根是r的儿子另外 没有儿子的节点称为树叶 具有相投父亲的节点叫做兄弟节点的深度是这个节点到根节点的惟一的路径的长而节点的高度是这个节点到树叶的最长路径的长整棵树的深度和高度为更到最深的树叶的高度和最深树叶的深度一个节点可以分别练习它的一个儿子儿子和下一个兄弟来实现,原创 2016-03-04 00:19:05 · 334 阅读 · 0 评论 -
学习记录3:树的直径(树的最长链)(poj 1985 Cow Marathon)
树的直径是指树上的最长链(如果是要节点最多的链那就边权作为1处理) 如下图所示,我们发现,对于每个节点(叶子除外)如果它是最长链上的点,那么最长链等于以这个节点为根时的最长的两条子链之和。因此,对于求最长链,我们可以转化成求树中的每个节点的最长的两个子链之和的问题;这样一来,对于每个节点情况就有3种原创 2016-07-31 13:01:45 · 1879 阅读 · 0 评论 -
学习记录2:优先队列 (二叉堆实现)
优先队列是一类特殊的队列,它允许至少下列两种操作的数据结构:Insert(插入),DeleteMin(删除最小者,或者满足某个条件的最靠近者什么的,这里就假设最小值优先) 这里的是用二叉堆实现的,还可以用链表,二叉查找树,平衡树等数据结构实现 先说下二叉堆;堆,具有堆序性和结构性二叉堆是一棵被完全填满的二叉树,但是它的底层可能出现例外,这种底层上的元素从右往左依次被填入的树原创 2016-07-26 11:23:58 · 409 阅读 · 0 评论 -
学习记录4:LCA (最近公共祖先)(hdu 2586 How far away?)
呃 个人理解 可能有偏差 = = LCA (最近公共祖先) 是两个节点共有的祖先节点中深度最大的那个,可以说是离树根最远的祖先; 求LCA有几种算法 : RMQ Tarjan 等等等 前提 DFS : 对于每个节点1. 先遍历子节点2. 查询这个点的情况3. 合并到他的父亲上 可以看出,我们在做DFS实际上尽可能的使原创 2016-08-02 10:09:12 · 333 阅读 · 0 评论 -
hdu 1251 统计难题 (字典树)
统计难题Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submission(s): 33462 Accepted Submission(s): 12704Problem DescriptionIgnatius最近遇到一个难题,老原创 2016-08-03 10:00:59 · 241 阅读 · 0 评论 -
hdu 5790 Prefix (字典树 + 主席树)
PrefixTime Limit: 2000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 519 Accepted Submission(s): 157Problem DescriptionAlice gets N strings.原创 2016-08-10 19:04:43 · 335 阅读 · 0 评论 -
学习记录5:主席树
嗯 昨天某题TLE了一晚上 搜索优化方式的时候看到了这个 于是 今天学了下 - -点击打开链接点击打开链接觉得上面那个教程的图蛮好的 点击打开链接这些讲的挺详细的 嗯 说下理解 也不知道算不算正常版 = =主席树的主体是一棵线段树 有点像是一堆树被拼在一起 共同使用某些部分嗯 先画张图原创 2016-08-10 20:02:21 · 360 阅读 · 0 评论