Description 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入 x 数 删除 x 数(若有多个相同的数,应只删除一个) 查询 x 数的排名(排名定义为比当前数小的数的个数 。若有多个相同的数,因输出最小的排名) 查询排名为 x 的数 求 x 的前驱(前驱定 ...
分类:
其他好文 时间:
2018-07-29 12:57:22
阅读次数:
153
二叉树的补充: 线索二叉树: 1.引入线索二叉树 二叉树的遍历实质上是对一个非线性结构实现线性化的过程,使每一个节点(除第一个和最后一个外)在这些线性序列中有且仅有一个直接前驱和直接后继。但在二叉链表存储结构中,只能找到一个节点的左、右孩子信息,而不能直接得到节点在任一遍历序列中的前驱和后继信息。这 ...
分类:
编程语言 时间:
2018-07-27 21:11:08
阅读次数:
160
一、常见的链表 1、单链表(Singly Linked List) 构成:每个节点包含数据(data)和后继节点的地址(next) 2、双向链表 构成:每个节点包含数据(data)、前驱的地址(prev)、后继的地址(next) 优势:删除或添加元素不需要移动数据,可以双向遍历 3、异或链表(XOR ...
分类:
其他好文 时间:
2018-07-27 01:12:57
阅读次数:
177
splay总是多打打就熟了,先把板子贴在这里方便查看 Splay的思想还是很简单的,反正就是把每次查询到的都splay到根,维护动态平衡 插入的时候就找到位置,splay到根 删除是最麻烦的,先查找到它并splay到根。然后找到前驱splay到根的左子节点作为根,废掉原先的根节点,然后把右子节点接到 ...
分类:
编程语言 时间:
2018-07-25 14:32:36
阅读次数:
468
题目描述: 从一个整型链表里面移除值等于val的节点。 解题思路: 需要一个指针指向前驱节点,遍历链表,针对符合条件的节点,分两种情况处理 1)如果前驱节点不为空,前驱节点指向当前节点的下一个节点 2)如果前驱节点为空,头指针指向当前节点下一个节点 如果节点的值不等于val,前驱节点指针指向当前节点 ...
分类:
其他好文 时间:
2018-07-22 20:07:15
阅读次数:
130
迭代器中序遍历整棵树,++或 为前驱后继 可重复插入,查找,排名( using namespace std; template class splay_tree_iterator; template, typename _Equ = equal_to class splay_tree { publi ...
分类:
其他好文 时间:
2018-07-21 14:35:30
阅读次数:
110
其实是一道裸题,如果没学过最短路树的话会比较难做,要想很久想到关键性质才能做出来。 最短路树顾名思义,就是从一个图中生成出来一棵树,使得每个顶点到root的距离是单源最短路。如果有这样的树的话,那可见这样的树是符合题意的。 怎么生成这样的树呢?关键在于记录前驱father,一个距离root最短路是6 ...
分类:
其他好文 时间:
2018-07-15 23:16:04
阅读次数:
391
线性结构是最常用、最简单的一种数据结构。而线性表是一种典型的线性结构。其基本特点是线性表中的数据元素是有序且是有限的。在这种结构中: 存在一个唯一的被称为“第一个”的数据元素; 存在一个唯一的被称为“最后一个”的数据元素; 除第一个元素外,每个元素均有唯一一个直接前驱; 除最后一个元素外,每个元素均 ...
分类:
其他好文 时间:
2018-07-14 10:21:51
阅读次数:
111
题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1.插入 x数 2.删除 x数(若有多个相同的数,因只删除一个) 3.查询 x数的排名(排名定义为比当前数小的数的个数 +1。若有多个相同的数,因输出最小的排名) 4.查询排名为 x的数 5.求 x的前驱(前驱定 ...
分类:
其他好文 时间:
2018-07-11 20:39:55
阅读次数:
119
F - Berland and the Shortest Paths 思路: bfs+dfs 首先,bfs找出1到其他点的最短路径大小dis[i] 然后对于2...n中的每个节点u,找到它所能改变的所有前驱(在保证最短路径不变的情况下),即找到v,使得dis[v] + 1 == dis[u],并把u ...
分类:
其他好文 时间:
2018-07-10 17:52:54
阅读次数:
330