数据结构
文章平均质量分 74
wushuomin
这个作者很懒,什么都没留下…
展开
-
【整理自用】单链表问题(一)
单链表LeetCode上的定义:struct ListNode 单链表的结构体{ int val; 节点值 ListNode *next; 节点下一个地址 ListNode(int x):val(x),next(NULL){}; 构造函数};从头到尾打印单链表思路: 1.由于递归相当于是堆栈结构,后进先...原创 2018-03-06 21:13:25 · 608 阅读 · 0 评论 -
【整理自用】统计学习、机器学习常见算法(整理更新)
K近邻法详见《统计学习》P53页。 代码收藏90Zeng的博客Kd树的c++实现。 在利用kd树搜索最邻近点的时候有一句话: 当前最近点一定存在于该结点一个子结点对应的区域,检查子结点的父结点的另一子结点对应的区域是否有更近的点。具体做法是,检查另一子结点对应的区域是否以目标点位球心,以目标点与“当前最近点”间的距离为半径的圆或超球体相交: 如果相交,可能在另一个子结点对应的...原创 2018-03-07 11:50:12 · 906 阅读 · 0 评论 -
【整理自用】凸包问题
写在前面的话:学习太辛苦了!网上博客排版太杂了,让我看的特别不舒服;所以我只能自己把博客之类的全部拉过来重新整理自己看。1. 凸包问题的定义百度百科上关于凸包的定义在二维欧式空间内:对于平面点集SSS而言,凸包是指包含SSS的最小凸多边形。其中,凸多边形定义如下: 如果一个多边形任意两点的连线都不包括该多边形以外的点,则称为凸多边形。2. 凸多边...原创 2018-03-14 11:28:28 · 242 阅读 · 0 评论 -
【整理自用】一些数据结构题目、思路
Vector动态实现思想: vector在定义时预留了一部分内存空间来用于存储新增的元素。 当添加元素时,如果vector空间大小不足,则会以原大小的两倍另外配置一块较大的新空间,然后将原空间内容拷贝过来,在新空间的内容末尾添加元素,并释放原空间。 vector的空间动态增加大小,并不是在原空间之后的相邻地址增加新空间,因为vector的空间是线性连续分配的,不能保证原...原创 2018-04-09 14:54:52 · 937 阅读 · 0 评论 -
【整理自用】二叉树的子树、子结构
二叉树的子树和子结构 子树的意思是只要包含了一个结点,就得包含这个结点下的所有节点. 子结构的意思是包含了一个结点,可以只取左子树或者右子树,或者都不取。简单而言,与子树不同的是,子结构可以是A树的任意一部分。 这里以一颗7节点,高度为3的满二叉树为例,说明子树和子结构的差别: 图11.图1的子树示意图对于图1而言,子树意味着图2,图3等情况。根据定义非...原创 2018-04-14 20:16:44 · 17396 阅读 · 1 评论 -
【整理自用】清奇思路(四) 实现乘方的最小操作/斐波那契数列(Fibonacci )最小时间复杂度
实现乘方的最小时间复杂度1.求anana^n的计算方法:an={a(n/2)∗a(n/2)a(n−1)/2∗a(n−1)/2∗an为偶数n为奇数(1)(1)an={a(n/2)∗a(n/2)n为偶数a(n−1)/2∗a(n−1)/2∗an为奇数a^n=\begin{cases} a^{(n/2)}*a^{(n/2)} &n为偶数\\ a^...原创 2018-04-22 14:58:35 · 455 阅读 · 0 评论