自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 2021-08-02

数据结构1、向量 vector1.1介绍1.2初始化1.3常用内置函数1.42、链表 list3、栈 stack4、队列 queue5、集合 set6、映射 map7、树 tree8、堆 heap1、向量 vector1.1介绍进行vector操作前应添加头文件#include<vector>vector是向量类型,可以容纳许多类型的数据(int,double,string,结构体),因此也被称为容器(可以理解为动态数组,是封装好了的类)1.2初始化vector<int&gt

2021-07-31 21:49:58 328

原创 个人笔记--图的构造及DFS和BFS遍历

图的构造和两种遍历(DFS和BFS)图的构造函数Status LocateVex(MGraph G,VertexType u)//访问无向网图中该顶点所在位置{ int i; for(i=1;i<=G.vexnum;++i) if(G.vexs[i]==u) return i; return 0;}void CreateUDN(MGraph &G)//创建无向网图{ int i,j,k,w; VertexType v1,v2; char tmp; cout&

2020-12-17 22:55:33 361

原创 个人笔记--HuffmanTree哈夫曼树(赫夫曼树)及哈夫曼编码

哈夫曼树的构建及哈夫曼编码的生成与转换代码先放这,有时间写注释及解析#include<bits/stdc++.h>#define inf 0x3f3f3f3fusing namespace std;typedef struct{ int weight; int parent,lchild,rchild;}HTNode,*HuffmanTree;typedef char **HuffmanCode;void HuffmanCout(int *a){ for(int i=

2020-11-30 22:59:56 3007 2

原创 个人笔记--二叉树的链式存储与前、中、后、层序遍历

二叉树创建树:ABC$$DE$G$$F$$$代码先放这,有空写注释#include<bits/stdc++.h>#include<cstdio>using namespace std;#define OK 1#define ERROR 0#define MAX_TREE_SIZE 100#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef char TElemType;typedef bo

2020-11-22 00:06:24 290

原创 算法笔记--并查集模板 题openjudge - 1526:宗教信仰

并查集查询两个集合中是否有相同的元素,如果有,合并成一个集合;没有就算了拿oj上一道题来说1526:宗教信仰描述世界上有许多宗教,你感兴趣的是你学校里的同学信仰多少种宗教。你的学校有n名学生(0 < n <= 50000),你不太可能询问每个人的宗教信仰,因为他们不太愿意透露。但是当你同时找到2名学生,他们却愿意告诉你他们是否信仰同一宗教,你可以通过很多这样的询问估算学校里的宗教数目的上限。你可以认为每名学生只会信仰最多一种宗教。输入输入包括多组数据。每组数据的第一行包括n和m

2020-11-08 15:54:21 388

原创 算法笔记--快速幂算法模板

快速幂模板快速幂算法能帮我们算出指数非常大的幂,比如2的1000000000次方的后几位,(算是能算出来,但存不进去完,太太太太太太大了,这里只显示后几位)example:2 1000000000376本篇无注释,纯属自己复习快速幂 抄模板专用#include<bits/stdc++.h>using namespace std;#define ll long longconst ll mod=1e9;ll ppow(ll a,ll b){ ll ans=1; ll ba

2020-11-07 15:38:39 151

原创 个人笔记--稀疏矩阵的压缩存储与两种转置方法

目录矩阵稀疏矩阵稀疏矩阵的构建稀疏矩阵的销毁输出稀疏矩阵一般转置快速转置矩阵在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合 ,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。稀疏矩阵就是在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵,是一种特殊的矩阵。为了节省空间,我们可以对此类矩阵进行压缩存储。所谓压缩存储,是指为每个非零的元分配一个存储空间,对零元不分配空间。稀疏矩阵的构建//定

2020-11-05 00:10:58 992

原创 算法笔记--DFS和BFS的复习(板子)

板子BFS(广度优先搜索)DFS(深度优先搜索)迷宫0 1 0 0 00 1 0 1 00 0 0 0 00 1 1 1 00 0 0 1 0左上角走到右下角最短路径BFS(广度优先搜索)#include<iostream>#include<queue>#include<cstdio>using namespace std;int map[5][5];bool vis[5][5];int d[5][5]={0};int dx[4]={1,0

2020-11-01 23:06:20 301

原创 算法笔记--素数筛(朴素筛,埃式筛,欧拉筛)

素数素数也叫质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。如2 , 3 , 5 , 7 , 11等。素数筛素数筛即筛选出1~n内的素数的方法,这里介绍三种常见的求素数的方法素数素数筛1.朴素筛2.埃氏筛3.欧拉筛1.朴素筛由上面的概念得,我们可以想到引入一个从1到它本身的for循环,只要中间有取余为0,那么它就不是素数。#define MAX 100000int prime[MAX];int x=0;void psshai(int n){ for(int i

2020-10-31 01:24:08 798

原创 个人笔记--(单链表)队列的初始化,入队和出队

队列的一些基本操作目录队列的一些基本操作初始化队列销毁队列清空队列队列判空求队列长度取队头元素入队出队输出队列完整代码初始化队列Status InitQueue(LinkQueue &q){ q.front=q.rear=(QueuePtr)malloc(sizeof(QNode));//申请空间 if(!q.front)//内存不够,申请失败 exit(OVERFLOW); q.front->next=NULL;//队头指针指向空 re

2020-10-29 19:23:53 872

原创 个人笔记--(带头结点)单链表的一些基本操作,头插法尾插法

链表头文件以及结构体定义放最前面了,主函数就不写了,想必理解了以下子函数,主函数不是有手就行?#include<bits/stdc++.h>using namespace std;#define OK 1#define ERROR 0#define Listsize 100typedef int ElemType;typedef int Status;typedef struct LNode{ ElemType data;//数据域 struct LNode *next;

2020-10-29 12:29:14 1328

原创 个人笔记--栈的基本操作(初始化,出栈,入栈以及进制转换)

栈的一些基本操作目录栈的一些基本操作栈的概念(新手必看)初始化栈销毁栈清空栈判空栈栈长度取栈顶元素入栈操作出栈操作输出栈进制转换栈的概念(新手必看)栈(stack)又名堆栈,是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作入栈,就是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈,它是把栈顶元素删除掉,使前一个元素成为新的栈顶元素。存在两个指针,一个始终指向栈底,叫做栈底指针,一个指向栈顶

2020-10-28 18:32:45 9792 6

原创 算法笔记--字符串匹配KMP算法,简单易懂

KMP算法KMP算法看懂了就会感觉挺容易的,思路也很清晰。看不懂就会稀里糊涂。先说什么是字符串匹配字符串匹配。简单来说,就是给你两个字符串,寻找其中一个字符串是否包含另一个字符串,如果包含,返回包含的起始位置。比如下面两个字符串:string s1="bacbababadababacacabc";string s2="ababaca";s1中包含s2,在s1下标10处;bacbababadababacacabc再说说KMP算法看完字符串匹配,你可能想到的可能是拿s1的首位与s2的首位比

2020-10-22 22:57:55 206

原创 个人笔记--线性表的基本操作(插入、删除、查找...)

线性表的一些基本操作这里只介绍以下操作1----初始化2----销毁线性表3----清空线性表4----判断线性表是否为空5----求线性表长度6----获取线性表中指定位置的元素7----获取线性表元素的位置8----求前驱9----求后继10----在线性表指定位置插入元素11----删除线性表指定位置的元素12----显示线性表13----合并两个非递减有序的线性表------------------------------------------------------

2020-10-22 12:40:16 2535 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除