【教程】hexo搭建博客+keep主题美化
感谢你来到本小站,如果这篇博客对你有帮助,欢迎在下方评论😘! 折腾了一整天,算是把基本的博客环境给搭建好了,页面效果还是挺不错的!后续对寒舍有什么新操作会对本文进行更新,可以多多关注一下哦 本博客修改过的 keep 主题文件可以在这里查看👉 musnows/hexo-theme-keep 本博客修改后的 keep 主题预览站点为 keep-hexo.musnow.top 1.基本配置我最开始使用的平台是HEXO+Gitee,参考这篇博客👉基于Gitee+Hexo搭建个人博客 现在我不建议你使用 gitee pages,具体请看本文 4.1; 可以根据本文向导配置 github pages,有问题可以评论提出哦╰(*°▽°*)╯ 操作之前,需要下载两个软件;先下载安装好node.js后再进行git操作 12node.js官网 https://nodejs.org/zh-cn/git官网 https://git-scm.com/ 1.1...
【树莓派开发】树莓派安装vim编辑器(附带排错流程)
前言Linux自带的编辑器有nano和vi,但vi编辑器使用起来很不方便。 我们要先在树莓派上下载vim编辑器,它是vi编辑器的升级版本,使用更加人性化 但实际上安装vim编辑器并没有网上写的那么简单,在安装过程中出现了种种问题😭 1.用putty软件链接树莓派Putty软件想必把玩树莓派的你应该是很熟悉的。 输入ip后即可链接到你的树莓派,方便我们进行后续的操作 2.下载vim首先更新索引源 1sudo apt-get update 安装vim编辑器 1sudo apt-get install vim 2.1错误:404无法下载安装过程中可能会有错误提示,比如我这里就显示无法连接到服务器404,且软件包下载失败 解决方法参考这篇博客👉传送门1 因为树莓派默认的软件源是国外的,国内可能链接不少,所以我们要把下载源修改为国内清华的 需要修改两个文件来进行这个操作 1sudo nano...
【C语言】什么是堆?堆排序和TopK问题又是如何实现的
[TOC] 前言在上一篇数据结构博客中,我带大家一起学习了树以及二叉树这一个全新的数据结构。 【C语言】什么是树,二叉树又是啥玩意 本篇博客,就让我们一起来看看常被人津津乐道的堆排序以及堆这个数据结构是一个什么样的存在吧? 1.堆的概念堆的概念是基于完全二叉树的 当k1、k2、k3……kn的数据按照完全二叉树的方式存放在数组中,且这个完全二叉树满足某个节点的值总是不大于(或不小于)其父节点的值时,称该完全二叉树为堆。 将根节点最大的堆叫大根堆 根节点最小的堆叫做小根堆 堆中某个节点的值总是不大于(或不小于)其父节点的值 上篇树的博客中已经给大家解释过如何用数组的方式存放一颗完全二叉树,这里就不再赘述啦! 123leftchild = parent*2+1rightchild = parent*2+2parent = (child-1)/2 接下来这道题目能考察你是否了解了堆的概念,自测一下吧! 123452.下列关键字序列中,序列( )是堆。A .{16,72,31,23,94,53}B...
【C语言】什么是树,二叉树又是啥玩意
[TOC] 前言在之前的数据结构学习中,我们学习了顺序表、链表、栈、队列这几种结构 它们都是用链表或者数组的方式来实现的,主要考察我们对结构体的运用 今天让我们来学习一个新的数据结构,也就是下面这副图里面的树 啊不好意思,图拿错了!😜 是下面这个才对 1.什么是树?1.1 树的概念树是一种非线性的数据结构,它是由n个有限节点组成的具有一定层次关系的集合。 把它叫做树是因为它看起来的确像一个树的根部 当然也可以理解为是树干在上,树叶在下的结构 有一个特殊的节点,被称为根节点,也就是树的开头 除了根节点外,其余节点都是,个互不相交的集合。每一个集合都是一颗与树的结构类似的子树 每一个节点只能有一个前驱,但是可以有很多个后驱 因此,树是递归定义的 树中的子节点不能有交集 上图中的B节点不能有G这个孩子,因为G已经有父母C了 同理,G节点也不能同时拥有两对父母 子节点之间也不能相连,如E和F不能相连 1.2 树的相关知识点 节点的度:一个节点含有的子树的个数称为该节点的度; 如下图:A的度为6 叶节点或终端节点:度为0的节点称为叶节点;...
【C语言】三道例题让你彻底学会栈和队列
[TOC] 前言本篇博客,将带着大家刷3道非常经典的OJ题。它们并不算特别难,但对我们理解数据结构中栈和队列的概念有很大的帮助。 如果你还不了解栈,可以看看我之前的博客👉点我 队列的博客就不写啦,本篇刷题的时候会提到队列的操作 话不多说,直接开始吧! 1.用队列实现栈 leetcode:225. 用队列实现栈 这道题的要求很简单,用两个队列来模拟栈的实现。 我们知道,队列的操作是从后进,从前出,这就和我们在餐厅排队一样,先进入餐厅排队的人先得到座位。 而栈是遵循上进上出的,即栈只能在栈顶插入元素和删除元素 两个队列要如何结合,才能实现栈的要求呢? 1.1思路首先我们讲数据push到其中一个队列中 如果要访问此时的栈顶,使用队列中的tail尾指针来访问,即题目要求的TOP函数 当我们需要pop数据的时候,将队列中的N-1个数据全部移动到另外一个队列里,再将最后的栈顶数据删除并返回 最终的目的就是保证一个队列为空,另外一个队列保存数据 这样就达成了栈只能在栈顶删除数据的要求 最后还有一个函数是boolean empty() 如果栈是空的,返回 true...
【C语言】带你刷爆十道链表OJ
[TOC] 前言,CSDN的小问题😥最近写博客的时候,发现CSDN的markdown语法不支持加粗一句话末尾的标点符号 12**你好呀,****你好呀**, 这两种方式在typora上都会加粗(包括末尾的标点) 但是在CSDN上,第一种情况会显示出markdown源码,无法加粗 **你好呀,**我是你的好朋友你好呀,我是你的好朋友 虽然这不是什么大事,但有的时候写博客,一句本来应该是加粗的话,多显示了几个**,不太美观,还会给不了解markdown的读者带来困扰:“作者在这里打几个*号是干嘛?” 上一篇博客,我们学习了单向无头非循环链表,本篇博客就让我们实践一下,刷十道leetcode的链表OJ题目吧🌭 如果你把本篇博客里的这几道题都弄明白了,那说明你对链表的掌握已经非常棒了!加油! 话不多说,直接进入今天的正题! 第一题:206.反转链表 leetcode:206....
【C语言】单链表太难学不懂?看这一篇就够了
[TOC] 前言😀之前的博客中我们讲述了顺序表的数据结构,顺序表和之前C语言学习的数组还是比较相似的。 今天要学习的是链表,这是一个全新的数据结构,和之前我们学的内容都不相同。 编译器:VS2019 1.什么是链表链表,如其名所示,是一个带链子的表 和顺序表的扩容开辟相比,它可以利用内存堆区中的空闲空间,而不需要一个连续的长空间。从而达到提高空间利用效率的目的。 链表中每一个单独开辟的“元素”称为一个节点 链表有一个头指针phead,用于指向链表的首节点 单链表中,每一个节点都有一个next指针,指向下一个节点 链表的尾节点的next指向NULL空指针 这样我们在使用的时候,就可以用过next指针访问链表的下一个节点,一直到最后一个节点的next为空停止。 需要注意的是,链表的每个节点之间并没有实际意义上的箭头,画出箭头只是方便我们理解。实际上,在内存中,链表的next指针就充当了箭头的角色。 链表的结构在逻辑上连续,但在物理上不一定连续 实际上在堆区开辟空间中,分配的内存可能连续,可能不连续 1.1链表的分类1 单向/双向链表 2...