Data Structure
江野_c
功不唐捐
展开
-
TopK问题
Topk原创 2022-05-31 21:31:36 · 164 阅读 · 0 评论 -
BFS(广度优先)
BFS(广度优先)问题描述: 给定一副地图,一个开始坐标,一个结束坐标,寻找一条可以从开始坐标到结束坐标的最短路径定义数据类型如下:typedef struct node { int step=0;//从起点到该点的步数 int x; int y;} path, node;问题分析:通过广度优先的思想,借助队列的结构,一层一层标记地图上从起点到各个点的距离,算出最短距离,判断每个点的距离是否连续,找到终点即为最短的路径。先压入队列起点,弹出队列头部元素,通过方向数组判断方向,在将其相邻的元原创 2022-04-07 20:02:35 · 75 阅读 · 0 评论 -
BFS(广度优先)
问题描述:给定一副地图,一个开始坐标,一个结束坐标,寻找一条可以从开始坐标到结束坐标的最短路径定义数据类型如下:typedef struct node { int step=0;//从起点到该点的步数 int x; int y;} path, node;问题分析:通过广度优先的思想,借助队列的结构,一层一层标记地图上从起点到各个点的距离,算出最短距离,判断每个点的距离是否连续,找到终点即为最短的路径。先压入队列起点,弹出队列头部元素,通过方向数组判断方向,在将其相..原创 2022-04-07 20:00:41 · 220 阅读 · 0 评论 -
迷宫求解(深度优先)
迷宫求解**问题初始条件:**给定一副地图,一个开始坐标,一个结束坐标,寻找一条可以从开始坐标到结束坐标的路径**问题分析:**可以用栈存储路径的坐标且坐标应有横纵两个属性来对应迷宫二维数组中的位置,此外还需要一个属性来确定方向下一个走到的路径的坐标,定义坐标结构体如下:typedef struct { int row; int col; int walk;//判断方向}PosType;**问题关键:**如何走迷宫,首先不能走自己已经走过的路,其次不能走地图中不可走的路,当排除这两个条件后原创 2022-03-24 22:08:11 · 2523 阅读 · 0 评论 -
KMP算法(快速找出字串)
核心:通过寻找公共前后缀找出next数组前后缀: 前缀:以第一个字母开头,但不包含最后一个字母 后缀:以最后一个字母结尾,但不包含第一个字母 注:若当前字符的前一位的最长公共前后缀(len)为2,则当前字符只需比较与第三位的字符是否相等,若相等则最长公共前后缀(len的长度+1;若不相等则需要与数组[len-1]位元素比较(还没搞懂)//next数组可从两方面思考:先找出子串对应的前缀表,在将其后移一位,并将第一位填上-1void prefix_table(char *pat原创 2022-03-23 19:46:28 · 106 阅读 · 0 评论