自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GDB详解

当gdb attac上目标进程之后,调试器会暂停下来,可以用continue继续运行。调试完成之后可以使用detach让程序与gdb分离,这样程序就可以正常运行了。然后就可以quit了。filename就是需要启动调试的程序文件名,直接gdb启动一个程序进行调试,也就是说这个程序还没有启动。一个程序启动了,我们想要调试这个程序。corename就是产生的core文件。pid就是这个进程的ID。永久配置生成core文件。

2023-07-26 22:02:20 281

原创 CMake 官方文档入门

对比官方文档练习。

2022-12-02 15:37:26 2651

原创 数据结构-链表

链表在物理内存上是一种非连续的存储结构,数据元素的逻辑顺序是由链表的指针链接来实现的。

2022-10-11 16:20:32 461

原创 排序算法题目及解析

排序题目解析等

2022-09-26 19:40:52 283

原创 排序-堆排序

堆排序

2022-09-26 17:26:49 182

原创 排序-快速排序

快速排序

2022-09-26 16:37:58 76

原创 排序-归并排序

归并排序

2022-09-26 15:14:59 99

原创 排序-插入排序

选择排序

2022-09-26 14:59:26 133

原创 排序-选择排序

选择排序

2022-09-26 14:42:54 69

原创 排序-冒泡排序

冒泡排序

2022-09-23 14:19:03 86

原创 cmake入门学习

简单学习cmake入门

2022-07-11 16:18:19 71

原创 sql建表

CREATE TABLE Student( Sno CHAR(10), Sname VARCHAR(20), Ssex CHAR(2), Sage SMALLINT, Sdept VARCHAR(20), PRIMARY KEY (Sno) ); CREATE TABLE Course( Cno CHAR(10), Cname VARCHAR(20), Cpno CHAR(10), Ccredit SMALLI

2021-10-25 12:05:58 118

原创 7.排序 多种方法实现

插入排序算法思想:每次将一个待排序的记录按其关键字大小插入到前面已排好序的子序列中,直到全部记录插入完成。void InsertSort(int L[], int n){ for(int i = 2; i <= n; ++ i) { if(L[i] < L[i-1]) { int tmp = L[i]; int j; for(j = i-1; j >= 1 &amp

2021-09-09 13:42:46 90

原创 6.图 Dijsktra, Prim,Kruskal,包括堆优化

特殊矩阵的压缩存储对称矩阵的压缩存储只存储主对角线+上\下半角按照行优先或者列优先存储三角矩阵的压缩存储跟对称矩阵相同的思想稀疏矩阵的压缩存储三元组方式存储十字链表法图的基本概念图G比顶点集边集日且成,记为G=(V,E),其中v(G)表示图G中顶点的有限非空集;E(G)表示图G中顶点之间的关系(边)集合。若V={v, vs… , vn,},则用V]表示图G中顶点的个数,也称图G的阶,E= {(u, v) | ueV,vev},用|E|表示图G中边的条数。最小生成树Prim算法从

2021-09-08 13:15:23 198

原创 5.树、二叉树、二叉搜索树、二叉平衡树、哈夫曼树

基本概念:树是n (n>0)个结点的有限集合,n =O时,称为空树,这是一种特殊情况。在任意一棵非空树中应满足:1)有且仅有一个特定的称为根的结点。2)当n>1时,其余结点可分为m (m>0)个互不相交的有限集合T1, T2… Tm,其中每个集合本身又是一棵树,并且称为根结点的子树。属性:结点的层次(深度)——从上往下数结点的高度――从下往上数树的高度(深度)―—总共多少层结点的度――有几个孩子(分支)树的度――各结点的度的最大值森林。森林是m ( m≥0)棵互不相交的

2021-09-05 11:10:07 123

原创 vscode 运行c++ 标记“&&”不是此版本中的有效语句分隔符。

百度了半天 才知道这是code runner的bug解决方法:装旧版本的code runner 完美解决

2021-09-03 13:05:57 584 3

原创 4.串 c++类

串,即字符串( String)是由零个或多个字符组成的有限序列。子串:串中任意个连续的字符组成的子序列。 主串:包含子串的串。于待在主串中的位置:字符在串中的序号。实现String.h#i

2021-09-01 14:46:40 393

原创 3.栈与队列,c++模板类

栈:Stack.h#ifndef _STACK_H_#define _STACK_H_#define MaxSize 100//顺序表实现template<class T>class SStack{public: SStack(); ~SStack();public: T pop(); T top(); int size(); bool push(const T x); bool isEmpty(); bo

2021-08-31 12:58:52 172

原创 2.线性表顺序表,模板类实现

线性表的定义和基本概念定义:线性表是具有相同数据类型的n (n>=0)个数据元素的有限序列,其中n为表长,当n = 0时线性表是一个空表。若用L命名线性表,则其一般表示为 L = (a1, a2, …. , ai, ai+1,…. , an)顺序表:定义:用顺序存储的方式实现线性表实现:头文件:SList.h#ifndef _SLIST_H_#define _SLIST_H_#define MaxSize 100 // 最大长度//静态分配template<cl

2021-08-22 15:21:52 257

原创 1.数据结构简易绪论

基本概念数据:数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。数据元素、数据项:数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。数据结构、数据对象:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。数据对象是具有相同性质的数据元素的集合,是数据的一个子集。数据类型、抽象数据类型:数据类型是一个值的集合和定义在此集合

2021-08-22 15:20:06 69

原创 C语言篇章七——复合类型

复合类型结构体结构体:将多个相同或不同类型的数据存在在一块连续的内存空间中#include <stdio.h>#include <string.h>#include <stdlib.h>//定义一个结构体//大括号内可以是任意类型,结尾注意记得分号struct stu{ int id; int age; char name[125];}a, b; // 定义类型时同时定义了两个变量struct stu c;struct stu arr[20

2021-08-09 15:26:31 147

原创 C语言篇章六——指针

指针启动一个程序,系统在内存上给程序分配一块内存空间32位4G一个一个字节组成的,每个字节都会有地址编号内存的空间是地址:内存的编号我们把这个编号(地址)t也叫做指针指针变量存放指针(地址)的变量因为地址编号(Ox0000 0000)如此,所以我们的指针变量占4个字节就可以存下64位编译器,内存的编号范围是Ox00000000000oo0 - oxf1f,这样的编号需要8个字节存下,所以指针变量也需要8个字节#include <stdio.h>#include <stri

2021-08-08 15:34:21 87

原创 C语言篇章五——函数

函数1函数以及作用:函数:函数就是将原来在main函数中的代码换一个位置,存放在另一个地方 //存代码块的东西就是函数函数的作用:1为了减少重复代码块 2代码模块清晰#include

2021-08-04 19:14:47 83

原创 C语言篇章四——数组

数组数组:将若干个相同数据类型的变量存放在一个连续的内存空间数组的最小单位数元素数组中的每一个元素都是一个变量构造类型:将基本类型构建成类型数组:相同类型的数据存放在一个集合中,这种的构造类型就是数组数组的定义#include <stdio.h>int main(){ /* 数组名和变量名定义方法一样 符号与[]结合代表这是一个数组 数组中的元素个数有[]里的值决定 定义时[]里的值只能为常量 使用时[]里的值可以为常量也可以为变量 打印要用循环遍历

2021-08-04 18:58:18 103

原创 C语言篇章三——运算符和程序结构

运算符和程序结构运算符加减乘除取余#include <stdio.h>int main(){ int a = 10; int b = 20; printf("a+b=%d\n", a + b); printf("a-b=%d\n", a - b); printf("a*b=%d\n", a * b); printf("a/b=%d\n", a / b); // 整型除法没有余数 printf("a/b=%f\n", a*1.0 / b); printf("b/a=%d

2021-08-03 21:36:35 117

原创 C语言篇章二——数据类型

数据类型作用:告诉编译器我这个数据在内存中需要多大的空间常量常量:程序运行中不能改变的量整型:1200字符:‘c’字符串: “hello”浮点型:3.14变量变量:程序运行中可与被改变的量,存在于内存中变量需要定义:格式:数据类型 名称;数据类型基本类型整型:int 内存占 4字节short 2字节long windows 4字节 linux 32位 4字节,64位 8字节long long 8字节字符:char 1字节浮点

2021-08-03 20:45:55 88

原创 C语言篇章一——第一个程序

第一个程序hello world按照惯例,每学一个新语言便是写一个hello world程序#include <stdio.h> //预处理#define PI 3.14 // 定义一个宏 PI的值为3.14int main(){ printf("hello world!\n"); //打印到终端 return 0;}C语言编译步骤预处理gcc -E xx.c -o xx.i​ 带#的语句就是预处理指令,预处理指令在预处理的时候处理了​ 删除注释​ C语言注

2021-08-03 19:44:03 169

原创 AVL树

AVL树Adelson-Velskii和Landis树:带有平衡条件的二叉查找树。平衡条件要容易保持,而且它须保证树的深度是O(logN)。最简单的想法是左右子树具有相同的高度。还有一种是要求每个结点都必须要有相同高度的左子树和右子树。一颗AVL树是其每个节点的左子树喝右子树的高度最多差一的二叉查找树。在插入以后,只有那些从插入点到根节点的路径上的节点的平衡可能发生改变,我们上行到根可以找到一个节点,它的新平衡破坏了AVL条件我们需要在这个点,重新定义AVL特性。这个节点叫a。不平衡条件可能出现以下四种

2020-07-13 10:32:12 118

原创 二叉查找树

函数具体实现我们放在后边一起看查找树ADT------二叉查找树让二叉树成为二叉查找树的性质是:对于树中的每个节点X。它的左子树的所有关键字值小于X的关键字值,右边反之。下面我们看如何实现,并介绍一些操作算法实现:MakeEmpty用于初始化,建立一颗空树;使用递归的方法。Find返回具有关键字X的指针,不存在返回NULL。实现起来很简单,如果T是NULL,那么我们直接返回NULL,否则我们与T的关键字做比较然后递归寻找,找到就返回。最后还没有找到就返回NULL。FindMin&.

2020-07-13 08:56:19 137

原创 数据结构NO6--串简要

串类型的定义串(string)或字符串是由0个或多个字符组成的有限序列。字符的数目n称为串的长度。0个字符的串为空串串的模式匹配算法kmpint next_[N];string a,aa;int len;void getnext(){ int i = 0, j = -1; next_[0] = -1; while(i < len) { if(j == -1 || a[i] == a[j]) next_[++i]

2020-06-05 18:17:08 214

原创 数据结构NO5--栈和队列简要

栈栈是限定仅在标为进行插入或删除的线性表,表尾为栈顶,表头为栈底,不含元素的栈为空栈。先进后厨(last in first out)栈的表示和实现#define max_size 100#define later 10typedef struct{ int *base; int *top; int num;}SqScack;栈的应用举例进制转换void f(int n, int k){ stack<int> s; while(n)

2020-06-05 17:30:19 142

原创 数据结构NO4-递归

4.1何为递归允许程序调用自己本身的过程或函数。当递归调用时我们可以用一颗树来表示,称这棵树为递归树。4.2递归的应用4.2.1汉诺塔void hanoi(int n, char a, char b, char c){ if(n > 0) { hanoi(n-1, a, c, b); printf("move disk %d form %c to %c\n",n, a, c); hanoi(n-1, b, a, c);

2020-05-30 15:40:08 168

原创 数据结构NO3--链表

看了这个妈妈再也不担心我的链表啦QVQ…3.1链表的定义找了一堆感觉都是废话3.2动态内存分配malloc:fp = (数据类型*)malloc(sizeof(数据类型))free:free(void *fp)3.3链表的建立typedef struct list{ int num; struct list *next;}node;typedef node *link;link creat_list(int n){ link head; link

2020-05-29 20:45:59 249

原创 数据结构NO2--数组结构

2.1数组的定义特点:1、元素地址是连续的;2、数据类型是相同的;2.2数组表示法一维数组地址计算公式:Loc(A(i))=a+(i−a1)∗dLoc(A(i))=a+(i-a_{1})*dLoc(A(i))=a+(i−a1​)∗d二维数组:储存当时实际转化为一维再进行:​ (1):以行为主:​ Loc(A(i,j))=a+(i−a1)(u2−a2+1)d+(j−a2)dLoc(A(i,j))=a+(i-a_{1})(u_2-a_2+1)d+(j-a_2)dLoc(A(i,j))

2020-05-29 19:40:27 340

原创 数据结构NO1---概述

1.1数据与信息位(Bit):Binary Digit的简称,只能存储1或0的二进制数字。字节(Byte):8位构成一个字节。一个字节可存一个字符。可表示256个不同的字符。1.2数据处理常用的处理方式有下列几种任务方式:编辑(Edit):like 用户利用编辑程序将指令逐一编辑成程序;排序(Sort):将数据按照某一键值排序,以供后期提取归并(Merge):将俩种以上相同性质的文件数据归并在一起分配(Distribute):将一个文件按照某一基准分置两个以上的存储体建档(Generat

2020-05-29 19:39:26 261

原创 数论 part1

欧几里得定理int gcd(int a, int b) //最大公约数{ return b == 0? a:gcd(b,a%b);}int lcm(int a, int b)//最小公倍数{ return (a*b)/gcd(a,b);}扩展欧几里得if ax+by = d 有解 则有gcd(a,b)%d == 0 换句话说就是 d一定是gcd(a,b)的...

2020-03-13 21:41:18 135

原创 第十届蓝桥杯E题 BFS解决

19蓝桥杯E题 迷宫【问题描述】下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方。010000 000100 001001 110000迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这 个它的上、下、左、右四个方向之一。 对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通过迷宫, 一共 10 步。其中 D、U、...

2020-02-28 11:44:23 588

原创 初学动规 例题 滑雪

初学动态规划学习心得本人是根据mooc大学郭炜老师得程序设计与算法进行的个人总结组成部分一 ------- 确定状态(非常重要)1.一般要开一个数组,确定其代表啥2.确定状态需要的俩个意识:​ 最后一步(最有策略的最后一个问题)&子问题()组成部分二 ------ 转移方程组成部分三 ------ 初始条件和边界情况一般思路1:把原问题转化为若干的子...

2020-02-25 09:43:08 264

原创 一些常见的排序方法。

作者实属太菜所以写的很简单,就直接上函数块吧。再一个就是sort函数真香,一般情况下,只要不是那种恶心人的题目都不会卡sort。排序方法选择排序每一次选择最小的插再已经排序好的下一个。void xzsort(int a[], int n){ for(int i = 0; i < n-1; ++i) { int te = i; ...

2020-02-23 17:19:56 1152 4

空空如也

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

TA关注的人

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