BST 即 搜索二叉树,它的性质,简而言之,就是对于每一个结点,他的左节点严格小于它,它的右节点严格大于他,满足这样性质的数就是搜索二叉树,它支持求x数的排名(在这里规定,有多个相同的数时,求他的最大排名),求排名x的数,求x数的前驱和后继,加入结点,删除结点 那么,要满足上面的性质,如果有多个相同 ...
分类:
其他好文 时间:
2020-03-18 11:58:41
阅读次数:
59
/** * 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。 * 所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。 * 这也就导致了在对链表数据进行删除和添加的时候要明确指定出节点的前驱节点和后继节点。 * @author ...
分类:
其他好文 时间:
2020-03-15 13:37:40
阅读次数:
43
/*双向链表 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方 便地访问它的前驱结点和后继结点。 下图是双向链表的逻辑结构图,和单链表不同的是,双向链表中每个节点包含两个节点的指针引用,和一个数据域,这两个 ...
分类:
其他好文 时间:
2020-03-15 13:03:57
阅读次数:
64
1 //双向链表的结构 2 typedef struct DualNode 3 { 4 Elemtype data; 5 struct DualNode *prior; //前驱结点 6 struct DualNode *next; //后继结点 7 } DualNode,*DuLinkList; ...
分类:
其他好文 时间:
2020-03-14 13:15:04
阅读次数:
48
题目 https://loj.ac/problem/10143 题解 + 一眼就能看出这题就是找Splay的前驱和后继 + 通过这题可以体会到为什么要加入一个无穷小的点和一个无穷大的点,加入可以防止出坑 代码 ...
分类:
其他好文 时间:
2020-03-06 01:46:50
阅读次数:
71
树是由n(n>=0)个节点组成的有限集合 1). 如果n=0,称为空树 2). 如果n>0,则a).有一个特定的称之为根(root)的节点,它只有直接后继,但没有直接前驱b).除根以外的其他节点划分为m(m>=0)个互不相交的有限集合T0,T1,….T~(m-1),每个集合又是一棵树,并且称之为根的... ...
分类:
其他好文 时间:
2020-02-28 12:21:52
阅读次数:
89
线段树的每个点表示当前点的前驱,即这个颜色上一次出现的位置,这个玩意multiset随便写写就完了。 重要的是怎么查询答案,无解显然先判掉。 线段树上二分就可以了 ...
1、双向循环链表 双向链表是在单链表的每个结点中,再设置一个纸箱其前驱结点的指针域。双向链表可以有效的提高算法的时间性能,用空间换取时间。 typedef struct Node { ElemType data; struct Node* prior; //直接前驱指针 struct Node* n ...
分类:
其他好文 时间:
2020-02-20 20:14:01
阅读次数:
62
1、定义 线性表:零个或多个元素组成的有限序列。第一个无前驱,最后一个无后继,其余元素都有一个前驱和后继。元素的个数为n。 数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。例如,编程语言中的整型,浮点型等。 抽象数据类型ADT:对数据类型进行抽象,抽取出事务具有的普遍性的本质, ...
分类:
编程语言 时间:
2020-02-15 23:16:26
阅读次数:
101
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例: 我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节 ...
分类:
其他好文 时间:
2020-02-15 20:38:00
阅读次数:
64