自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(185)
  • 问答 (1)
  • 收藏
  • 关注

原创 数据结构总目录

数据结构总目录

2022-04-23 19:27:47 2683

原创 nodejs+npm的安装与配置

目录下载与安装下载安装配置nodejs相关配置npm相关配置nodejs的基本使用搭建简易后端服务器npm的基本使用搭建vue 2.0开发环境下载与安装下载点击_Node.js中文网_根据自身系统进行下载即可安装点击下载的安装包进行安装选择安装的路径位置下一步、没有特殊要求默认即可该选项建议勾选,一些npm的包需要这些环境配置最后点击install完成安装配置nodejs相关配置简介:Node.js是一个基于Chrome V8引擎的JavaScript运行环境,让J

2022-04-11 12:59:45 7214 4

原创 git快速使用

这里写目录标题安装环境变量新建仓库git初始化git连接git命令克隆存储提交拉取推送远程分支安装环境变量新建仓库git初始化git连接git命令克隆存储提交拉取git pull --allow-unrelated-histories推送git push远程git remote分支git branchgit branch -a 查看所有的分支git branch -r 查看远程所有分支git branch -D master develop 删除本地

2022-04-10 17:10:00 861 2

原创 数据结构_静态链表(C语言)

目录一、静态链表图文解析二、静态链表代码解析1、基本操作1.1 结构1.2 初始化1.3 插入数据1.4 删除数据1.5 修改数据2、源代码及测试2.1 源代码2.2 测试结果一、静态链表图文解析二、静态链表代码解析1、基本操作1.1 结构1.2 初始化1.3 插入数据1.4 删除数据1.5 修改数据2、源代码及测试2.1 源代码2.2 测试结果...

2022-04-02 18:32:13 3660 5

原创 C语言结构体传参

目录C语言结构体传参1. 普通传参1.1 测试代码1.2 测试结果1.3 结果分析2. 单指针传参2.1 修改结构体数据2.1.1 测试代码2.1.2 测试结果2.1.3 结果分析2.2 修改结构体地址2.2.1 测试代码2.2.2 测试结果2.2.3 结果分析3. 双指针传参3.1 测试代码3.2 测试结果3.2 结果分析C语言结构体传参结构体传参包括三种传参方式普通传参:函数接收到结构体参数后,会复制一份原来的结构体作为参数供函数使用,而函数内的任何操作都不会影响到原本的结构体变化 单指针传

2022-03-29 15:36:11 16054 7

原创 数据结构_单源最短路径Dijkstra算法(C语言)

图的应用单源最短路径迪杰斯特拉(Dijkstra)算法2. 源代码:3. 测试:测试环境 : Windows 10编译软件 : Visual C++ 6.0测试用例:

2021-04-23 15:40:04 4624 3

原创 数据结构_最小生成树Kruskal算法(C语言)

图的应用克鲁斯卡尔Kruskal算法对比prim算法,Kruskal主要是对边的操作,依次取得最小边,再将其连通从而得出最小生成树Kruskal主要利用两个数组来实现边数组:边的起始、边的终点、边的权值连通的顶点数组:初始化时Vexset[i] = i代表每个顶点处于各自不同的集合,假设我们连通了第1个和第4个顶点,则可以设置Vexset[1] = Veset[4] = 1,即顶点1和顶点4处于同一连通集合中。1连通过程图如下:232. 源代码:#include<stdio.

2021-04-06 17:10:24 1896 2

原创 数据结构_最小生成树Prim算法(C语言)

图的应用普利姆Prim算法该算法用于求解的问题是,如何用最小代价的边来连通图中的所有顶点,所生成的树称为最小生成树普利姆算法主要借用一个辅助数组,用于记录当前已加入的生成树中,连接其他未加入的顶点之间的最小边权值,构造方法如下:假设从顶点A开始生成树,如图第一行--------图的所有顶点,用数组下标即可表示第二行--------根据边的权值确定新加入最小生成树的顶点,第三行--------最小生成树内所有顶点 到其他未加入生成树的最小边权值初始化辅助数组根据最小的边权值,确定加入生

2021-04-05 16:53:30 2373 1

原创 数据结构_广度优先搜索(C语言)

图的遍历1. 广度优先搜索图文解析广度优先搜索(Breadth First Search,BFS),遍历过程类似于二叉树的层序遍历,可以参考一下,BFS遍历过程如下:(1)从图中任意顶点出发(V1),访问该顶点(V1),并将该顶点入队(2)若队列不为空,则出队,获取出队顶点V1,(3)遍历出队顶点V1的相邻顶点,并访问未被访问的相邻顶点(4)每访问一个相邻顶点,就将访问的顶点入队。2. 源代码:#include<stdio.h>#include<stdlib.h&

2021-04-03 19:45:31 3690

原创 数据结构_深度优先搜索(C语言)

图的遍历1. 深度优先搜索图文解析深度优先搜索(Depth First Search,DBS),遍历过程如下:(1)在图的任意顶点出发(假设从V1出发),首先访问V1(2)在刚访问过的顶点(V1)的相邻顶点中,找出第一个未被访问的顶点(V2),并访问该顶点(V2)(3)以V2为新顶点,递归重复(1)(2)步骤。每当找不到未被访问的顶点时,递归程序都会依次回退,一直到初始顶点V1而后退出程序例如当访问到V6时,递归程序会回退到V7继续查找未被访问的顶点,从而访问到V82. 源代码:#i

2021-04-03 17:13:55 2477

原创 数据结构_邻接多重表(C语言)

邻接多重表1. 邻接多重表图文解析邻接多重表是无向图的一种存储结构因为不考虑边的方向,所以和十字链表相比较,顶点结点只需要一个指针域指向所连接的边结点即可邻接多重表的边结点和顶点结点如下图:由以上结构组成的无向图如下:建议以单个顶点来分析邻接多重表的结构红线:单独以V1顶点连接出的红线来看,红线链表代表以第一条边为参考,所有连接着顶点V1的边绿线:单独以V1顶点连接出的绿线来看,绿线链表代表以第一条边为参考,所有连接着顶点V2的边<依旧以V1顶点单独来看,顶点V1的first

2021-04-03 14:13:29 1998 2

原创 数据结构_十字链表(C语言)

十字链表1. 十字链表图文解析十字链表是有向图的一种存储结构在十字链表里我们称每一条有向边为:弧十字链表的存储结构主要包括:弧结点和顶点结点,如下图:由以上结构组成的有向图如下:红线:与邻接表一样,可以采用头插法插入弧结点绿线:指向同一个尾顶点的弧结点黑线:指向该顶点的绿线弧结点链表,例如顶点V2—>弧的链表(每个弧结点的头顶点都为V2)十字链表的构造方法:2. 源代码及测试#include<stdio.h>#include<stdlib.h

2021-03-29 21:34:08 9798 9

原创 Linux CentOS 8 - LAMP搭建

Apacheyum list installed | grep httpd (查看是否已经安装Apache)yum -y install httpd (安装Apache)systemctl start httpd (启动Apache web服务器)systemctl enable httpd (开机自启)systemctl status httpd (查看服务当前状态)systemctl stop httpd (停止Apache服务)systemctl rest

2021-03-29 19:56:00 149 1

原创 数据结构_排序二叉树(C语言)

排序二叉树1. 结构解析排序二叉树的结构很简单,只遵循一个规则,那就是在二叉树中,选择任意根结点,其左子树都比根节点小,右子树都比根节点大。排序二叉树的查找和插入操作理解都非常简单,只需要按照左小右大的规则即可完成查找和插入观察如下排序二叉树,即可发现排序二叉树的规律,如图:排序二叉树的删除操作较为难理解,删除操作一共分为三种情况(假设删除的结点为p,并且其父结点为f):(1)当p结点的右子树不存在时,因为f的右子树都比f结点大,所以我们只需要将p的父结点指向p的指针指向p的左子树即可

2021-03-22 19:03:27 3147 1

原创 数据结构_根据先序和中序构建二叉树(C语言)

一、根据前序、中序建立二叉树1. 建立过程图解假设我们已知前序序列abcdefg和中序序列cdbaefg则我们可以构建出如下一颗二叉树我们可以根据前序序列(根、左、右)和中序序列(左、根、右)的遍历顺序可得,前序序列的第一个数据是根节点,从而我们可以得知,中序序列中的根节点位置,并确定左右两边的子序列分别为左子树和右子树,进而确定前序序列的左右子树序列,如图:所以构建二叉树的大致过程为:(1)根据前序序列的第一个数据找出中序序列中的根节点位置(2)根据根节点位置,划分出中序序列的左子树和

2021-03-21 17:32:48 15389 20

原创 数据结构_KMP字符串匹配算法(C语言)

KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个 next() 函数实现,函数本身包含了模式串的局部匹配信息。KMP算法的时间复杂度O(m+n)...

2021-03-20 18:55:38 1031

原创 Linux mysql用户及用户权限管理

一、用户管理mysql -u root -p //管理员root登录mysql1. 增加用户host:指定该用户在哪个主机上可以登陆如果是本地用户可用localhost;如果想让该用户可以从任意远程主机登陆,可以使用通配符%;create user '用户名'@'%' identified by '密码';//所有主机可登录create user '用户名'@'localhost' identified by '密码';//仅本地可登录create user '用户名'@'192.16

2020-12-08 16:20:51 2755

原创 Linux vim 调整tab宽度/显示行号/自动缩进

1. 寻找vim的配置文件的目录find / -name vimrc2. 修改配置文件vim /etc/vimrc 3. 配置信息set nu //显示行数set ts=4 //tab宽度set expandtab //扩展tabset autoindent //自动缩进最后wq保存即可, 注意ts=4的等号左右不能有空格...

2020-11-24 22:46:34 2384

原创 Linux C语言 进程详解——fork()/wait()/waitpid()

fork()函数#include<unistd.h>#include<sys/types.h>函数原型 pid_t fork( void); (pid_t 是一个宏定义,其实质是int 被定义在#includesys/types.h>中) 返回值:若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1fork系统调用用于创建一个新进程,称为子进程,它与父进程 同时运行(并发),且运行顺序不定(异步)。fork()函数如

2020-11-21 18:13:35 6760 2

原创 Counting Leaves(PAT)

1.题目描述A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child.家族等级通常由系谱树表示。你的工作是数数那些没有孩子的家庭成员。2.输入描述:Each input file contains one test case. Each case starts with a line containing 0 &

2020-10-10 16:21:45 206

原创 Product of Polynomials(PAT)

1. 题目描述This time, you are supposed to find A*B where A and B are two polynomials.这一次,你应该找到A * B,其中A和B是两个多项式。2. 输入描述:Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:K N1 aN1

2020-09-11 16:59:25 317

原创 数据结构_非递归创建二叉树(C语言)

二叉树的非递归创建1. 结构解析非递归创建二叉树需要借助一个栈,在创建二叉树的左子结点的同时,结点压入栈中,通过出栈来回溯创建二叉树的右子结点。假设我们需要创建如下一棵二叉树第一步,按先序顺序分别创建左子结点1、2、3,同时将结点按先序压入栈中,如图:第二步,出栈两次,回溯到第二个结点,设置flag = 0,代表出栈结束,下一次创建的入栈结点是右子结点,第三步,根据flag 的值来确定入栈结点是左子结点还是右子结点:按照一二三步循环创建5、6结点,完成整棵二叉树的创建2. 源

2020-08-14 16:53:24 4081

原创 数据结构_线索二叉树(C语言)

线索二叉树1. 结构解析线索二叉树,是一种对链式结构的一般二叉树进行线索的二叉树,其线索过程其实就是对一般二叉树空指针的修改;例如我们按中序顺序,使左空指针指向前驱结点(上一个结点),右空指针指向后继结点(下一个结点),最后所形成的二叉树也就是线索二叉树。结构如图Lchild和Rchild分别表示左右指针域,LTag和RTag分别标志其左右指针是否为空。中序线索二叉树例图2. 源代码:#include<stdio.h>#include<stdlib.h>

2020-08-09 19:16:25 974

原创 数据结构_哈夫曼树(C语言)

哈夫曼树1. 结构解析哈夫曼树是一种二叉树,因为哈夫曼树中没有度为1的结点,则一棵有N个结点的哈夫曼树共有2N-1个结点,所以我们可以存储在一个大小为2N-1的一维数组中。树中的每个结点包括双亲信息和孩子结点的信息,如图:2. 源代码:#include<stdio.h>#include<stdlib.h>#define MAX 999999typedef struct{ int weight, flag;//权值、访问状态 int parent, Lchil

2020-08-05 19:05:40 2447

原创 数据结构_树的孩子兄弟法(C语言)

树的孩子兄弟法1、结构解析树的孩子兄弟法的结构,就是一般二叉树的链式结构,但树的父结点有多个孩子结点,而二叉树只有两个孩子结点,所以我们用二叉树结构中的左指针指向第一个孩子结点,右指针指向下一个兄弟结点,如图:一般表示树的结构图孩子兄弟法表示树的结构图2.源代码:#include<stdio.h>#include<stdlib.h>typedef struct CSNode{ char data; struct CSNode *firstchild,

2020-08-05 15:29:42 3071 3

原创 数据结构_树_孩子表示法(C语言)

树的孩子表示法1、结构解析树的孩子表示法包括顺序表和链表两种结构,也可以说是顺序表和链表的结合结构,如图:2、源代码:#include<stdio.h>#include<stdlib.h>#define MAX 20typedef struct CNode //孩子结点{ int pos; //孩子位置 struct CNode *next; //孩子指针}CNode, *PChild;typedef struct //根结点 { cha

2020-07-29 13:26:20 5789 3

原创 数据结构_树的双亲表示法(C语言)

树的双亲表示法1、结构解析以一组连续的存储单元存储树的结点,每个结点除了数据域data外,还附设一个parent域用以指示双亲结点的位置,如图:2、源代码:#include<stdio.h>#include<stdlib.h>#define MAX 100typedef char ElemType; typedef struct{ char data; int parent;}PTNode;typedef struct{ PTNode TNod

2020-07-25 11:57:07 1970

原创 数据结构_顺序二叉树(C语言)

目录二叉树(一)结构解析(二)代码解析1、二叉树的基本操作1.01 二叉树的存储结构1.02 二叉树的初始化1.03 二叉树的创建1.04 二叉树的先序遍历1.05 二叉树的中序遍历1.06 二叉树的后序遍历1.07 二叉树的层序遍历1.08 二叉树的深度1.09 二叉树的查找1.10 二叉树的清空2、源代码及测试2.1 源代码2.2测试二叉树(一)结构解析二叉树的性质特殊形态特点满二叉树深度为k且含有2k - 1个结点的二叉树(每个结点都有左右子结点)完全二叉树对满二

2020-07-23 13:49:54 2994 5

原创 数据结构_串_顺序结构(C语言)

目录(一)串(二)串代码解析1、串的基本操作1.01 串的基本结构1.02 串的创建1.03 串的遍历1.04 串的匹配1.05 串的连接1.06 串的比较1.07 串的长度1.08 串的复制1.09 串的清空1.10 串的销毁2、串源代码及测试2.1 源代码:2.2 测试(一)串串的顺序结构和顺序表的结构一样,串的区别仅仅是在顺序表数据类型的区别,串的数据类型是字符型,接下来我将实现串的一些基本操作,其中一些基本操作类似于头文件< string >的内置函数(二)串代码解析1、

2020-07-22 17:35:32 1761

原创 数据结构_非递归遍历二叉树(C语言)

目录(一)图文解析(二) 代码解析(1) 二叉树的基本操作1.0 二叉树的存储结构1.2 先序递归创建二叉树1.3 先序非递归遍历二叉树1.4 中序非递归遍历二叉树1.5 后序非递归遍历二叉树1.6 层序非递归遍历二叉树(2) 二叉树源代码及测试2.1 源代码:2.2 测试结果:(一)图文解析一般二叉树采用的是链式存储结构,也就是单链表的结构,但二叉树的结点包括俩个指针域,一个指向左结点,一个指右结点,即二叉;1、树的度: 不管哪个结点,二叉树都只能最多分出两个分支,所以二叉树的度为2;2、树

2020-07-22 10:54:27 2824 3

原创 数据结构_分块查找(C语言)

分块查找(Blocking Search)又称索引顺序查找,这是一种性能介于顺序查找和折半查找之间的一种查找方法。

2020-07-19 15:33:18 10912 4

原创 数据结构_折半查找(C语言)

折半查找(Binary Search)也称二分查找,是一种效率较高的查找方法,但是折半查找有局限性,它只适用于顺序存储结构的有序表

2020-07-18 15:38:24 2157

原创 数据结构_顺序查找(C语言)

从表的一端开始,依次将表中的关键字和给定的值进行比较,若表中的关键字和给定的值相等,则查找成功,反之查找失败。

2020-07-18 14:59:51 15210 6

原创 数据结构_双向循环链表(C语言)

循环双向链表1.结构解析双向链表,顾名思义,在双向链表中有两个指针域,一个指向后继结点,另一个指向前驱结点,克服了单链表的单向性缺点图示:2.源代码:#include<stdio.h>#include<stdlib.h>typedef char ElemType;typedef struct DNode{ ElemType data; struct DNode *Prior; struct DNode *next;}DNode,*DLinkList;

2020-07-17 17:59:44 1141

原创 数据结构_循环链表(C语言)

循环链表1.结构解析循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。图示:2.源代码:#include<stdio.h>#include<stdlib.h>typedef char ElemType;typedef struct CNode{ ElemType data; struct CNode *next;}CNode, *CLinkList;void InitList(CLinkList

2020-07-17 16:20:13 871

原创 基数排序(C语言)

基数排序基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog (r) m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的稳定性排序法。1.排序原理已知序列:{52, 20, 4, 10, 17, 39, 8, 300, 60,

2020-07-16 19:01:40 10652 17

原创 Password(PAT)

1.题目描述To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem is that there are always some confusing passwords since it is hard to distinguish 1 (one) from l (L in lowercase), or 0 (zero) from O (o in upperca

2020-07-13 15:55:58 253

原创 Travel Plan(PAT)

1

2020-07-13 15:47:15 234

原创 Median(PAT)

1.题目描述Given an increasing sequence S of N integers, the median is the number at the middle position. For example, the median of S1={11, 12, 13, 14} is 12, and the median of S2={9, 10, 15, 16, 17} is 15. The median of two sequences is defined to be the

2020-07-13 15:45:51 297

原创 List Sorting(PAT)

1.题目描述Excel can sort records according to any column. Now you are supposed to imitate this function.Excel可以根据任何列对记录进行排序。现在你应该模仿这个函数。2.输入描述:Each input file contains one test case. For each case, the first line contains two integers N (<=100000)

2020-07-13 15:39:58 169

空空如也

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

TA关注的人

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