题目描述 在一个$k$维空间中,每个整点被黑白染色。对于一个坐标为$(x_1,x_2,\ldots,x_k)$的点,他的颜色我们通过如下方式计算: 如果存在一维坐标是$0$,则颜色是黑色。 如果这个点是$(1,1,\ldots,1)$(每一维都是$1$),这个点的颜色是白色 如果这个点的$k$个前驱 ...
分类:
其他好文 时间:
2018-03-06 12:52:23
阅读次数:
183
对每一个位置上的颜色求一个前驱,表示上一次这个颜色出现的位置。 求 [ l , r ] 范围内有多少种不同的颜色,可以转化成求 [ l , r ] 有多少个位置的前驱在 [ 0 , l - 1 ]。 于是就可以树状数组套主席树。 每次修改 p 位置的颜色为 col 要考虑这样三种情况: ( 1 ) ...
分类:
其他好文 时间:
2018-03-02 22:09:45
阅读次数:
260
二叉树是一种非线性结构,遍历二叉树几乎都是通过递归或者用栈辅助实现非递归的遍历。二叉树作为存储结构时,一个节点只能获取节点的左孩子和右孩子,不能直接得到节点的任一遍历序列的前驱或者后继。为了保存这种在遍历中需要的信息,我们利用二叉树中指向左右子树的空指针来存放节点的前驱或后继信息。 也就是说,线索二 ...
分类:
其他好文 时间:
2018-03-01 17:33:10
阅读次数:
181
题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入x数 删除x数(若有多个相同的数,因只删除一个) 查询x数的排名(排名定义为比当前数小的数的个数+1。若有多个相同的数,因输出最小的排名) 查询排名为x的数 求x的前驱(前驱定义为小于x,且最大的数) 求x的 ...
分类:
其他好文 时间:
2018-02-28 21:35:13
阅读次数:
141
1. 排序二叉树、最优二叉树、线索二叉树、平衡二叉树等是二叉树的特殊形式,分别有各自的用途,排序二叉树用于快速查找、最优二叉树用于无损压缩编码、线索二叉树通过保存结点的前驱后继信息以方便遍历、平衡二叉树通过改进排序二叉树提高了其整体查找效率。 2.对于最优二叉树用于压缩编码,非常不解树是如何用于编码 ...
分类:
其他好文 时间:
2018-02-27 01:02:41
阅读次数:
163
一、双向链表(double linked list)如图26.5,是在单链表的每个结点中,再设置一个指向其前驱结点的指针域。双向链表的基本操作与单链表基本一样,除了插入和删除的时候需要更改两个指针变量,需要注意的是修改的顺序很重要,插入如图3-14-5,删除如图3-14-6。 链表的delete操作 ...
分类:
其他好文 时间:
2018-02-26 11:32:51
阅读次数:
198
我们知道满二叉树只是一种特殊的二叉树,大部分二叉树的结点都是不完全存在左右孩子的,即很多指针域没有被充分地利用。另一方面我们在对一棵二叉树做某种次序遍历的时候,得到一串字符序列,遍历过后,我们可以知道结点之间的前驱后继关系,也就是说,我们可以很清楚地知道任意一个结点,它的前驱和后继是哪一个。可是这是 ...
分类:
其他好文 时间:
2018-02-26 11:14:49
阅读次数:
218
《算法导论》读书笔记之第12章 二叉查找树 摘要: 本章介绍了二叉查找树的概念及操作。主要内容包括二叉查找树的性质,如何在二叉查找树中查找最大值、最小值和给定的值,如何找出某一个元素的前驱和后继,如何在二叉查找树中进行插入和删除操作。在二叉查找树上执行这些基本操作的时间与树的高度成正比,一棵随机构造 ...
分类:
编程语言 时间:
2018-02-25 14:41:58
阅读次数:
231
1、前言 最近写代码需用到链表结构,正好公共库有关于链表的。第一眼看时,觉得有点新鲜,和我之前见到的链表结构不一样,只有前驱和后继指针,而没有数据域。后来看代码注释发现该代码来自linux内核,在linux源代码下include/Lish.h下。这个链表具备通用性,使用非常方便。只需要在结构定义一个 ...
分类:
系统相关 时间:
2018-02-25 13:18:09
阅读次数:
222
摘要: 本章介绍了二叉查找树的概念及操作。主要内容包括二叉查找树的性质,如何在二叉查找树中查找最大值、最小值和给定的值,如何找出某一个元素的前驱和后继,如何在二叉查找树中进行插入和删除操作。在二叉查找树上执行这些基本操作的时间与树的高度成正比,一棵随机构造的二叉查找树的期望高度为O(lgn),从而基 ...
分类:
其他好文 时间:
2018-02-23 15:56:05
阅读次数:
161