![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
weixin_43869906
这个作者很懒,什么都没留下…
展开
-
双向链表的插入和删除
转载:https://blog.csdn.net/any1234567890/article/details/82804685双向链表的插入第一步:首先找到插入位置,节点 s 将插入到节点 p 之前第二步:将节点 s 的前驱指向节点 p 的前驱,即 s->prior = p->prior;第三步:将节点 p 的前驱的后继指向节点 s 即 p->prior->nex...转载 2019-03-20 09:35:58 · 165 阅读 · 0 评论 -
数据结构—八皇后问题(回溯法)
回溯法,又被称为“试探法”。解决问题时,每进行一步,都是抱着试试看的态度,如果发现当前选择并不是最好的,或者这么走下去肯定达不到目标,立刻做回退操作重新选择。这种走不通就回退再走的方法就是回溯法。回溯VS递归很多人认为回溯和递归是一样的,其实不然。在回溯法中可以看到有递归的身影,但是两者是有区别的。回溯法从问题本身出发,寻找可能实现的所有情况。和穷举法的思想相近,不同在于穷举法是将所有的情况...转载 2019-04-19 22:02:36 · 475 阅读 · 1 评论 -
数据结构—B树
引言我们都知道二叉查找树的查找的时间复杂度是O(log N),其查找效率已经足够高了,那为什么还有B树和B+树的出现呢?难道它两的时间复杂度比二叉查找树还小吗? 答案当然不是,B树和B+树的出现是因为另外一个问题,那就是磁盘IO;众所周知,IO操作的效率很低,那么,当在大量数据存储中,查询时我们不能一下子将所有数据加载到内存中,只能逐一加载磁盘页,每个磁盘页对应树的节点。造成大量磁盘IO操作...转载 2019-04-21 22:05:02 · 199 阅读 · 0 评论 -
数据结构-九宫格(回溯法)
数独,是源自18世纪瑞士的一种数学游戏。是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3)内的数字均含1-9,不重复。数独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。使1-9每个数字在每一行、每一列和每一宫中都只出现一次,...转载 2019-04-20 22:58:57 · 2337 阅读 · 0 评论 -
数据结构—排序
1.插入排序主要代码:for (int i = 1; i < n; i++){int tmp = arr[i];j = i;for (; j >= 0 && tmp < arr[j-1]; j–){arr[j] = arr[j-1];}arr[j] = tmp;}时间复杂度:O(n)~O(n^2)之间。稳定性:稳定2.冒泡排序主要代码...原创 2019-04-09 21:24:44 · 145 阅读 · 0 评论 -
C++ Kruskal算法
最小生成树之kruskal(克鲁斯卡尔)算法kruskal算法:同样解决最小生成树的问题,和prim算法不同,kruskal算法采用了边贪心的策略,思想要比prim算法简单。算法基本思想:在初始状态时隐去图中的所有边,这样图中每个顶点都自成一个连通块。之后执行下面的步骤:(1)对所有的边按边权从小到大进行排序;(2)按边权从小到大测试所有边,如果当前测试边所连接的两个顶点不在同一个连通块中...原创 2019-03-21 15:28:43 · 812 阅读 · 0 评论 -
C++数据结构与算法分析 Graph
Dijkstra算法的伪代码:[plain] view plain copy 在CODE上查看代码片派生到我的代码片void Graph::dijkstra(Vertex s){//初始化顶点信息for each Vertex v{v.known = false;v.dist = INFINITY;v.path = 0;} //起点s的dist设为0 ...原创 2019-03-16 20:29:48 · 106 阅读 · 0 评论