list是C++标准模版库(STL,Standard Template Library)中的部分内容。实际上,list容器就是一个双向链表,可以高效地进行插入删除元素。 使用list容器之前必须加上STL的list容器的头文件:#include<list>; list属于std命名域的内容,因此需要 ...
分类:
编程语言 时间:
2019-02-14 20:33:11
阅读次数:
163
二叉搜索树 定义:如果一颗二叉树的每个节点对应一个关键码值,且关键码值的组织是有顺序的,例如左子节点值小于父节点值,父节点值小于右子节点值,则这棵二叉树是一棵二叉搜索树。 类(TreeNode):定义二叉搜索树各个节点 在该类中,分别存放节点本身的值,以及其左子节点,右子节点,父节点的值。 类(BS ...
分类:
编程语言 时间:
2018-11-10 22:39:16
阅读次数:
251
前篇 替罪羊树真的好简单的说,还不需要记怎么旋转之类的。代码也短,才100多行就可以轻松实现 替罪羊树是一种平衡树,支持插入,删除,查找第k小元素,查找元素的排名等操作 替罪羊树就是一种暴力平衡树,旋转?不存在的! 替罪羊树 替罪羊树保持平衡的方法就是暴力重构,即当树不平衡时拍扁重新建树,那么如何才 ...
分类:
其他好文 时间:
2018-09-23 15:01:44
阅读次数:
176
链表获取元素1.声明结点p指向链表第一个结点,j初始化1开始2.j<i,p指向下一结点,因为此时p是指向的p的next,因此不需要等于3.如果到末尾了,p还为null,就是没有查找到 插入元素1.插入元素和查找类似,找到位置后2.生成新的结点s, s->next=p->next p->next=s; ...
分类:
Web程序 时间:
2018-08-27 15:26:42
阅读次数:
172
Skip list(跳表)是一种可以代替平衡树的数据结构,默认是按照Key值升序的。Skip list让已排序的数据分布在多层链表中,以0 1随机数决定一个数据的向上攀升与否,通过“空间来换取时间”的一个算法,在每个节点中增加了向前的指 针,在插入、删除、查找时可以忽略一些不可能涉及到的结点,从而提 ...
分类:
编程语言 时间:
2018-06-14 01:08:53
阅读次数:
181
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 如图: ...
分类:
其他好文 时间:
2018-04-23 00:06:56
阅读次数:
160
原文链接:http://blog.csdn.net/qq_38646470/article/details/79643000 编程人员很喜欢的编辑器:vim 先搞清楚vim的三种模式: 1.命令模式:在Linux终端中输入“vim 文件名”就进入了命令模式,但不能输入文字。 2.编辑模式:在命令模式 ...
分类:
系统相关 时间:
2018-03-21 18:36:43
阅读次数:
203
编程人员很喜欢的编辑器:vim先搞清楚vim的三种模式:1.命令模式:在Linux终端中输入“vim文件名”就进入了命令模式,但不能输入文字。2.编辑模式:在命令模式下按i就会进入编辑模式,此时就可以写入程式,按Esc可回到命令模式。3.末行模式:在命令模式下按:进入末行模式,左下角会有一个冒号出现,此时可以敲入命令并执行。下面是三种模式的简单分析图:下面介绍vim常用技巧:o:在当前行下一行插入
分类:
系统相关 时间:
2018-03-21 18:33:58
阅读次数:
246
1.建立双向链表的结点Node2.建立类Linkedlist,成员head是指向表头的引用,在linkedlist中定义链表的操作方法。ps:插入删除操作要判断pos,如果在表尾,要特判防止出现空引用。 public class Node {//建立双向链表的结点 public Node left;... ...
分类:
编程语言 时间:
2017-11-02 11:32:46
阅读次数:
175