数据结构
文章平均质量分 55
数据结构
1hdmx1t
这个作者很懒,什么都没留下…
展开
-
简单算术表达式求值(中缀表达式直接求值) 算法训练 表达式计算
只涉及+ - * / ()中缀表达式直接求值(使用两个栈:数字栈、符号栈)如果为左括号,直接入符号栈。如果为数字,直接入数字栈。如果当前指向运算符优先级<=符号栈栈顶优先级:从数字栈中弹出两个数字,符号栈中弹出一个数字,进行运算,运算结果压入数字栈。如果当前指向运算符优先级>符号栈栈顶优先级:直接入符号栈。如果为右括号,不断出栈运算,直到遇到左括号停止运算,左括号也要出栈...原创 2020-01-06 13:54:59 · 574 阅读 · 0 评论 -
KMP next&nextval
数据结构中,在串的这节,其实难度不大,关键是模式匹配的问题,而在模式匹配中要数KMP算法的难度最大,而KMP的next&nextval的计算则成了学习的重中之重。面对好多学校的教程跳过不讲,而教材里的公式又难以理解,好多自学的同仁们往往在这上面费尽心思。现在把我的学习心得发出来共享,如有错误,还望不吝指正。T :1 2 3 4 5 6 7串 :a b c a b a anex...转载 2019-03-12 18:50:08 · 322 阅读 · 0 评论 -
拓扑排序入门两种模板
一:深度优先遍历(dfs)运用递归从后往前找,先递归到尽头找出度为零的点,不断插入到数组首即可。使用了刘汝佳老师的代码,顺便还判断了是否有有向环。#include <bits/stdc++.h>using namespace std;#define maxn 105int matrix[maxn][maxn], vis[maxn], topo[maxn], n, ...原创 2019-03-07 15:28:20 · 131 阅读 · 0 评论 -
欧拉回路
什么是欧拉回路?欧拉回路是在无向图中从一个点(或有向图从起点)出发走出一条每条边恰好经过一次的道路。我们学要学会判断该图是否为欧拉回路,以及写出欧拉回路。欧拉回路的条件:奇点:度数为奇数的点(无向图无出度,入度概念)。1:无向图:前提:无向图必须为连通图。 最多只能有两个奇点,且必须是从一个奇点出发,到达另一个奇点。若无奇点,则回到原点。2:有向图前提:有向图...原创 2019-03-08 17:10:54 · 649 阅读 · 0 评论 -
哈希函数的构造和冲突处理
哈希法又称散列法、杂凑法以及关键字地址计算法等,相应的表称为哈希表。这种方法的基本思想是:首先在元素的关键字k和元素的存储位置p之间建立一个对应关系f,使得p=f(k),f称为哈希函数。创建哈希表时,把关键字为k的元素直接存入地址为f(k)的单元;以后当查找关键字为k的元素时,再利用哈希函数计算出该元素的存储位置p=f(k),从而达到按关键字直接存取元素的目的。当关键字集合很大时,关键字值不同的...转载 2018-12-22 17:01:51 · 727 阅读 · 0 评论 -
二叉树,树,森林的转换
1.树、森林到二叉树的转换(1)将树转换为二叉树 树中每个结点最多只有一个最左边的孩子(长子)和一个右邻的兄弟。按照这种关系很自然地就能将树转换成相应的二叉树: ①在所有兄弟结点之间加一连线; ②对每个结点,除了保留与其长子的连线外,去掉该结点与其它孩子的连线。【例】下面(a)图所示的树可转换为©图所示的二叉树。注意: 由于树根没有兄弟,故树转化为二叉树后,二叉树的根结点...原创 2019-10-24 21:12:14 · 174 阅读 · 0 评论 -
二叉树,图相关易错选择和解析
O(n*n)是用邻接矩阵存储时的时间复杂度。算法就是遍历每一条边,然后把每条边的终点的入度+1.在邻接表中,就是要依次访问每个顶点,然后在每个顶点中依次访问每条边,把这些边的终点的入度+1。也就是每个顶点和每条边依次要各访问一遍,所以时间复杂度是O(n+e)。在邻接矩阵中,算法需要遍历邻接矩阵的每一个点,而邻接矩阵有n*n个点,所以时间复杂度是O(n*n)。原创 2018-12-19 21:45:58 · 2768 阅读 · 0 评论