483 1 分钟

本篇写于 2024 年 4 月 7 日,请注意时效性。 本人在配置 Shoka 主题的 Valine 评论提醒时,发现霜月琉璃对其配置方法描述不够详细且已经过时,故有此文。 原贴链接: Shoka 文章评论 Valine 的评论系统是基于 LeanCloud 运转的,其评论内容以结构化数据存储在 LeanCloud。 而邮件提醒,也就离不开 LeanCloud 的云引擎功能。原贴给出的 Valine-Admin 和本文给出的 Valine-Admin,都是基于云引擎运作的。 这就不得不提到 LeanCloud 的问题了,LeanCloud...
5.1k 5 分钟

该系列为本人的学习笔记,主要由本人整理书写而成。部分内容来自教材、视频课程等,不能保证完全原创性。 萌新的学习笔记,写错了恳请斧正。 # 链式二叉树 这篇笔记我们讨论基于链式二叉树,其节点的数据结构如下: typedef int BTDatatype;typedef struct BTNode{ BTDataType data; struct BTNode* left; struct BTNode* right;} BTNode;#...
4.4k 4 分钟

该系列为本人的学习笔记,主要由本人整理书写而成。部分内容来自教材、视频课程等,不能保证完全原创性。 萌新的学习笔记,写错了恳请斧正。 # 堆排序 堆排序,就是利用堆的思想进行排序,是一种非常高效的排序方法。 它的基本思想是将待排序的序列构建成一个堆,这样,序列的最大(最小)值就是堆顶的根节点。将其与堆的最后一个元素交换,然后将剩余的 n-1 个元素的序列重新构建成一个堆,这样就会得到 n...
5.3k 5 分钟

该系列为本人的学习笔记,主要由本人整理书写而成。部分内容来自教材、视频课程等,不能保证完全原创性。 萌新的学习笔记,写错了恳请斧正。 # 堆的概念 如果有一个关键码的集合 K={k0,k1,k2,...,kn−1}K = \lbrace k0,k1,k2,...,k_{n-1} \rbraceK={k0,k1,k2,...,kn−1​} ,把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki≤K2i+1K_i \le K_{2i+1}Ki​≤K2i+1​ 且 Ki≤K2i+2K_i \le K_{2i+2}Ki​≤K2i+2​...
2.6k 2 分钟

该系列为本人的学习笔记,主要由本人整理书写而成。部分内容来自教材、视频课程等,不能保证完全原创性。 萌新的学习笔记,写错了恳请斧正。 # 树 树是一种非线性的数据结构,它是由 n 个节点组成的一个具有层次关系的数据集合。其大概结构如下图: 其形状类似于一棵倒挂的树,由此得名。 # 树的相关概念 节点:树中每一个存储数据的元被称为节点。上方示意图中 A~Q 都是这棵树的节点。 根节点:根节点没有父节点,是整棵树的最上面的节点,是该树其他所有节点的发源。也就是上面示意图中的 A 节点。 父节点(双亲节点):就是树中与某节点相连但在其 “上方” 的节点。比方说,上方示意图中 A 是...
6.2k 6 分钟

该系列为本人的学习笔记,主要由本人整理书写而成。部分内容来自教材、视频课程等,不能保证完全原创性。 萌新的学习笔记,写错了恳请斧正。 # 栈 栈是一种特殊的线性表,是一种遵循后进先出(LIFO, Last In First Out)原则的数据结构。想象一下一摞盘子,你最后放上去的盘子会是你第一个拿掉的;同样地,在栈中,最后存入的数据会是第一个被取出来的。 其中,进行数据的增加和删除的一端称为栈顶,另一端称为栈底。数据进入栈的过程称为压栈(入栈),数据删除的过程称为弹栈(出栈)。 #...
11k 10 分钟

该系列为本人的学习笔记,主要由本人整理书写而成。部分内容来自教材、视频课程等,不能保证完全原创性。 萌新的学习笔记,写错了恳请斧正。 # 链表的定义 链表是一种基于指针的,物理结构不连续而逻辑结构连续的数据结构。大概就是说,把一个一个数据存放在一个一个节点中,每一个节点可能创建在内存的不同区域,但是每个节点都包括了至少一个指向下一个节点的指针。这样,我们就可以通过指针来按顺序找到整个链表的数据。 我们一般创建一个结构体类型作为链表的节点,结构体的成员包括若干数据和若干指针,其中数据部分称为链表的数据域,指针部分称为链表的指针域。(有些指针属于数据,要具体分析其功能) # 链表的分类 #...
2.9k 3 分钟

该系列为本人的学习笔记,主要由本人整理书写而成。部分内容来自教材、视频课程等,不能保证完全原创性。 萌新的学习笔记,写错了恳请斧正。 # 复杂度 复杂度是衡量算法好坏的一种方式。一般分为时间复杂度和空间复杂度,分别用于衡量一个算法在运行时间长短和占据内存空间多少两方面的优劣。 一般我们考察复杂度就是找到相关的代数式,将常数全部忽略,将非最高次项全部忽略,在用括号括起来,前面写一个大 O。这就是复杂度的大 O 表示法。 比方说,对于代数式 3N^2+2N+4,我们只取 N^2;对于 2N+4M+1,我们只取 M+N。 (未知数的选用是随意的) 至于这个代数式如何找到,且看下方。 #...
4.6k 4 分钟

该系列为本人的学习笔记,主要由本人整理书写而成。部分内容来自教材、视频课程等,不能保证完全原创性。 萌新的学习笔记,写错了恳请斧正。 # 数据结构 数据结构,顾名思义,就是计算机存储和管理数据的方式,是存在一种或多种关系的数据的集合。数据结构和算法都是程序设计的重要部分。比方说,数组就是一种最基础数据结构。 # 线性表 线性表是一类数据结构,其特点是...
4.4k 4 分钟

该系列为本人的学习笔记,主要由本人整理书写而成。部分内容来自教材、视频课程等,不能保证完全原创性。 萌新的学习笔记,写错了恳请斧正。 预处理指令就是 C 语言中的一些特定格式的用于辅助编译器预处理的指令,这些指令在编译时的预处理阶段就被处理,并不会被保留到汇编文件中。 # 预定义符号 首先是一些内置的预定义符号,这些符号可以直接使用,在预处理阶段就被替换为对应的其他内容 包括(注意前后都是两个下划线): FILE:替换为源文件的文件名(包括地址与后缀) LINE:替换为文件中此符号所在行的行号 DATE:替换为文件被编译的日期 TIME:替换为文件被编辑的时间 STDC:如果编译器遵循...