数据结构算法
文章平均质量分 84
两天
这个作者很懒,什么都没留下…
展开
-
判断一个单链表是否有环及环的链接点
给定一个单链表,只给出头指针h:1、如何判断是否存在环?2、如何知道环的长度?3、如何找出环的连接点在哪里?4、带环链表的长度是多少?转载 2014-11-14 11:16:44 · 280 阅读 · 0 评论 -
链表逆序
设链表节点为[cpp] view plaincopytypedef struct tagListNode{ int data; struct tagListNode* next; }ListNode, *List; 要求将一带链表头List head的单向链表逆序。分析:转载 2014-11-14 11:15:18 · 268 阅读 · 0 评论 -
bitmap算法
来自于《编程珠玑》。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。如果说了这么多还没明白什么是Bit-map,那么我们来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用Bit-map的方法来达到排序的目的转载 2015-02-27 16:30:07 · 250 阅读 · 0 评论 -
用于不相交集合的数据结构(并查集)
不相交集合数据结构的概念和操作: 不相交集合数据结构(disjoing-set data structure)保持一组不相交的动态集合S={S1,S2,S3,……Sk}。每个集合通过一个代表来识别,代表即集合中的某个成员。我们希望不相交集合数据结构支持如下操作:1 . MAKE_SET(x): 建立一个新的集合,其唯一成员就是x,所以其代表也就是自己。因为各集合是不相转载 2015-04-23 16:57:11 · 1805 阅读 · 0 评论 -
Kruskal算法
克鲁斯卡尔(Kruskal)算法(只与边相关)算法描述:克鲁斯卡尔算法需要对图的边进行访问,所以克鲁斯卡尔算法的时间复杂度只和边又关系,可以证明其时间复杂度为O(eloge)。算法过程:1.将图各边按照权值进行排序2.将图遍历一次,找出权值最小的边,(条件:此次找出的边不能和已加入最小生成树集合的边构成环),若符合条件,则加入最小生成树的集合中。不符合条转载 2015-04-23 16:36:06 · 383 阅读 · 0 评论 -
prim 与dijkstra的异同 POJ 2485 Highways
题意:一个地方F,没有Highways,交通不便,要建 Highways,每个Highway连接两个城镇,所有的Highways都是直线的。样例输入意思:T 案例数N 城镇数下面N行N列,以矩阵的形式 v1 v2 v3v1 0 990 692 v2 990 0 179v3 692 179转载 2015-04-23 15:01:28 · 329 阅读 · 0 评论 -
位运算之——按位与(&)操作
在hash中查找key的时候,经常会发现用&取代%,先看两段代码吧, JDK6中的HashMap中的indexFor方法:Java代码 /** * Returns index for hash code h. */ static int indexFor(int h, int length) { return h & (length-1);转载 2017-09-21 16:28:40 · 1200 阅读 · 0 评论 -
面试旧敌之红黑树(直白介绍深入理解)
读完本文你将了解到:什么是红黑树黑色高度红黑树的 5 个特性红黑树的左旋右旋指定节点 x 的左旋 右图转成左图指定节点 y 的右旋左图转成右图红黑树的平衡插入二叉查找树的插入插入后调整红黑树结构调整思想插入染红后的调整有 2 种情况根据 TreeMap 的代码来验证这个过程红黑树的平衡删除二转载 2017-10-11 16:13:43 · 10155 阅读 · 1 评论 -
B树和B+树的插入、删除图文详解
简介:本文主要介绍了B树和B+树的插入、删除操作。写这篇博客的目的是发现没有相关博客以举例的方式详细介绍B+树的相关操作,由于自身对某些细节也感到很迷惑,通过查阅相关资料,对B+树的操作有所顿悟,写下这篇博客以做记录。由于是自身对B+树的理解,肯定有考虑不周的情况,或者理解错误的地方,请留言指出。欢迎探讨,如有错误敬请指正如需转载,请注明出处http://www.cnblogs.c...转载 2019-06-24 10:37:29 · 404 阅读 · 0 评论