自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 1024耶耶耶~~~

1024

2022-10-24 23:24:20 134 1

原创 JavaScript

持续更新ing……文章目录JavaScript基础输出输入四则运算JavaScript基础输出用.html文件写:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="w

2021-04-24 11:17:19 194 1

原创 HTML5

持续更新ing…文章目录一. 基础语法二. 文本样式一. 基础语法<!-- html和html5的区别:没有就是html --><!DOCTYPE html><html lang="en"><head> <!-- 配置网页信息 --> <meta charset="UTF-8"> <!-- http:协议 --> <meta http-equiv="X-UA-Compati

2021-04-10 11:42:18 284 3

原创 用数组模拟——单链表,树和图的存储(邻接表、邻接矩阵)

文章目录一. 单链表初始化存储元素删除头结点插入数据(在下标为k的结点后面插入一个元素x)删除下标为k的点后面的点二. 树和图的存储Ⅰ. 邻接表初始化将边加入图或树中Ⅱ. 邻接矩阵一. 单链表int head, idx; //head存储链表头,idx表示当前模拟到了哪个结点int e[N], ne[N]; //e[]存储数据域的值,ne[]存储结点的next指针初始化为空链表,所以:void init(){ head = -1; idx = 0;}存储元素在表头插入

2021-02-02 00:21:54 797

原创 最小生成树——Prim算法、Kruskal算法

文章目录一. 最小生成树Ⅰ. 定义Ⅱ. 实际应用Ⅲ. 分类二. Prim算法(朴素版)Ⅰ. 算法思路Ⅱ. C++代码三. Kruskal算法Ⅰ. 算法思路Ⅱ. C++代码一. 最小生成树Ⅰ. 定义给定一张边带权的无向图G = (V, E),其中V表示图中点的集合,E表示图中边的集合,n = |V|,m = |E|。由V中的全部n个顶点和E中n-1条边构成的无向图连通子图被称为G的一棵生成树,其中边的权值之和最小的生成树被称为无向图G的最小生成树。Ⅱ. 实际应用在地图上有n个城市,已知城市的坐标,在

2021-01-31 22:14:47 206

原创 水徽章的一天

1024快乐啊!!!

2020-10-24 19:06:23 114

原创 简单DFS—n-皇后问题,BFS—走迷宫

文章目录一. DFS与BFS概述(一). DFS与BFS遍历过程的区别Ⅰ. DFSⅡ. BFS(二). DFS与BFS区别(三). DFS与BFS的应用场景二. DFS例题—n-皇后问题题目C++代码实现三. BFS例题—走迷宫题目C++代码实现一. DFS与BFS概述(一). DFS与BFS遍历过程的区别Ⅰ. DFS从一个点开始遍历,一条道走到黑,真的无路可走时,回溯到上一步,此时若有另一条路,则继续走,若没有,继续回溯……直到所有的点全部遍历一遍以后结束。Ⅱ. BFS从一个点开始,一层一

2020-10-21 18:40:08 285

原创 KMP算法过程及C++代码

文章目录KMP算法思想KMP算法过程示例如何确定P中的哪个字符与i进行比较KMP算法思想KMP算法是D.E.Knuth,J.H.Morris和V.R.Pratt共同提出的,简称为KMP算法。该算法较BF算法有较大的改进:每当一趟匹配过程中出现字符不相等时,主串指示器 i 不用回溯,而是利用已经得到的“部分匹配”结果,将模式串向右“滑动”尽可能远的一段距离后,与 i 对齐,继续进行比较。KM...

2020-06-08 23:38:02 267

原创 串的模式匹配算法——BF算法(C++代码)

子串的定位操作通常称作串的匹配模式(其中P,T称为模式串,PaTtern),是各种串处理系统中最重要的操作之一。在串的模式匹配中,子串P称为模式,主串S称为目标。示例: 目标S:"Beijing" 模式P:"jin" 匹配结果 = 3(匹配位置从0开始) 求子串位置的定位函数Brute—Force 简称BF算法,亦称简单匹配算法。采用穷举的思想。具体思路:初始时让目标 S ...

2020-02-05 19:17:32 3827

原创 串的定义,表示和实现 及 相关算法的实现

文章目录一. 串类型的定义二. 串的表示和实现定长顺序存储表示堆分配存储表示块链存储表示存储利用率分析三. 串的相关算法(堆存储部分操作的实现)初始化空串算法提取子串算法串的连接算法一. 串类型的定义字符串是n(n>=0)个字符的有限序列,记作:S=“C1C2C3...Cn”其中:S是串名字;“C1C2C3…Cn” 是串值;Ci 是串中字符;n 是串的长度;n=0 称为...

2020-02-05 17:06:11 1029

原创 图的遍历——用邻接表实现BFS

广度优先搜索(BFS)遍历设计思想:访问顶点v;访问顶点v的所有未被访问过的邻接点,假设访问次序是Vi1,Vi2,…,Vit;按Vi1,Vi2,…,Vit的次序,访问每个顶点的所有未被访问过的邻接点,直到图中所有和初始点v有路径相通的顶点都被访问过为止。BFS的具体分析:从V0出发,V0首先被访问,访问完毕以后,它的邻接点是1和3,按照广度优先遍历的策略,应该先访问V1,紧接着再...

2020-02-04 21:48:14 716

原创 图的遍历——用邻接表实现DFS

文章目录一. 遍历思想二. DFS(深度优先遍历)设计思想三. 具体分析四. 实现深度优先遍历的递归算法一. 遍历思想给定一个图G=(V,E)和其中任意一个顶点v,从顶点v出发,访问图G中的所有顶点而且每个顶点仅被访问一次,这一过程称为图的遍历。为了避免同一顶点被访问多次,在遍历图的过程中,必须记下每个已被访问过的顶点。为此设一个辅助数组visited[],用以标记顶点是否被访问过,其...

2020-02-04 20:35:43 1077

原创 图的概念,图的存储结构(邻接矩阵,邻接表)及相关算法

文章目录一. 图的相关概念和术语概念无向图有向图度,入度和出度子图完全无向图和完全有向图稀疏图和稠密图简单路径,回路(环)连通,连通图和连通分量(无向图)强连通图和强联通分量(有向图)权和网二. 图的存储结构—邻接矩阵无向图有向图有权图(网)图的邻接矩阵的特点图的邻接矩阵类型声明三. 图的存储结构—邻接表无向图有向图有向图的逆邻接表图的邻接表的特点图的邻接表存储结构的类型声明四. 邻接矩阵的相关算...

2020-02-03 21:41:25 1758

原创 赫夫曼树的定义及构造,赫夫曼编码的定义及构造,算法实现和存储

文章目录一. 赫夫曼树(最优二叉树)二. 构造赫夫曼树三. 赫夫曼编码四. 构造赫夫曼编码五. 赫夫曼树和赫夫曼编码的存储表示六. 求赫夫曼树和赫夫曼编码的算法一. 赫夫曼树(最优二叉树)设二叉树具有n个带权值的叶子结点,从根结点到每一个叶子结点都有一个路径长度。从根结点到各个叶子结点的路径长度与相应结点权值的乘积的和称为该二叉树的带权路径长度,记作其中,Wi为第i个叶子结点的权值,L...

2020-02-03 02:28:38 1342

原创 树,森林与二叉树的相互转化,树的遍历

文章目录一. 森林与二叉树可相互转化的原因二. 树转化为二叉树三. 森林转化为二叉树四. 二叉树还原为树五. 二叉树还原为森林六. 树的遍历先根遍历后根遍历一. 森林与二叉树可相互转化的原因由于二叉树和树都可以用二叉链表作为存储结构,则以二叉链表作为媒介可导出树与二叉树之间的一个对应关系也就是说,给定一棵树,可以找到唯一的一棵二叉树与之对应,从物理结构来看,它们的二叉链表是相同的,只是解释...

2020-02-03 01:14:54 2249

原创 线索二叉树的存储结构,二叉树的建立及相关算法

文章目录一. 线索二叉树的概念二. 线索二叉树的存储结构1. 线索二叉树的类型定义2. 中序线索二叉树过程三. 二叉树的建立(以中序线索二叉树为例)四. 二叉树的遍历(以中序线索二叉树为例)(1). 具体操作(2).算法思想(3). 代码实现一. 线索二叉树的概念对于n个结点的二叉树,在二叉链存储结构中有n+1个空链域。利用这些空链域存放在某种遍历次序下该结点的前驱结点和后继结点的指针,这...

2020-02-02 23:31:54 914

原创 遍历二叉树的操作定义和算法实现,先序遍历的非递归算法设计

文章目录一. 遍历二叉树的三种操作定义(一). 先序遍历(DLR)(二). 中序遍历(LDR)(三). 后序遍历(LRD)二. 遍历二叉树的三种算法实现(一). 先序遍历(二). 中序遍历(三). 后序遍历三. 先序遍历的非递归算法设计二叉树的遍历是按一定的次序访问树中的所有结点,使每个结点恰好被访问一次。其中遍历次序保证了二叉树上每个结点均被访问一次切仅有一次。遍历就是把二叉树结点按某种次...

2020-02-02 22:30:58 388

原创 二叉树的性质及存储结构

文章目录一. 二叉树的定义二. 二叉树的性质性质1性质2性质3性质4性质5满二叉树和完全二叉树三. 二叉树的存储结构顺序存储结构链式存储结构二叉链表表示三叉链表表示二叉树链表表示的示例一. 二叉树的定义二叉树是另一种树形结构,它的特点是每个结点至多只有两棵子树(即二叉树中不存在度大于2的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树或为空,或是由一个根结点加上两棵分别称...

2020-02-02 21:04:42 394

原创 树的概念及存储结构(双亲表示法,孩子表示法,孩子兄弟表示法)

文章目录一. 树的概念二. 树的存储结构(一). 双亲表示法(二). 孩子表示法1. 定长结点链表存储结构2. 孩子链表存储结构(三). 孩子兄弟表示法一. 树的概念树(Tree)是n(n>=0)个结点的有限集。当 n = 0 时,称为空树。在任意一颗非空树中:有且仅有一个特定的称为 根(Root) 的结点;如上图,A为根当 n > 1 时,其余结点可分为m(m &...

2020-02-02 19:40:01 4288 1

原创 STL——queue

1. 头文件#include<queue>2. 定义方式queue<数据类型> 队列名;3. queue常用操作 q.empty(); 是否为空 q.size(); 大小 q.front(); 查看队首元素 q.back(); 查看队尾的元素 q.pop(); 在队首删除数据,就是出队 q.push(item); 在队尾...

2020-01-31 15:28:30 172

原创 STL——关联容器map

1. 定义:#include<map>map<int, int>m; 或:template <class Key, class T,class Pred=less<Key>, class A = allocator<T> >class map{ ... typedef pair<const Key,T> ...

2020-01-29 17:47:00 146

原创 STL——顺序容器vector

简单地说,vector是数组的一种类表示,它提供了自动内存管理功能,可以动态的改变vector对象的长度,并随着元素的添加和删除儿女增大和缩小。它提供了对元素的随机访问。在尾部添加和删除元素的时是固定的,但在头部或中间插入和删除元素的复杂度为线性时间。除序列外,vector还是可反转容器概念的模型。这增加了两个类方法,rbegin() 和 rend() 。前者返回一个指向反序列的第一个元素的迭...

2020-01-26 15:21:59 182

原创 STL——概述

文章目录一. 泛型程序设计二. STL中的基本的概念三. 容器概述(一). 顺序容器简介(1). vector(2). deque(3). list(二).关联容器简介(1).set / multiset(2).map / multimap(三). 容器适配器简介(1). stack(2). queue(3). priority_queue(4). 顺序容器和关联容器中都有的成员函数(5). 顺序...

2020-01-26 13:54:26 345

原创 STL—— string类基本函数

string类是模板类:typedef basic_string<char>string使用string类包含头文件:#include<string>string对象的初始化:#include<iostream>#include<string>using namespace std;int main(){ str...

2020-01-24 17:36:40 2184

原创 归并排序

归并排序是多次将两个或两个以上的有序表合并成一个新的有序表。归并排序设计思想:通过“归并”两个或两个以上的记录有序子序列,逐步增加记录有序序列的长度。在内部排序中,通常采用的是2-路归并排序,即:将两个位置相邻的记录有序子序列归并为一个记录的有序序列。注:若有三个有序表进行归并的话,称为3-路归并;由k个有序序列进行归并的话就为k-路归并。归并排序的具体分析:...

2020-01-23 16:40:05 166

原创 快速排序

快速排序设计思想:找一个记录(例如取第一个记录),以它的关键字作为==“枢轴”。凡其关键字小于枢轴的记录均移动至该纪录“之前”。凡其关键字大于枢轴的记录均移动至该纪录“之后”。 即对无序的记录序列进行一次划分。之后分别对分割所得两个子序列“递归”进行快速排序,快速排序的具体分析:设两个下标 i 和 j 。i 标记整个序列的起始位置,j 标记整个序列最后一个元素所在的位置。接着使用...

2020-01-22 15:40:12 186

原创 数据结构——绪论

程序=算法+数据结构一. 基本概念和定义:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。有时,一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。数据对象是性质相同的数据元素的集合,是数据的一个子集。在任何问题中,数据元素都不是孤立存在的,而是在...

2020-01-21 20:18:18 1654

原创 线性表(顺序表,线性链表,循环单链表,双向链表)

一. 线性表的基本概念:(一). 线性表的定义:线性表是由n(n>=0)个相同类型的数据元素组成的有限序列。标记为: L=(a1,a2,...,ai,...,an)线性表中的元素的个数n定义为线性表的长度,当n=0时为空表。当n>0时,线性表的逻辑结构如下图所示:逻辑特征:(1). 若至少含有一个元素,则只有唯一的一个起始元素;(2). 若至少含有一个...

2020-01-20 20:45:54 768

原创 队列的基本操作(顺序队列,循环队列,链队列)

一. 定义:和栈相反,队列是一种“先进先出”的线性表。即它只能在表的一端进行插入,在表的另一端删除元素。在队列中,允许插入的一段叫做队尾,允许删除的一端则称为队头。队列的插入操作称为进队,删除操作称为出队。新插入的元素只能添加到队尾,被删除的元素只能是排在队头的元素。二. 队列的顺序表示和实现:(一) . 顺序队列:队列的顺序存储结构简称为“顺序队列”,它是由一个一维数...

2020-01-17 17:17:27 2767 3

原创 栈的基本操作

栈1.概念:栈简单的说就是“先进后出”的数据结构,就相当于几辆汽车进入了一个只允许一辆车通行的死胡同,先进去的车辆只能等最后进去的车辆出来后才能出来。2.栈的定义:栈是仅在表尾进行插入或删除操作的线性表。表尾端具有其特殊的含义,称为栈顶,表头端称为栈底,不含元素的空表称为空栈3.顺序栈的定义:typedef struct{SElemType *base; //定义栈底指针S...

2020-01-07 20:16:28 354

原创 冒泡排序,选择查找,二分搜索

1.冒泡排序: 将无序数组里的每个数字进行大小比较,变为升序数组。 首先将a[1]与a[2]进行比较,若a[1]>a[2],则将两个元素交换位置,然后比较a[2]和a[3],以此类推,直到a[n-1]和a[n]进行比较为止。上述过程为第一趟,其结果使得最大的元素被安置到最后一个位置。然后进行第二趟排序,对前n-1个元素进行同样的操作,其结果使得次大的元素被安置到第n-1的位置...

2020-01-03 00:41:06 249

原创 Hnuahe大数据02题集——Problem G 汉诺塔Ⅲ

Problem Description还记得汉诺塔III吗?他的规则是这样的:不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允许大盘放到小盘的上面。xhd在想如果我们允许最大的盘子放到最上面会怎么样呢?(只允许最大的放在最上面)当然最后需要的结果是盘子从小到大排在最右边。Input输入数据的第一行是一个数据T,表示有T组数据。每组数据有一个正整...

2019-12-28 20:17:04 293

原创 Hnuahe大数据02题集——Problem F 时针与分针夹角

Problem Description时间过的好快,一个学期就这么的过去了,xhd在傻傻的看着表,出于对数据的渴望,突然他想知道这个表的时针和分针的夹角是多少。现在xhd知道的只有时间,请你帮他算出这个夹角。注:夹角的范围[0,180],时针和分针的转动是连续而不是离散的。Input输入数据的第一行是一个数据T,表示有T组数据。每组数据有三个整数h(0 <= h < 2...

2019-12-28 20:04:24 312

原创 STL——stack

1.概念:栈简单的说就是“先进后出”的数据结构,就相当于几辆汽车进入了一个只允许一辆车通行的死胡同,先进去的车辆只能等最后进去的车辆出来后才能出来。2.头文件:#include<stack>3.定义方式:stack<数据类型>a;4.关于栈的一些操作: (1) a.top() ; 取出栈顶元素 (2)a.pu...

2019-12-28 11:46:28 143

原创 小白养成记 (8)------ = 和 == 的区别

= 和 == 的区别:(1) “=”为赋值: 例如,将变量a定义为5,即将5赋值给变量a int a = 5;(2)“==”为相等:例如,在使用 if 语句进行判断时,通常都是相等 e.g. 当 flag为1时,输出yes,为0时,输出no。if(flag==1) {...

2019-11-28 00:06:20 153

原创 小白养成记 (7)------我是素数吗 ( 线性筛法)

描述素数又称质数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。这个题目要求你判断一个数字是否为质数,规定1不是质数。输入多组测试样例,第一行输入一个整数T(1<= T <= 10000000),代表有T组测试数据接下来T行,每行有一个数字x(1 <= x <= 10000000)输出输出T行,如果这个数是素数输出Yes,否则输...

2019-11-27 23:49:47 209

原创 小白养成记 (6)------方形填数

描述:在一个N*N的方阵中,填入1,2,……N*N个数,并要求构成如下的格式:例如:N=513 14 15 16 112 23 24 17 211 22 25 18 310 21 20 19 49 8 7 6 5N=616 17 18 19 20 115 30 31 32 21 214 29 36 33 22 313 28 ...

2019-11-27 23:21:03 444

原创 小白养成记 (5)------约瑟夫问题

题目描述n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出圈,请输出依次出圈人的编号.解题思路:(1)将所有数据定义为1.。(2)因为循环次数未知,所以定义两个变量sum=0和d=n,出列一个人,d--,直到d=0时结束循环。(3)让 i 从1开始进行循环,若不该输出时,令su...

2019-11-26 00:19:19 207 1

原创 小白养成记 (4)------去重处理

第一个超过五十行的代码~~~小明随机生成了n(n<10000)个0到999之间的整数,可能有重复的整数,请你帮他按从小到大输出这些整数(忽略重复数字)。例如,假设n=8,小明随机生成的8个数是:1 2 5 2 4 5 6 5 2,输出结果为:1 2 4 5 6因为要从小到大输出,所以要先进行升序排序,再进行去重。代码如下:用函数InputArr ( ) , SortArr (...

2019-10-14 23:39:53 198

原创 小白养成记 (3)------函数篇

感觉函数好难,虽然它是一个壳子......还是直接看题吧~~~(1)输出100以内的全部素数,每个素数占六列:#include<stdio.h>#include<math.h>int prime(int m);int main(){ int m; for(m=2;m<=100;m++) { if(prime(m)!=0) print...

2019-10-07 23:33:48 211 1

空空如也

空空如也

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

TA关注的人

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