数据结构
fhawke
这个作者很懒,什么都没留下…
展开
-
DFS
迷宫问题题目背景给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。题目描述无输入格式第一行N、M和T,N为行,M为列,T为障碍总数。第二行起点坐标SX,SY,终点坐标FX,FY。接下来T行,每行为障碍点的坐标。...原创 2020-03-04 16:01:53 · 120 阅读 · 0 评论 -
约瑟夫环(STL详解)
约瑟夫问题是:有 n 只猴子,按顺时针方向围成一圈选大王(编号为 1~n),从第 1 号开始报数,一直数到 m,数到 m 的猴子退到圈外,剩下的猴子再接着从 1 开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王。编程求输入 n、m 后,输出最后猴王的编号。尝试使用STL容器进行解答:使用list,遍历并删除#include <stdio.h>#include <...原创 2020-02-16 15:57:55 · 533 阅读 · 0 评论 -
线段树
线段树应用引用描述#include <stdio.h>#include <stdlib.h>#define MAX_STR_LEN 1000/** 线段树应用**/void build_tree(int arr[],int tree[],int node,int start,int end){ if(start == en...原创 2020-01-07 15:43:30 · 113 阅读 · 0 评论 -
数据结构期末复习
## 链表2-11(neuDS)在单链表中,增加一个头结点的最终目的是为了(2 )。使单链表至少有一个结点方便运算的实现标识表结点中首结点的位置说明单链表是线性表的链式存储2-10将长度为n的单链表连接在长度为m的单链表之后的算法的时间复杂度为( 2)。O(1)O(m)O(n)O(n+m)要插入到长度为m的单链表,需要找到表尾,这个过程的时间复杂...原创 2019-12-07 00:38:10 · 4612 阅读 · 0 评论 -
图:Prim
Prim:最小生成树的生成普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小首先,结构体初始化,邻接矩阵定义,定义一个Cost来观察节点是否被访问int Graph[110][110];int Cost[110...原创 2019-11-22 11:19:18 · 155 阅读 · 0 评论 -
图:Dijkstra
Dijkstra:最短路径问题使用广度优先方法解决最短路径问题伪代码描述 1 function Dijkstra(G, w, s) 2 for each vertex v in V[G] //初始化 3 d[v] := infinity //将各点的已知最短距离先设成无穷大 4 previous[v] := undefined //各点的已知最短路径上的前趋都未知 5 d[s] := ...原创 2019-11-22 09:46:57 · 106 阅读 · 0 评论 -
二叉树:已知前/后/中序,建立二叉树并输出
由中序和后序输出前序显而易见,可以用递归实现:由二叉树的定义可知,已知前序和中序,或者后序和中序均可以求出整个二叉树原理:前序+中序:前序的第一个节点必定为根节点,找到前序的第一个节点在中序中的位置此时,在中序中,此节点左边为左子树,右边为右子树,以此类推,可以根据递归的思想进行实现同理,后序+中序:后序的最后一个节点必定为根节点,找到后序的最后一个节点在中序中的位置,左边为左子树,右...原创 2019-10-11 21:10:08 · 408 阅读 · 0 评论