![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 73
亭墨
一名喜欢轮滑,古风,正在学吹笛子,未来想做嵌入式驱动的电子科大生医工在读硕士
展开
-
LeetCode刷题日记002——两数相加
本文是记录自己刷leetcode题目的日常,这是第二题原创 2023-04-17 16:20:37 · 178 阅读 · 1 评论 -
LeetCode刷题日记001——两数之和
本文是记录自己做leetcode算法题的过程,这里是第一题原创 2023-04-17 16:16:29 · 73 阅读 · 0 评论 -
栈的应用,看看计算机是如何实现加减乘除等四则运算的
从小学起大家就知道,先算乘除,再算加减,有括号先算括号里的内容。那么计算机是如何实现的呢?这是一个很深刻的问题。1929年波兰逻辑学家J.Lukasiewicz提出逆波兰(简称NPR)表达式,及后缀表达式,我们来看一个式子:9 + (3 - 1)* 3 + 10 / 2;这是我们常写的形式,我们称之为中缀表达式,那么后缀表达式该怎么写呢?如下:9 3 1 - 3 * + 10 2 / ...原创 2019-08-19 22:18:20 · 1333 阅读 · 0 评论 -
图的遍历——深度优先遍历(DFS)
找东西的时候我们可以一个地方一个地方的找,比方说我先把卧室翻个底朝天,再翻客厅……深度优先遍历就是这么一个策略。我们来看一个例子:我们这样定下一个标准,在没有碰到重复顶点的情况下,始终是向右手边走。从A开始,向右走,走到了B,再走就是这么个顺序:A->B->C->D->E->F。到这里我们来看一下,向右走实惠到A的,但是A已经是走过的了,因此会退回到F,走右边起第...原创 2019-08-25 11:46:41 · 296 阅读 · 0 评论 -
最小生成树之普里姆算法
所谓最小生成树就是最小代价生成树,其经典算法有普利姆算法和克鲁斯卡尔算法,这篇来看看普利姆算法废话不多说,先上代码,再慢慢解析:typedef char VertexType; //顶点类型,可根据需要修改typedef int EdgeType; //边上的权值类型,可根据需要修改#define MAXVEX 100 //最大定点数,应由实际情况定#define INF...原创 2019-08-21 17:44:55 · 555 阅读 · 0 评论 -
最小生成树之克鲁斯卡尔算法
之前讲过普利姆算法,同样是最小生成树的算法,忘记的需要复习的,或没学过的可以看我之前的一篇博客最小生成树之普里姆算法,那么这篇博客咱们来谈谈克鲁斯卡尔算法...原创 2019-08-22 10:07:11 · 184 阅读 · 0 评论 -
任意点间求最短路径——弗洛伊德(Floyd)算法
迪杰斯特拉算法求得是 从某个特定的点出发到任意点之间的最短路径,但我们要处理从任一点到任一点怎么办?因此就直接介绍更具普遍意义而且代码写的很优美的弗洛伊德算法。弗洛伊德算法求的是任意点间的最短路径,为了方便说明,这里先给出一个例子:左边是一个网,右边的带回再解释。我们先来分析这个网,从v1到v2最短的路径是多少?反正不会是5,只要稍微绕个路,先去v0,再去v2,这个权值加起来只有3,所以最短...原创 2019-08-23 11:08:00 · 1277 阅读 · 0 评论 -
图的遍历——广度优先搜索(BFS)
我之前讲过广度优先搜索图的遍历——深度优先遍历(DFS)广度优先搜索的准则是我先翻遍一个地方,翻个底朝天之后再去翻另一个地方,注重深度。而广度优先搜索时先把一些常见的地方先找一遍,都找不到再看看角落是不是有,注重的是广度。这两种并没有孰好孰坏的分别,而是应当根据实际情况选择那种搜索方式。好了,那么广搜具体怎么样呢?我们来看一看:...原创 2019-08-27 09:25:12 · 557 阅读 · 0 评论 -
KMP模式匹配
给你两个字符串,你该如何对比它们两个是否相等呢?朴素模式匹配算法地想法是一个字符一个字符地比,不对就移一下。比如abcdefgoogle和goole,g会依次和a、b一直到g相比,最后发现有一样地,证明子串是在目标字符串中的。但这样效率是不是有点低呢?比方说比较goolgoole,第一次比完后我是不是不需要再把g和o比较了?因为o和o匹配了,是否可以有一种方法可以直接跳过中间那些呢(详见下图)?...原创 2019-09-01 12:31:41 · 108 阅读 · 0 评论