<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Lzh4792的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Lzh4792</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Lzh4792]]></copyright><item><title><![CDATA[2021-08-02]]></title><link>https://blog.youkuaiyun.com/Lzh4792/article/details/119221608</link><guid>https://blog.youkuaiyun.com/Lzh4792/article/details/119221608</guid><author>Lzh4792</author><pubDate>Sat, 31 Jul 2021 21:49:58 +0800</pubDate><description><![CDATA[数据结构1、向量 vector1.1介绍1.2初始化1.3常用内置函数1.42、链表 list3、栈 stack4、队列 queue5、集合 set6、映射 map7、树 tree8、堆 heap
1、向量 vector
1.1介绍
进行vector操作前应添加头文件#include&lt;vector&gt;
vector是向量类型，可以容纳许多类型的数据（int，double，string，结构体），因此也被称为容器
(可以理解为动态数组，是封装好了的类）
1.2初始化
vector&lt;int&gt]]></description><category></category></item><item><title><![CDATA[个人笔记--图的构造及DFS和BFS遍历]]></title><link>https://blog.youkuaiyun.com/Lzh4792/article/details/111348072</link><guid>https://blog.youkuaiyun.com/Lzh4792/article/details/111348072</guid><author>Lzh4792</author><pubDate>Thu, 17 Dec 2020 22:55:33 +0800</pubDate><description><![CDATA[图的构造和两种遍历（DFS和BFS）
图的构造函数
Status LocateVex(MGraph G,VertexType u)//访问无向网图中该顶点所在位置
{
	int i;
	for(i=1;i&lt;=G.vexnum;++i)
		if(G.vexs[i]==u)
			return i;
	return 0;
}
void CreateUDN(MGraph &amp;G)//创建无向网图
{
	int i,j,k,w;
	VertexType v1,v2;
	char tmp;
	cout&]]></description><category></category></item><item><title><![CDATA[个人笔记--HuffmanTree哈夫曼树（赫夫曼树）及哈夫曼编码]]></title><link>https://blog.youkuaiyun.com/Lzh4792/article/details/110410187</link><guid>https://blog.youkuaiyun.com/Lzh4792/article/details/110410187</guid><author>Lzh4792</author><pubDate>Mon, 30 Nov 2020 22:59:56 +0800</pubDate><description><![CDATA[哈夫曼树的构建及哈夫曼编码的生成与转换
代码先放这，有时间写注释及解析
#include&lt;bits/stdc++.h&gt;
#define inf 0x3f3f3f3f
using namespace std;

typedef struct{
	int weight;
	int parent,lchild,rchild;
}HTNode,*HuffmanTree;
typedef char **HuffmanCode;

void HuffmanCout(int *a)
{
	for(int i=]]></description><category></category></item><item><title><![CDATA[个人笔记--二叉树的链式存储与前、中、后、层序遍历]]></title><link>https://blog.youkuaiyun.com/Lzh4792/article/details/109912379</link><guid>https://blog.youkuaiyun.com/Lzh4792/article/details/109912379</guid><author>Lzh4792</author><pubDate>Sun, 22 Nov 2020 00:06:24 +0800</pubDate><description><![CDATA[二叉树
创建树：
ABC$$DE$G$$F$$$


代码先放这，有空写注释
#include&lt;bits/stdc++.h&gt;
#include&lt;cstdio&gt;
using namespace std;
#define OK 1
#define ERROR 0
#define MAX_TREE_SIZE 100
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef char TElemType;
typedef bo]]></description><category></category></item><item><title><![CDATA[算法笔记--并查集模板 题openjudge - 1526:宗教信仰]]></title><link>https://blog.youkuaiyun.com/Lzh4792/article/details/109560226</link><guid>https://blog.youkuaiyun.com/Lzh4792/article/details/109560226</guid><author>Lzh4792</author><pubDate>Sun, 08 Nov 2020 15:54:21 +0800</pubDate><description><![CDATA[并查集
查询两个集合中是否有相同的元素，如果有，合并成一个集合；没有就算了
拿oj上一道题来说
1526:宗教信仰
描述
世界上有许多宗教，你感兴趣的是你学校里的同学信仰多少种宗教。
你的学校有n名学生（0 &lt; n &lt;= 50000），你不太可能询问每个人的宗教信仰，因为他们不太愿意透露。但是当你同时找到2名学生，他们却愿意告诉你他们是否信仰同一宗教，你可以通过很多这样的询问估算学校里的宗教数目的上限。你可以认为每名学生只会信仰最多一种宗教。
输入
输入包括多组数据。
每组数据的第一行包括n和m]]></description><category></category></item><item><title><![CDATA[算法笔记--快速幂算法模板]]></title><link>https://blog.youkuaiyun.com/Lzh4792/article/details/109547686</link><guid>https://blog.youkuaiyun.com/Lzh4792/article/details/109547686</guid><author>Lzh4792</author><pubDate>Sat, 07 Nov 2020 15:38:39 +0800</pubDate><description><![CDATA[快速幂模板
快速幂算法能帮我们算出指数非常大的幂，比如2的1000000000次方的后几位，（算是能算出来，但存不进去完，太太太太太太大了，这里只显示后几位）
example：
2 1000000000
376
本篇无注释，纯属自己复习快速幂 抄模板专用
#include&lt;bits/stdc++.h&gt;
using namespace std;
#define ll long long
const ll mod=1e9;
ll ppow(ll a,ll b)
{
	ll ans=1;
	ll ba]]></description><category></category></item><item><title><![CDATA[个人笔记--稀疏矩阵的压缩存储与两种转置方法]]></title><link>https://blog.youkuaiyun.com/Lzh4792/article/details/109500579</link><guid>https://blog.youkuaiyun.com/Lzh4792/article/details/109500579</guid><author>Lzh4792</author><pubDate>Thu, 05 Nov 2020 00:10:58 +0800</pubDate><description><![CDATA[目录矩阵稀疏矩阵稀疏矩阵的构建稀疏矩阵的销毁输出稀疏矩阵一般转置快速转置
矩阵
在数学中，矩阵（Matrix）是一个按照长方阵列排列的复数或实数集合 ，最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。
稀疏矩阵
就是在矩阵中，若数值为0的元素数目远远多于非0元素的数目，并且非0元素分布没有规律时，则称该矩阵为稀疏矩阵，是一种特殊的矩阵。为了节省空间，我们可以对此类矩阵进行压缩存储。所谓压缩存储，是指为每个非零的元分配一个存储空间，对零元不分配空间。
稀疏矩阵的构建
//定]]></description><category></category></item><item><title><![CDATA[算法笔记--DFS和BFS的复习（板子）]]></title><link>https://blog.youkuaiyun.com/Lzh4792/article/details/109440434</link><guid>https://blog.youkuaiyun.com/Lzh4792/article/details/109440434</guid><author>Lzh4792</author><pubDate>Sun, 01 Nov 2020 23:06:20 +0800</pubDate><description><![CDATA[板子BFS（广度优先搜索）DFS（深度优先搜索）
迷宫
0 1 0 0 0
0 1 0 1 0
0 0 0 0 0
0 1 1 1 0
0 0 0 1 0
左上角走到右下角最短路径
BFS（广度优先搜索）
#include&lt;iostream&gt;
#include&lt;queue&gt;
#include&lt;cstdio&gt;
using namespace std;
int map[5][5];
bool vis[5][5];
int d[5][5]={0};
int dx[4]={1,0]]></description><category></category></item><item><title><![CDATA[算法笔记--素数筛（朴素筛，埃式筛，欧拉筛）]]></title><link>https://blog.youkuaiyun.com/Lzh4792/article/details/109396067</link><guid>https://blog.youkuaiyun.com/Lzh4792/article/details/109396067</guid><author>Lzh4792</author><pubDate>Sat, 31 Oct 2020 01:24:08 +0800</pubDate><description><![CDATA[素数
素数也叫质数，是指在大于1的自然数中，除了1和它本身以外不再有其他因数的自然数。如2 , 3 , 5 , 7 , 11等。
素数筛
素数筛即筛选出1~n内的素数的方法，这里介绍三种
常见的求素数的方法素数素数筛1.朴素筛2.埃氏筛3.欧拉筛
1.朴素筛
由上面的概念得，我们可以想到引入一个从1到它本身的for循环，只要中间有取余为0，那么它就不是素数。
#define MAX 100000
int prime[MAX];
int x=0;
void psshai(int n)
{
	for(int i]]></description><category></category></item><item><title><![CDATA[个人笔记--（单链表）队列的初始化，入队和出队]]></title><link>https://blog.youkuaiyun.com/Lzh4792/article/details/109366654</link><guid>https://blog.youkuaiyun.com/Lzh4792/article/details/109366654</guid><author>Lzh4792</author><pubDate>Thu, 29 Oct 2020 19:23:53 +0800</pubDate><description><![CDATA[队列的一些基本操作
目录队列的一些基本操作初始化队列销毁队列清空队列队列判空求队列长度取队头元素入队出队输出队列完整代码
初始化队列
Status InitQueue(LinkQueue &amp;q)
{
    q.front=q.rear=(QueuePtr)malloc(sizeof(QNode));//申请空间
    if(!q.front)//内存不够，申请失败
        exit(OVERFLOW);
    q.front-&gt;next=NULL;//队头指针指向空
    re]]></description><category></category></item><item><title><![CDATA[个人笔记--（带头结点）单链表的一些基本操作，头插法尾插法]]></title><link>https://blog.youkuaiyun.com/Lzh4792/article/details/109354999</link><guid>https://blog.youkuaiyun.com/Lzh4792/article/details/109354999</guid><author>Lzh4792</author><pubDate>Thu, 29 Oct 2020 12:29:14 +0800</pubDate><description><![CDATA[链表
头文件以及结构体定义放最前面了，主函数就不写了，想必理解了以下子函数，主函数不是有手就行？
#include&lt;bits/stdc++.h&gt;
using namespace std;
#define OK 1
#define ERROR 0
#define Listsize 100
typedef int ElemType;
typedef int Status;
typedef struct LNode{
	ElemType data;//数据域 
	struct LNode *next;]]></description><category></category></item><item><title><![CDATA[个人笔记--栈的基本操作（初始化，出栈，入栈以及进制转换）]]></title><link>https://blog.youkuaiyun.com/Lzh4792/article/details/109338319</link><guid>https://blog.youkuaiyun.com/Lzh4792/article/details/109338319</guid><author>Lzh4792</author><pubDate>Wed, 28 Oct 2020 18:32:45 +0800</pubDate><description><![CDATA[栈的一些基本操作
目录栈的一些基本操作栈的概念(新手必看)初始化栈销毁栈清空栈判空栈栈长度取栈顶元素入栈操作出栈操作输出栈进制转换
栈的概念(新手必看)
栈（stack）又名堆栈，是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶，相对地，把另一端称为栈底。向一个栈插入新元素又称作入栈，就是把新元素放到栈顶元素的上面，使之成为新的栈顶元素；从一个栈删除元素又称作出栈，它是把栈顶元素删除掉，使前一个元素成为新的栈顶元素。
存在两个指针，一个始终指向栈底，叫做栈底指针，一个指向栈顶]]></description><category></category></item><item><title><![CDATA[算法笔记--字符串匹配KMP算法，简单易懂]]></title><link>https://blog.youkuaiyun.com/Lzh4792/article/details/109230807</link><guid>https://blog.youkuaiyun.com/Lzh4792/article/details/109230807</guid><author>Lzh4792</author><pubDate>Thu, 22 Oct 2020 22:57:55 +0800</pubDate><description><![CDATA[KMP算法
KMP算法看懂了就会感觉挺容易的，思路也很清晰。看不懂就会稀里糊涂。
先说什么是字符串匹配
字符串匹配。简单来说，就是给你两个字符串，寻找其中一个字符串是否包含另一个字符串，如果包含，返回包含的起始位置。
比如下面两个字符串：
string s1="bacbababadababacacabc";
string s2="ababaca";

s1中包含s2，在s1下标10处；
bacbababadababacacabc
再说说KMP算法
看完字符串匹配，你可能想到的可能是拿s1的首位与s2的首位比]]></description><category></category></item><item><title><![CDATA[个人笔记--线性表的基本操作（插入、删除、查找...）]]></title><link>https://blog.youkuaiyun.com/Lzh4792/article/details/109219613</link><guid>https://blog.youkuaiyun.com/Lzh4792/article/details/109219613</guid><author>Lzh4792</author><pubDate>Thu, 22 Oct 2020 12:40:16 +0800</pubDate><description><![CDATA[线性表的一些基本操作
这里只介绍以下操作
1----初始化
2----销毁线性表
3----清空线性表
4----判断线性表是否为空
5----求线性表长度
6----获取线性表中指定位置的元素
7----获取线性表元素的位置
8----求前驱
9----求后继
10----在线性表指定位置插入元素
11----删除线性表指定位置的元素
12----显示线性表
13----合并两个非递减有序的线性表
------------------------------------------------------]]></description><category></category></item></channel></rss>