-------------数据结构-------------
文章平均质量分 71
不想悲伤到天明
这个作者很懒,什么都没留下…
展开
-
数据结构复习 --图的存储(邻接矩阵和邻接表)
邻接矩阵代码实现#include <iostream> #include <cstdio> #define INF 327677const int MaxSize = 105 ;typedef char InfoTtype ; using namespace std ;// 邻接矩阵typedef struct { int no ; // 顶点编号 InfoTtype info ; }VertexType ; // 顶点typedef stru原创 2020-08-14 11:36:11 · 969 阅读 · 0 评论 -
数据结构复习 -- 字符串
串知识框架**串的基本操作**StrAssion(&T,chars) ; 赋值操作,将串 T 赋值为 chars 。StrCompare(S,T) ;比较操作。Strlength(S) ; 求串的长度。Concat(&T,S1,S2) : 串连接。用T返回由S1和S2连接而成的新串。类型声明 :typedef struct{ char data[MaxSize]; int length; //串长} SqString;1 生成串void StrAs原创 2020-07-27 19:24:38 · 585 阅读 · 0 评论 -
数据结构复习 --- 数组
数组知识框架 稀疏矩阵数组的概念从逻辑结构上来说,一维数组A是 n 个相同数据类型元素 a1,a2… an 构成的有限数列。数组的存储结构在设计数组的存储结构时,通常将所有元素存储到存储器的一块连续的内存单元中,机数组比较适合采用顺序存储结构来存储。1. 一维数组的存储结构假设第一个元素 a1的存储地址用LOC(a1)表示,每个元素占用 k个存储单元,则任意数组元素ai的存储地址LOC(ai) 可以用下面的公式计算 :LOC(ai)=LOC(a1+(i−1)∗k)LOC(a_{i原创 2020-07-27 14:11:29 · 3059 阅读 · 0 评论 -
数据结构 --- 栈的应用
栈的应用栈在括号匹配中的应用假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序任意,([]) 或者[([ ][ ])]为正确的格式;[)(] 等为不正确的格式。 判断表达式是否是正确的格式。算法思想 :初始化一个栈,顺序读入表达式。如果是读到字符是左括号(包含 ‘(’ ,’[’ ,’{’) ),则将字符压入栈中。否则如果读到的是右括号,则如果和当前栈顶字符匹配,就将栈顶元素弹出,否则括号不匹配。// 括号匹配 for(int i = 0 ;i<str.lengt原创 2020-07-27 10:50:22 · 228 阅读 · 0 评论 -
数据结构复习 -- 顺序队列实现
#include <iostream>#include <cstdio>#include <cstdlib> #define MaxSize 100using namespace std ; typedef int ElemType ;// 队列顺序队列实现typedef struct { ElemType data[MaxSize] ; int front , rear ; // 队头和队尾}SqQueue ;void In..原创 2020-08-11 19:19:02 · 349 阅读 · 0 评论 -
数据结构复习 -- 顺序栈
#include <iostream>#include <cstdio>#include <cstdlib> #define MaxSize 100using namespace std ; typedef char ElemType ; typedef struct { ElemType data[MaxSize] ; int top ; }SqStack ; // 顺序栈void InitStack(SqStack *&..原创 2020-07-26 22:24:12 · 190 阅读 · 0 评论 -
数据结构复习 -- 顺序表
#include <iostream>#include <cstdio>#include <cstdlib>using namespace std ; typedef int ElemType ; const int MaxSize = 200; // const int InitSize = 50 ; typedef struct { ElemType data[MaxSize] ; int length ; }SqList;//.原创 2020-07-23 10:44:43 · 343 阅读 · 0 评论 -
数据结构复习 -- 线性表链式表示
#include <iostream>#include <cstdio>#include <cstdlib> using namespace std ;typedef int ElemType ; // 单链表的节点类型typedef struct LNode{ ElemType data ; // 数据域 struct LNode *next ; // 指针域}LinkNode ; // 头插法建立单链表void CreateLi.原创 2020-07-26 22:23:41 · 319 阅读 · 0 评论 -
数据结构 -- 链表逆序
#include <iostream>#include <cstdio>#include <cstdlib>using namespace std ;typedef int ElemType ;struct LinkNode{ ElemType data ; LinkNode *next ;};//void Init_LinkNode(Lin...原创 2020-02-09 15:10:29 · 267 阅读 · 0 评论 -
检查括号是否完全匹配 python
有效括号字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。举例:((())): True((()): False(())): Falseclass Stack(object) : def __init__(self,limit=10) : self.stack = [] # 存...原创 2019-08-18 11:35:48 · 1288 阅读 · 0 评论 -
LCA 最近公共祖先
参考:https://www.cnblogs.com/JVxie/p/4854719.html首先是最近公共祖先的概念(什么是最近公共祖先?):Tarjan/DFS+ST/倍增 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点。 换句话说,就是两个点在这棵树上距离最近的公共祖先节点。 ...原创 2019-06-02 19:37:34 · 258 阅读 · 0 评论 -
树的重心
设 size[x] 表示每个以 x 为根节点的子树的大小。对于叶节点,它的大小就是1 . 若节点 x 有 k个子节点 y1 ~ y k ,并且以 y1 ~ yk 为根的子树的大小分别是 size[y1] ,size[y2] ,.... size[yk] ,则以 x 为根的子树的大小就是 size[x] = size[ y1] + size[y2] + .... size[yk] +1 ;...原创 2019-06-02 17:07:22 · 2245 阅读 · 0 评论 -
二叉堆
二叉堆是一种支持插入,删除,查询最值的数据结构. 它其实是一棵满足"堆性质"的完全二叉树, 树上的每个节点带有一个权值。如果树上的任意一个子节点权值都小于等于父节点权值的,称该二叉树满足"大根堆"性质.如果树上任意一个子节点权值都大于等于父节点权值的,称该二叉树满足"小根堆"性质 . 这里以大根堆为例 . 1 . 存储采用一维数组 heap[i] , 节点 i 的...原创 2019-06-02 14:36:20 · 792 阅读 · 0 评论 -
STL进制转换
输入一个十进制数N,将它转换成R进制数输出。Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。Output 为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。 Sample Input 7 223 12-4 3Samp...原创 2018-06-08 23:25:38 · 2069 阅读 · 0 评论 -
数据结构--基本概念及术语
1. 数据 : 是对客观事物的符号表示,在我们计算机科学中是指所有能输入到计算机中,并能够被计算机程序处理的符号总称。他是计算机程序加工的“原料” 。比如说,一个利用数值分析法解代数方程的程序,他的处理对象是整数和实数,而一个编译程序或者文字处理系统,他们的处理对象则是字符串。因此,对计算机科学而言 ,数据的含义极为广泛,如图像,声音等都可通过编码而归之于数据的范畴。2 . 数据元素 : 是数据...原创 2018-06-10 10:21:56 · 354 阅读 · 0 评论 -
数据结构--线性表
线性表最简单也是最常用的一种数据结构,它的特点是,在数据元素的非空有限集中 ,(1)存在唯一一个被称为“第一个”的数据元素,存在唯一一个被称为“最后一个”的数据元素。(2)除了第一个数据元素外,集合中的其他数据元素都有一个直接前驱,除了最后一个元素外,集合中的其他数据元素都有一个直接后继; 线性表可分为顺序线性表和链式线性表,它们各有优缺点,顺序线性表中的数据元素之间在逻辑上相邻也在无理数...原创 2018-06-10 11:16:53 · 235 阅读 · 0 评论 -
用栈求解迷宫问题的所有路径及最短路径
#include <iostream>#include <cstdio>#include <cstdlib>using namespace std ;const int MAX = 105 ;int mg[MAX][MAX] ={{1,1,1,1,1,1},{1,0,0,0,1,1},{1,0,1,0,0,0,1},{1,0,0,0,1,1},{1...原创 2018-10-19 17:42:25 · 4830 阅读 · 0 评论 -
哈夫曼树的构造
1 哈夫曼树的概念参考 : https://blog.csdn.net/wtfmonking/article/details/17150499在许多应用中经常将树中的节点赋予一个权值 , 从根节点到该节点之间的路径长度与该节点上的权值的乘积称为该节点的带权路径长度(WPL) , 树中所有叶子节点的带权路径长度之和称为该树的带权路径长度。.其中no为叶节点的个数,wi和li分别表示第...原创 2018-11-23 20:13:49 · 5289 阅读 · 0 评论 -
学习-链式前向星
转载 https://blog.csdn.net/m0_37389559/article/details/75200652我们首先来看一下什么是前向星.前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序,并记录下以某个点为起点的所有边在数组中的起始位置和存储长度,那么前向星就构造好了. 用len[i]来记录所有以...转载 2018-11-19 19:39:11 · 164 阅读 · 0 评论 -
单调队列
参考https://www.cnblogs.com/tham/p/8038828.html单调队列是什么呢?可以直接从问题开始来展开。Poj 2823给定一个数列,从左至右输出每个长度为m的数列段内的最小数和最大数。数列长度:N<=106,m<=N暴力解很直观的一种解法,那就是从数列的开头,将窗放上去,然后找到这最开始的k个数的最大值,然后窗最后移一个单元,继续找到k个...原创 2018-12-21 18:12:41 · 128 阅读 · 0 评论 -
数据结构 -- 景区旅游信息管理系统
景区旅游信息管理系统【问题描述】在旅游景区,经常会遇到游客打听从一个景点到另一个景点的最短路径和最短距离,这类游客不喜欢按照导游图的线路来游览,而是挑选自己感兴趣的景点游览。为于帮助这类游客信息查询,就需要计算出所有景点之间最短路径和最短距离。算法采用迪杰斯特拉算法或弗洛伊德算法均可。建立一个景区旅游信息管理系统,实现的主要功能包括制订旅游景点导游线路策略和制订景区道路铺设策略。...原创 2019-01-07 19:04:16 · 16056 阅读 · 9 评论 -
静态链表的选择排序算法
在静态链表中, 先将原链表中的第一个元素不变,然后将其他所有元素放入备用静态链表中, 接着取备用链表中的第一个元素与元静态链表的第一个元素比较,插入到原静态链表中,继续从备用静态链表中去一个元素,让他跟原静态链表中的第一个元素作比较找到相应位置插入,以后同理 .#include <iostream>#include <cstdio>#include <...原创 2019-05-19 12:47:44 · 944 阅读 · 0 评论 -
线段树入门
参考https://www.cnblogs.com/AC-King/p/7789013.html一: 定义线段树是一棵二叉树,树中的每一个结点表示了一个区间[a,b]。a,b通常是整数。 每一个叶子节点表示了一个单位区间。 对于每一个非叶子结点所表示的结点[a,b], 其左儿子表示的区间为[a,(a+b)/2],右儿 子表示的区间为[(a+b)/2 + 1,b]。线段树适用于和区间统...原创 2019-02-12 17:02:22 · 260 阅读 · 0 评论 -
KMP算法
先来一波代码 :#include <iostream>#include <cstdio>#include <cstring>using namespace std ;const int MAX = 1005 ;typedef long long LL ;int next[MAX] ; // next数组void getNext(char *...转载 2018-08-04 21:38:17 · 16112 阅读 · 2 评论 -
数据结构--顺序线性表
#include <iostream>#include <cstdio>#include<cstdlib>#include <cstring>using namespace std;#define OK 1#define ERROR -1#define LIST_INIT_SIZE 100#define LISTSIZE 10#d...原创 2018-06-08 21:18:24 · 166 阅读 · 0 评论