自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 腾讯天气前后端交互案例

简介此案例主要是应用jQuery里的$.ajax()方法进行前后端交互获取url方法搜索 腾讯天气F12 Network 刷新找到这个右键 点击Open in new tab会看到如下页面上面的地址就是我们要用的url$.ajax()简介HTML和CSS代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8">

2020-12-07 22:48:06 969

原创 数据结构--哈夫曼树与哈夫曼编码

哈夫曼树什么是哈夫曼树哈夫曼树是一类带权路径长度最短的二叉树,中文名叫哈(郝)夫曼树或最优二叉树。相关概念:1.结点的路径长度:从根结点到该结点的路径上分支的数目。2.树的路径长度:树中每个结点的路径长度之和。3.树的带权路径长度:树中所有叶子结点的带权路径长度之和。如何构建哈夫曼树我们拥有不同的数出现的次数,也就是权值,哈夫曼树也是一颗二叉树,我们将所有权值按照从小到大的顺序...

2020-05-02 18:27:14 1068

原创 数据结构--树(总结)

树树是一种非线性结构树的定义有且只有一个称为根的节点有若干个互不相交的子树,这些子树本身也是一颗树深度:从根节点到最底层节点的层数称之为深度 根节点是第一层叶子节点:没有子节点的节点非终端节点:实际就是非叶子节点** 度**:子节点的个数称为度树的分类一般树:任何一个节点的子节点的个数都不受限制二叉树:任意一个子节点的个数最多两个,且子节点的位置不可更改1....

2020-04-27 00:54:19 393

原创 数据结构--字符串匹配算法(BF,KMP)

什么是字符串匹配两个字符串A和B,判断B是否是A的字串,并返回B再A中第一次出现的位置 如下图返回3没有匹配的 返回0BF我们很容易想出一种简单粗暴的方式,就是从主串开始,把字符串A和字符串B的字符逐个比较 如果出现不相同的 如第一个图片把字符串B向后移动一位,从字符串A的第二位开始,把字符串A和字符串B的字符逐个比较总结来说 我们可以i,j来分别记录字符再字符...

2020-04-19 03:19:57 208

原创 数据结构--串

串串其实就是字符串,在c语言中头文件 #include<string.h> 就包含了对其的大部分操作大话数据结构上列出了对串的一些基本函数操作,将字符数组的第一个位置存储为整个字符串的长度,但我没有那么写,而是按一般思维就直接将字符串直接存入数组代码实现#include<stdio.h>#include<stdlib.h>#define MA...

2020-04-18 18:49:57 137

原创 数据结构--队列(循环,链式)

队列的定义队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表队列是一种先进先出的线性表(FIFO)允许插入的一端称为队尾,允许删除的一端称为队头线性表有顺序存储和链式存储,队列作为一种特殊的线性表,也同样存在这两种存储方式循环队列队列顺序存储有很多不足,我们用两个指针对位置进行标记,front指向第一个元素的位置,rear指向最后一个元素的下一个位置我们添加元素时,...

2020-04-11 21:04:00 167

原创 数据结构--递归(斐波那契,阶乘,累加,汉诺塔)

递归的定义我们把一个直接调用自己或通过一系列调用语句间接的调用自己的函数,称做递归函数递归满足三个条件1.递归必须得有一个明确的中止条件2.该函数所处理递归程序斐波那契数列在这里插入代码片求1-100的累加和在这里插入代码片汉诺塔在这里插入代码片...

2020-04-11 17:35:30 355

原创 数据结构--栈(顺序、链表)

栈的定义栈是限定仅在表尾进行插入和删除操作的线性表把允许插入和删除的一端称为栈顶(top)另一端称为栈底(bottom)不含任何元素的栈称为空栈,是先进先出的线性表(LIFO结构)栈的插入(pop)操作,叫做进栈,也叫压栈,入栈。栈的删除(push)操作,叫做出栈,也叫弹栈。栈的顺序存储结构在这里插入代码片栈的链式存储结构在这里插入代码片...

2020-04-11 16:36:30 129

原创 数据结构--c语言链表(单向、循环、双向)

链表的定义n个节点离散分配 彼此通过指针相连每个节点只有一个前驱节点 每个节点只有一个后驱节点(单链表)首节点没有前驱节点 尾节点没有后驱节点注意了解首节点,尾节点,头结点,头指针,尾指针各个术语的含义头指针:头指针是指链表指向第一个结点的指针,若链表有头结点,则是指向头结点的指针头指针具有标识作用,所以常用头指针冠以链表的名字无论链表是否为空,头指针均不为空,头指针是链表...

2020-04-09 07:33:38 259

原创 HDU--1863(c语言)

题目Kruskal 构建最小生成树#include<stdio.h>#include<string.h>//方便排序创建一个结构体储存边的关系 struct edge{ int u; int v; int w;};struct edge e[10005];//e的大小比m大 int n,m;int f[10005]={0},sum,count;//...

2020-03-03 23:53:15 113

原创 大数运算--减法

引言由于整型数的位数有限,因此整型数不能满足大整数(超长整数)的运算要求 。大整数计算是利用字符串来表示大整数,即用字符串的一位字符表示大整数的一位数值,然后根据四则运算规则实现大整数的四则运算。思想既然是减法就有可能出现较小的一个数减较大的一个数为负数的情况,那我们就用k标记一下,如果减数比被减数小,就k=1,不是则k=0,如果是k==1,则对结果进行处理但不管哪个比较大,我们都用较大...

2020-03-01 12:24:53 740

原创 大数运算--加法

引言由于整型数的位数有限,因此整型数不能满足大整数(超长整数)的运算要求 ,大整数计算是利用字符串来表示大整数,即用字符串的一位字符表示大整数的一位数值,然后根据四则运算规则实现大整数的四则运算思想1.先用两个字符数组来存储输入的大数2.我们可以确定结果的位数一定不会比输入的最大位数的大数的位数+1还要多3.根据数组存储数据的特性,比如一个8位数,个位数在num[7]的位置,所以我们要进...

2020-02-29 23:00:57 575

原创 并查集(擒贼先擒王)

引入并查集也被称为不相交集数据结构我们来从一个例题说起有若干个强盗 有若干个线索,每个线索中的两个强盗为同伙(倘若A与B是同伙,B与C是同伙,那么A与C也是同伙),判断有多少个独立的犯罪团伙。样例数据:10 9 //10个强盗 9条线索1 23 45 24 62 68 79 71 62 4分析1.我们可以先确定一个数组,把每个强盗的首领存放在数组里,...

2020-02-29 14:57:41 137

原创 树的应用-堆(优先队列&堆排序)

树的介绍数和无向图很相像,但是树是没有回路的。因为树不包含回路这个特点,就被赋予了很多特性1.一棵树中的任意两个结点有且仅有唯一的一条路径连通2.一棵树中如果有n个结点,那么它一定恰好有n-1条边3.在一棵树中加一条边将会构成一个回路只要没有回路的连通无向图就是树同一棵树可以有多个形态,是因为把不同的点当成根结点的原因理解根结点,叶结点,父结点,子结点的定义二叉树二叉树是...

2020-02-28 22:54:00 194 1

原创 c++的sort排序模板

简述头文件:#include using namespace std;对数组排序数组名为a共有n个数sort(a,a+n);此方法默认升序排如果要降序排,则要定义一个cmp函数bool cmp(int a,int b){ return a>b;}......sort(a,a+n,cmp);对结构体排序要根据自己想要的写cmp函数举个栗子...

2020-02-22 11:11:26 605

原创 最短路径--Bellman-Ford的队列优化

简单介绍上一篇提到了Bellman-Ford算法的另一种优化:每次仅对最短路程发生变化了的点的相邻边执行松弛操作这一篇将用队列存储点,大致算法如下讲解用一个例子来详细说明1号顶点为源点,用dis数组存储1号顶点到其余各个顶点的最短路径,初始时dis[1]=0,其余为∞,队列用一个数组que和head、tail指向队首和队尾初始时将源点加入队列,每次从队首取出一个顶点,并对...

2020-02-18 22:39:04 191

原创 最短路径--Bellman-Ford

简单介绍这是一个无论从思想上还是代码实现上都堪称完美的最短路算法只有四行,而且可以解决带负权边的图,即一点到另外一点的距离可以为负是一个单源最短路径 的问题讲解我们先给出核心代码for(k=1;k<=n-1;k++){ for(i=1;i<=m;i++){ if(dis[v[i]]>dis[u[i]]+w[i]) dis[v[i]]=dis[u[i...

2020-02-18 16:16:11 135

原创 最短路径--Dijkstra

简单介绍指定的一个点(源点)到其余各点的最短路径,也叫做 “单源最短路径”讲解我们可以用二维数组来存储各点间的距离信息,将没有办法直接到达的用无穷大来表示,自己到自己用0来表示,这样我们就得到了图的信息初始值如下:如何求最短路径呢?我们先认为1号点是选定的源点用一个一维数组dis来储存1号顶点到其余各个顶点的初始路程将此时dis数组中的值称为最短路程的“估计值...

2020-02-17 13:29:46 156

原创 最短路径---Floyd-Warshall

简单介绍这个算法可以用来求一个图中任意两个点的最短路径,也被称为 “多源最短路径” 问题讲解我们可以用二维数组来存储各点间的距离信息,将没有办法直接到达的用无穷大来表示,自己到自己用0来表示,这样我们就得到了图的信息但如何求两点间的最短路径?如图,是储存好的一张图(图有四个点,八条边)从图可以知道,我们并不能从2点直接到1点,但我们可以借助一个中转站,如我们可以先从2点到3...

2020-02-16 18:47:54 126

原创 二进制枚举算法

为什么使用二进制枚举因为有的时候很难用循环把所有的情况都表示出来,二进制就可以很轻松的解决这个问题讲解结合一道题目来讲解二进制枚举问题描述  从一个大小为n的整数集中选取一些元素,使得它们的和等于给定的值T。每个元素限选一次,不能一个都不选。输入格式  第一行一个正整数n,表示整数集内元素的个数。  第二行n个整数,用空格隔开。  第三行一个整数T,表示要达到的和。输出格...

2020-02-14 12:01:49 1108

原创 dp背包模板(01、完全、多重)

背包模板01背包dp[j]记录当容量为j时的可行取法的最大价值状态转移方程dp[j]=max(dp[j],dp[j-w[i]]+v[i])注意内层循环为逆序#include<stdio.h>int dp[1005];int main() { int T,n,i,j,s,v[1005],w[1005]; scanf("%d", &T);//循环次数 whi...

2020-02-09 17:59:44 153

原创 01背包问题

问题描述给定 n 种物品和一个容量为 c的背包,物品 i 的重量是 wi,其价值为 vi 。问:应该如何选择装入背包的物品,使得装入背包中的物品的总价值最大?思路面对每个物品,我们只有选择拿取或者不拿两种选择,不能选择装入某物品的一部分,也不能装入同一物品多次声明一个 大小为 dp[n][c] 的二维数组,dp[ i ][ j ] 表示 在面对第 i 件物品,且背包容量为 j 时所...

2020-02-05 12:13:46 191 3

原创 广度优先搜索(BFS)

什么是广度优先搜索1.搜索方法顾名思义,广度搜索就是更大范围内搜索,与深度优先搜索不同的是,深度搜索是一次搜索一条路径,一直到走不通为止,而广度搜索是同时搜索所有路径,相当于一层一层搜索。2.涉及知识:队列3. 搜索原则:(1)访问遍历出发顶点,该顶点入队(2)队列不空,则队头顶点出队(3)访问出队顶点所有的未访问邻接点并将其入队(4)重复(2),(3)直到队空或找到目标点用途...

2020-02-04 20:46:24 880

原创 深度优先搜索(DFS)

什么是深度优先搜索搜素方法沿出发顶点的第一条路径尽量深入,遍历该路径上的所有点,然后退回到该顶点路径的上一个分叉点,搜索其他路径,直到以该顶点为始点的所有路径的点都被访问,即不撞南墙不回头。涉及知识递归和回溯用途深度搜索常用来解决图的遍历,迷宫的最短路径。回溯法是深度优先搜索的主要方法,沿着一条路一直走,走不通再回溯上一节点,选择其他路径。示例-下图即为使用深度优先搜索走...

2020-02-04 19:36:22 125

原创 数的全排列(递归)

数的全排列什么是数的全排列,这是一个数学问题,就是从n个数字中选择n个数字按照一定的顺序排列起来如:123的全排列是123、132、213、231、312、3211234的全排列是1234、1243、1324、1342、1423、1432、2134、2143、2314、2341、2413、2431、3124、3142、3214、3241、3412、3421、4123、4132、4213、4...

2020-01-26 23:36:45 2589 1

原创 快速排序

快速排序原理与算法快排的基本思想先从数列中取出一个数做为基准数分区过程,将比这个数大的数全部放在它的右边,小于或等于它的数全放到它的左边再对左右区间重复第二步,直到各区间只有一个数此排序方法要了解递归的用法快排的举例首先以一个数组作为示例,取区间第一个数作为基准数如上:是第一遍示例取数组 i=0;j=9;x=a[i]=1,可理解为在a[0]上挖了一个坑从j开始向前寻找一...

2020-01-14 22:06:49 123

原创 链栈与链队列

链栈链栈的定义栈的链式存储结构链栈:即用链表实现栈存储结构栈顶:允许插入和删除的一端(top)栈底:不同于栈顶的另外一端(bottom)空栈:不含任何元素的栈链栈实际上就是一个只能采用头插法插入或删除数据的链表//链栈表示 struct link{ int data; struct link *next;};//链栈初始化void initstack(struct ...

2019-12-27 17:23:48 832

原创 c语言文件的常用操作及代码实现

c语言的文件操作1.c文件概述数据处理包括三部分,即数据数据输入、数据加工、数据输出,由于数据输入输出有一些不方便的地方,如每次输入都要重新输入,输出无法实现永久性保存,所以,我们可以使用文件来解决数据的保存问题,才用文件的方式,把数据永久的保存在外存上。...

2019-12-25 19:13:32 209

原创 链表的创建以及其增删改查

链表首先,链表的使用与结构体和指针息息相关还有malloc()函数与free()函数结构体的定义struct node{int num;struct node *next };num为数据域,next是指针域单链表每个节点保存下一个节点的地址(struct node *next),环环相扣,因此称之为链表创建单链表...

2019-12-14 17:07:25 188

原创 洛谷新手村的收获

关于洛谷新手村的收获以下按题目顺序排列p1085for循环也可以用在实数中,之前一直以为只能给数组用#include<stdio.h> int main(){ int i,a,b,c,d=0,max=0; for(i=1;i<8;i++){ scanf("%d%d",&a,&b); c=a+b; if(c>8&&a...

2019-12-07 14:16:09 183

空空如也

空空如也

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

TA关注的人

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