数据结构
文章平均质量分 68
四夕_日月
这个作者很懒,什么都没留下…
展开
-
c++ 数据结构之STL之 map
标准模板库STL中的mapmap原创 2014-04-04 21:07:17 · 1334 阅读 · 0 评论 -
二叉平衡树 插入
二叉平衡树是yi'zh原创 2014-09-19 14:22:54 · 1054 阅读 · 1 评论 -
二叉搜索树
二叉搜索树:二叉树的查找很简单,先序后序中序都可以,一开始要判断是否为空。插入要判断一下是否存在,查找时同时记录其父节点,然后直到找到空节点,插入。删除比较复杂一点:逐一判断:先判断是否为空,然后查找到要删除的节点p,并记录其父节点q,如果查不到,返回false;当p节点有两个子树时,查到其中序遍历的后继节点,即排序后的之后以为,记为s。查找的同时记录s的父节点r,然后将s原创 2014-09-18 20:56:15 · 869 阅读 · 0 评论 -
红黑树的代码
我写的红黑树代码。原创 2014-09-20 21:42:03 · 1194 阅读 · 0 评论 -
红黑树 插入
红黑树的插入。原创 2014-09-20 21:33:26 · 1057 阅读 · 0 评论 -
红黑树 节点的删除
红黑树的删除操作原创 2014-09-20 21:36:58 · 1680 阅读 · 0 评论 -
B-树
b树首先是m叉树。然后还拥有以下特性:原创 2014-10-03 00:43:42 · 1794 阅读 · 2 评论 -
哈希表
使用hash函数将关键值映射到储存位置的原创 2014-10-03 17:50:20 · 693 阅读 · 0 评论 -
所有顶点之间的最短路径算法:Floyd算法。
Floyd算法的基本思想是:设集合S的初始状态为空,然后依次向集合S中加入顶点 0,1,...,n-1,每次加入一个顶点,用二维数组d保存各条最短路径的长度,其中d[i][j]存放的是顶点i到顶点j的最短路径的长度。详细的说明:Floyd算法中最重要的办法为二维数组d[i][j],d[i][j]为从i到j中间只经过S中的顶点的、所有可能的路径中的最短路径的长度。如果从i到j通过S中的节点无原创 2015-04-11 21:24:52 · 1230 阅读 · 0 评论 -
模式匹配的KMP 算法
常见的字符串匹配时,模式串长度为n,源串长度为m,则从头匹配,两个指针i指向源串,j指向模式串,如遇到不同则回溯使j=0,这样就要重复匹配会使效率变低。由于在现在i之前 的模式串与匹配串的匹配是相同的,即回溯时,不用将模式串与源串进行匹配,而只将模式串与自身匹配即可得到其是否需要回溯以及回溯到何处。则我们可以在进行模式匹配之前,想对模式串进行自我匹配,来计算出对于i在模式串的任意位置匹配失败后原创 2014-09-18 17:23:24 · 738 阅读 · 0 评论 -
排序算法 快速排序
快速排序的基本思想是:对于任意一个给定序列中的某个元素R,jin原创 2014-05-09 21:22:57 · 751 阅读 · 0 评论 -
c++ 数据结构之 set
标准模板库STL中提供的set容器。原创 2014-04-04 19:44:26 · 2398 阅读 · 0 评论 -
排序算法 简单选择排序
简单选择排序法的基本思想是:将初始序列作为待排序序列,第一趟在待p原创 2014-05-09 18:00:04 · 746 阅读 · 0 评论 -
排序算法 直接插入排序
直接插入排序:将序列中的第一个元素作为一个有序序列,然后jiang原创 2014-05-09 18:44:05 · 1113 阅读 · 0 评论 -
排序算法 冒泡排序
冒泡排序是通过交换两个元素实现de原创 2014-05-09 19:06:06 · 621 阅读 · 0 评论 -
排序算法 两路合并排序
两路合并排序是另一类时间复杂度为O(n* log2 n)的排序f原创 2014-05-09 22:48:13 · 2781 阅读 · 0 评论 -
排序算法 堆排序
堆排序使用最大堆。堆排序:将初始序列构造成最大堆; 第一趟排序,将堆顶元素 A[0] 和堆底元素 A[n-1]进行交换,然后调用AdjustDown对堆顶元素进行向下调整,使剩余的前n-1个元素还是堆。然后使堆顶元素与A[n-2]交换,在进行向下调整。直到最后只剩下堆顶元素。原创 2014-05-10 15:40:31 · 1011 阅读 · 0 评论 -
堆
堆是完全二叉树,一个大小为n的堆为一棵包含n个节点的完全二叉树。完全二叉树的根称为堆顶。当堆中每个节点的关键字值大于等于其双亲节点的关键字值,这样的堆称为最小堆,当子节点的值都小于等于其父节点时,称为最大堆。原创 2014-05-10 14:08:14 · 940 阅读 · 0 评论 -
单源最短路径的Dijkstra 算法
解决单源最短路径的常用算法为Dijkstra 算法, Dijkstra算法的主要思路为, 首先求得长度最短的一条最短路径,再求得长度次短的一条最短路径,依次类推,直到从原点到其他所有顶点之间的最短路径都已求得为止。 思路的详细说明: (1)使用一集合S来记录当前已获得最短路径的点集,一开始将起点V0,放入S中,即意味着V0到V0的最短路径已经得到,因为为0。使用一个一维数组 D[n]来记录 V原创 2015-04-11 19:33:31 · 911 阅读 · 0 评论