自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构(树)

基本概念空树:结点数为0非空树:有且仅有一个根节点叶子结点(终端节点):没有后继的结点分支结点(非终端结点):有后继的结点除了根结点,任何结点有且仅有一个前驱每个结点可以有0或多个后继结点之间关系祖先、子孙、双亲、父、孩子、兄弟(一个爹的)、堂兄弟路径(只能从上往下)、路径长度(经过几条边)属性的描述结点的层次(深度)——从上往下数 ,默认从1开始结点的高度——从下往上数 ,默认从1开始结点的度——有几个孩子树的度——各结点度的最大值有序树和无序树有序树:结点的各子树从

2020-08-13 17:48:42 359

原创 数据结构(串之KMP算法)

若不经常出现子串与模式串部分匹配的问题,KMP算法和朴素算法差不多KMP算法:主串不回溯,只有模式串的指针回溯求next数组当模式串的第 j 个字符匹配失败时,令模式串跳到 next[j],再继续匹配串的前缀:包含第一个字符且不包括最后一个字符的子串串的后缀:包含最后一个字符且不包括第一个字符的子串当第j个字符串匹配失败,由前1~j-1个字符组成的串记为S,则:next[j] = S的最长相等前后缀长度+1注:next[1] = 0模式串:ababaa序号J12345

2020-07-23 21:42:40 344

原创 数据结构(串)

串:即字符串,由0个或多个字符组成的有限序列。一般记为S=′a1,a2......an′(n≥0)S = 'a_1,a_2......a_n' (n\geq0)S=′a1​,a2​......an′​(n≥0)S为串名术语:主串、子串、空串、字符在主串中的位置、子串在主串中的位置串是一种特殊的线性表,数据对象为字符集基本操作StrAssign(&T,chars); //赋值StrCopy(&T,S); //复制,串S复制得到TStrEmpty(S); //判空Strlengt

2020-07-22 20:20:07 205

原创 数据结构(栈的应用之表达式求值)

三种算术表达式中缀表达式:A+B-C*D/E+F前缀表达式(波兰表达式):+A-B+*C/DEF后缀表达式(逆波兰表达式):AB+CD*E/-F+中缀转后缀不左优先也对,但是不利于计算机计算左优先原则:只要左边的运算符能计算,就先算左边的后缀表式计算结果:从左往右扫描,每遇到一个运算符,就让运算符前面最近的两个操作数执行相应运算中缀转前缀不右优先也对,但是不利于计算机计算右优先原则:要右边的运算符能计算,就先算右边的流程用栈计算后缀表达式从左往右扫描,直到处理完所有元素,栈里最终

2020-07-21 16:14:56 702

原创 数据结构(栈的应用之括号匹配)

遇到一个左括号就进栈,遇到一个右括号就弹出栈顶左括号流程实现#define MaxSize 10typedef struct{ char data[MaxSize]; int top;}SqStack;//初始化栈void InitStack(SqStack &S);//判空bool StackEmpty(SqStack S);//入栈bool Push(SqStack &S,char x);//出栈bool Pop(SqStack &S

2020-07-21 11:15:14 277

原创 数据结构(队列)

只允许在一端插入,在另一端删除的线性表术语:队头、队尾、空队列特点:先进先出(FIFO)1.基本操作InitQueue(&Q) 初始化,构造空队列QDestoryQueue(&Q) 销毁队列,释放内存空间EnQueue(&Q,x) 入队,新元素成为队尾DeQueue(&Q,&x) 出队,删除队头,用x返回GetQueue(Q,&x) 读队头QueueEmpty(Q) 判空(考点:选择题)2.顺序实现(rear指向队尾元素下一个的情况)#

2020-07-20 18:39:19 167

原创 数据结构(栈)

只允许在一端进行插入或删除的线性表术语:栈顶、栈底、空栈特点:后进先出(LIFO)n个不同元素进栈,出栈元素不同排列的个数为1n+1C2nn\frac{1}{n+1}C_{2n}^nn+11​C2nn​——卡特兰数考点:出栈顺序1.实现sq:seqence 顺序#define MaxSize 10typedef struct{ ElemType data[MaxSize]; int top;//栈顶指针}SqStack;2. 基本操作InitStack(&S)

2020-07-20 10:05:47 232

原创 数据结构(顺序表VS链表)

1.逻辑结构都属于线性表,都是线性结构2.存储结构顺序表:支持随机存取;各结点只存储数据本身,存储密度高;空间分配、容量改变不方便链表:不可随机存取;要用空间存指针,存储密度低;空间分配、容量改变方便3.基本操作创顺序表:需要分配大片连续空间链表:只需分配一个头指针销顺序表:修改length=0,静态(系统自动回收),动态(手动free)链表:依次删除各结点,free增、删顺序表:后移(前移)插入位置之后的元素,O(n)——主要来自移动元素链表:修改指针,O(n)——主要来自查找

2020-07-18 17:34:23 231

原创 数据结构(线性表之循环链表、静态链表)

3.循环单链表初始化空循环单链表bool InitList(LInkList &L){ L = (LNode *)malloc(sizeof(LNode)); if(L==NULL) return false; L->next = L; return true;}p是否为表尾bool isTail(LNode *p){ if(p->next == L) return true; else

2020-07-18 16:59:35 101

原创 数据结构(线性表之双链表)

2.双链表实现typedef struct DNode{ ElemType data; struct DNode *prioi,*next;}DNode,*DlinkList;初始化(带头结点)bool InitDLinkList(DLinkList &L){ L = (DNode *)malloc(sizeof(DNode)); if(L==NULL) return false; L->prior = NULL; L

2020-07-18 15:58:54 81

原创 单链表原地逆置

单链表原地逆置强烈建议拿根笔、拿张纸画画流程!!!此方法改变原链表//原地逆置(头插法)void ConverseLNode(LinkList &L){ LNode *p,*q; p = L->next; while(p->next!=NULL) { q = p->next; p->next = q->next; q->next = L->next; L->next = q; }} 完整代码#include &

2020-07-17 21:34:45 900

原创 数据结构(线性表之单链表2)

按位查找(带头结点)//按位查找,返回第i个元素LNode * GetElem(LinkList L,int i){ if(i<0) return NULL; LNode *p; int j=0; p = L; while(p!=NULL && j<i){ p = p->next; j++; } return p;}平均时间复杂度:O(n)改写按位插入(带头结点

2020-07-17 19:24:42 107

原创 数据结构(线性表之单链表1)

三、链表1.单链表优点:不要求大片连续空间,改变容量方便缺点:不可随机存取,耗费一定空间存放指针实现typedef struct LNode{ ElemType data;//每个节点一个数据元素 struct LNode *next;//指针指向下一个节点}LNode,*LinkList;强调是一个单链表--------------------LinkList强调是一个结点-----------------------LNode *初始化(不带头结点)void Init

2020-07-16 22:53:48 127

原创 数据结构(线性表之顺序表)

一.线性表1.定义具有相同数据类型的n个(n>=0)数据元素的有限序列。n为表长。表示:L=(a1,a2,...ai,ai+1...,an)L = (a_1,a_2,...a_i,a_{i+1}... ,a_n)L=(a1​,a2​,...ai​,ai+1​...,an​) i 为位序,从1开始2.基本操作InitList(&L) 初始化表,分配存储空间DestroyList(&L) 销毁表,释放存储空间 ListIn

2020-07-16 21:02:07 283 1

原创 数据结构(算法时间复杂度)

算法时间复杂度:事前预估算法时间开销T(n)与问题规模n的关系(T:Time)void loveYou(int n) //n为问题规模{① int i=1;② while(i<=n) {③ i++;④ printf("I love you %d\n",i); }⑤ printf("I love you more than %d\n",n);}①---------1次②---------n+1③④------n⑤---------1T(n) = 1+n+1+2*n+

2020-07-14 11:54:16 260

原创 从0开始搭建基于hexo个人博客(四、更换主题)

前几篇文章已经把hexo部署到了gitee上,但是外观有点差强人意,接下来,给博客穿衣裳!流程1. 找到想要的主题下载下来在网上搜hexo主题能出来很多,这里我推荐两个yilia 简洁matery 炫酷点击以上超链接进入GitHub仓库---->复制仓库地址进入本地博客目录themes下(E:\blog0706\themes)—>右击空白处选择Git Bush Here输入以下命令将GitHub仓库中的主题clone到本地yilia文件夹下git clone https

2020-07-10 11:35:17 211

原创 hexo部署到gitee没有样式——完美解决

解决上一篇网页没有样式,请求出错的问题解决办法: 在本地博客的_config.yml配置文件中 root: . (root冒号空格点)注: url可以瞎写,但不推荐排查问题过程:打开gitee生成的hexo网页,也就是我们的博客url,按 F12 进入开发者工具有好多404,一定是请求路径有问题点击Network --> 点击某个资源 --> 查看Headers这里的路径好像没问题啊,和仓库名字一样的(可能是我注册账号时候不当操作做的孽)既然是路径的问

2020-07-08 10:51:58 6908 8

原创 从0开始搭建基于hexo个人博客(三、上传第一篇文章)

从0开始搭建基于hexo个人博客(三、第一篇文章)hexo中文章采用 Markdown标记语言Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。AG本人写文章采用CSDN在线编辑,之后导出,传到 h e x o 博客语法:第一次进入文章编辑页面会有详细说明流程:完成一篇文章后点击导出,路径为本地博客目录\source_postsAG的目录为 E:\blog0706\source_posts鼠标右击目录空白处,选择Gi

2020-07-07 23:40:01 562

原创 从0开始搭建基于hexo个人博客(二、gitee)

从0开始搭建基于hexo个人博客(二、gitee)上篇文章我们已经搭建好了本地的hexo,接下来将搭建好的本地博客推到gitee上gitee搭建分为注册gitee账号创建仓库把本地博客推上去期间会涉及到 git命令,以后会发文介绍,现在当务之急是把博客搞起来,增加信心。阶段性的成果会树立信心!!!注册gitee账号有账号直接登录访问gitee码云按流程注册创建仓库创建之后出现,我们不用管,可以了解下各命令作用配置hexo上传方式,打开本地博客目录下的_config.

2020-07-06 21:39:12 216

原创 从0开始搭建基于hexo个人博客(一、本地)

个人博客拥有一个自己的博客是不是一个很幸福、很自豪、很激动的事呢?今天就带大家从0开始搭建自己的博客,闲话少说,开始!本地搭建分为三个步骤:安装git安装nodejs安装hexo安装git点击https://git-scm.com/下载安装一路next,可改变安装路径可参考:git安装全过程安装nodejs点击下载安装一路next,可改变安装路径检查是否安装成功win+R 输入cmd 打开命令行安装hexo用 npm 安装经常出现卡顿导致无法正常安装,解

2020-07-06 18:07:32 202

空空如也

空空如也

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

TA关注的人

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