数据结构_单链表(C++
数据结构_SinglyLinkedList单链表(C++实现 前言:此类笔记仅用于个人复习,内容主要在于记录和体现个人理解,详细还请结合bite课件、录播、板书和代码。 [toc] 前言&注意事项 单链表C++的实现分为了结点类和链表类两个类,十分明了,可读性很高,也很容易写,节点类负责单个节点的操作,链表负责链表整体的操作 ==assert果然还是太暴力了,能不用就不用吧,但是一定要记住要判断 表指针 为空的情况== ==可以抛出异常信号 (建议用这个,因为运行错误的时候知道原因== ==可以直接返回== 判断指针head为空的方式 123456789if(!head) // if(!head)等价于if(head==NULL),head==NULL是head为空时等式成立,值为真 // head为空的话head就相当于0(假),非空就是真,所以当head为空的时候,!head就是真 throw nullPointer();//这里使用了抛出 ...
数据结构_栈和队列_作业
2022.10.10智慧树作业_栈和队列[toc] 第一题相同点: 在逻辑上都是线性结构,栈和队列本质就是特殊的线性表,都可以用链表或者顺序表进行存储 不同点: 栈、队列具有特定的性质,特定的运算规则 第二题1 2 3 4 5、1 2 3 5 4、1 2 4 3 5、1 2 4 5 3、1 2 5 4 3、1 3 2 4 5、1 3 2 5 4、1 3 4 2 5、1 3 4 5 2、1 3 5 4 2、1 4 3 2 5、1 4 3 5 2、1 4 5 3 2、1 5 4 3 2、2 1 3 4 5、2 1 3 5 4、2 1 4 3 5、2 1 4 5 3、2 1 5 4 3、2 3 1 4 5、2 3 1 5 4、2 3 4 1 5、2 3 4 5 1、2 3 5 4 1、2 4 3 1 5、2 4 3 5 1、2 4 5 3 1、2 5 4 3 1、3 2 1 4 5、3 2 1 5 4、3 2 4 1 5、3 2 4 5 1、3 2 5 4 1、3 4 2 1 5、3 4 2 5 1、3 4 5 2 1、3 5 4 2 1、4 3 2 1 5、4 3 2 5 1、4 3 5 ...
数据结构_树、二叉树、森林的转换
[toc] 树 转 二叉树 加线。在所有兄弟结点之间加一条连线 抹线。对树中的每个结点,只保留与第一个孩子之间连线,删除与其他孩子的连线 整理。适当旋转一下,使之结构分明 森林 转 二叉树 把每棵树转换成二叉树 从第一棵二叉树开始,把后一棵二叉树作为前一棵二叉树根结点的右子树 二叉树 转 树就是树 转 二叉树 的逆过程 作为根结点的每个结点,与左孩子的右孩子以及这个右孩子的右孩子、右孩子的右孩子……建立连线 删除原来所有父结点与右孩子的连线 整理 图:见 树 转 二叉树 的dcba顺序 二叉树 转 森林 删除原来所有父结点与右孩子结点的连线,得到分离的二叉树 将分离的每棵二叉树转化为树
数据结构_线性表应用_多项式的计算
数据结构_线性表的应用-多项式的计算 前言:此类笔记仅用于个人复习,内容主要在于记录和体现个人理解,详细还请结合bite课件、录播、板书和代码。 [toc] 一元多项式(polynomial)的加法数学表示方法 一元多项式通常按幂升序排列,在数学上表示为: pn(x) =p0 + p1x + p2x^2^ + p3x^3^ + p4x^4^ + p5x^5^ +…. + pnx^n^ 计算机内实现 在计算机内实现的话,可以使用线性表来存储,每个结点内存储两个成员:data数据、next指针,data数据包括单项式的系数和次数 且是按照次数的升序来进行存储的 《《此处应有图片,参考课本图2-18 数据的存放方法 如果不论次数是否为0都将数据存储进结点,那么有可能会造成空间的大量浪费,比如1 + x^100^ 如果只存储次数不为0的单项式,不会造成空间的浪费,但是考虑到两个多项式相加,次数相同的多项式需要合并在一起,这种存储方式可能需要花费一些时间来寻找两个多项式里的相同次数的单项式 数据结构的选择 不用多说必须使用动态内存,静态内存会造成空间不够或者空间浪费的情况 ...
数据结构_线性表应用_稀疏矩阵
数据结构_线性表应用 _稀疏矩阵[toc] 什么是稀疏矩阵 如果一个矩阵中,0的数量远大于非0的数量(0超过一半以上),这个矩阵就是稀疏矩阵 由于全部都是重复的0,这种无用的重复值的存储会占据很多空间,造成浪费 如何简化系数矩阵的表示 只需要存储非零的数据以及它在矩阵中的位置就可以 比如一个二维矩阵,就可以用一个三元组进行表示,(行,列,数据) 12345struct triple{ int row,col; int data;} 然后以三元组为基本元素,用顺序表或者链表就可以表示出稀疏矩阵了 十字链表表示法 由于用顺序表或者一般的链表,在表示稀疏矩阵的时候,不便于进行计算的操作 这里采用十字链表来表示 十字链表包括 数据域(data)、同列的下一个结点(down)、同行的下一个结点(right) 用来表示稀疏矩阵的时候,data就是三元组 如果同列/行中没有了下一个(非零)结点,那down/right就指向NULL 画个图表示一下 结束That’s all, thanks for reading!💐
数据结构_顺序表(C++
数据结构_SeqList顺序表(C++实现 前言:此类笔记仅用于个人复习,内容主要在于记录和体现个人理解,详细还请结合bite课件、录播、板书和代码。 [toc] 前言&注意事项 有些函数没有修改成员数据的要求,防止成员函数被修改,将只有读取要求的函数设为常函数(只读函数 用 C++实现,有很多优势,其中一个就是对象可以直接访问并修改数据成员,不用再想要修改的时候再传地址什么的 ==assert果然还是太暴力了,能不用就不用吧,但是一定要记住要判断 表指针 为空的情况== ==可以抛出异常信号 (建议用这个,因为运行错误的时候知道原因== ==可以直接返回== 判断指针head为空的方式 123456789if(!head) // if(!head)等价于if(head==NULL),head==NULL是head为空时等式成立,值为真 // head为空的话head就相当于0(假),非空就是真,所以当head为空的时候,!head就是真 t ...
butterfly修改白天模式下页脚图片亮暗程度
打开文件themes/butterfly/source/css/_layout/footer.styl 在大约第7行开始 在“background-color”这一行中可以调整小数值的大小,来控制页脚图片颜色深度,小数值越大,颜色越深 修改前: 修改后:
开启页面模糊效果下修改深色模式下页头页脚亮度
开启页面模糊效果下修改深色模式下页头页脚亮度如果魔改了主页面,开启了模糊效果,那么在修改深色模式下主页封面和页脚就不能只靠修改/themes/sourcs/css/_mode/darkmode.styl的信息来实现了 因为在darkmode.styl中,页头页脚和背景,同属于background,也就是说修改的时候这三者是一起修改的,但是由于魔改模糊效果之后,对于背景的设置(准确来说是页头页脚的设置)会覆盖掉darkmode.styl中的效果,所以在darkmode.styl中修改background的时候,只能影响到深色模式下背景图片的深度,而无法影响页头页脚 如何修改主页和文章页面的页头页脚的深度: 在魔改页面模糊效果之后往往在主题配置文件themes/butterfly/_config.yml的inject的head处会有引用,我们找到这处引用,看到引用的文件,我的是/css/custom.css,我们打开这个文件即可 在themes/butterfly/source ...
菜单栏页面内的顶部图片展示
菜单栏页面内的顶部图片展示在source中有中每个页面的配置文件夹,如tags、categories、music等: 打开一个文件夹,比如tags,都会有index.md配置文件: 里面的top_img对应的就是页面的顶部图片: 有些页面是有子页面的,比如tags、category等就有子页面 以tags为例,tags有各种标签,打开一个进去就会进入到相关的文章 在主题配置文件_config.yml中的设置中可以更改子页面的标签: 115行是tags默认的每个子页面的顶部图片,也可以分别调控每个tag的顶部图片: 例如头像、主页面顶部图片、时间轴(archive)顶部图片等的配置也在主题配置文件_config.yml中,只要在里面能找到相关配置,就可以进行修改 像是music、about等没有子页面的标签,直接就在对应的文件夹下的inedx.md文件里进行顶部图片的配置即可 不用在主题配置文件_config.yml里进行调配(这里面也没有对应的选项)
Linux_常用指令&权限管理
前言一切皆文件文件的分类 普通文件,文件属性为[-] 目录文件,属性为[d],文件夹(目录)也是一种文件,是内容为文件的文件,是能用 # cd指令进入的 块设备文件,属性为[b],表示为装置文件里面的可供储存的接口设备(可随机存取装置),比如硬盘、光驱等。例如一号硬盘的代码是 /dev/hda1等文件 字符设备文件,属性为[c],表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)、屏幕等 套接字文件,属性为[s],这类文件通常用在网络数据连接,可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。最常在 /var/run目录中看到这种文件类型 管道文件,属性为[p],FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO是first-in-first-out(先进先出)的缩写 链接文件,属性为[l],类似于Windows里的快捷方式和macOS的替身 文件 = 文件属性 + 文件内容 当我们在电脑上创建了一个空白文档的时候,查看一下文件的详细信息,会发现这 ...
解决butterfly在深色模式下页头页脚封面过暗
本方法适用于未进行页面魔改的,如果进行了页面魔改,请跳转到此处 在/themes/butterfly/source/css/_mode/darkmode.styl 调整第48行括号里的小数点后的数值,默认是.9,数值越大越暗 before: after: 相关问题链接:解决黑色模式下文章预览封面及内部图片过暗
宏实现#pragma once&#ifndef
为了避免同一个头文件被包含(include)多次,C/C++中有两种宏实现的方式:一种是#pragma once方式 一种是#ifndef的方式 有些编译器只支持其中的一种。 在能够支持这两种方式的编译器是,两者并没有太大的区别,但是两者仍然有一些细微的区别。 #pragma once用法 #ifndef, #define, #endif 理解
关于Linux
Linux是一种开源的操作系统什么是操作系统计算机本质是许多硬件组成的一个整体 设备驱动直接控制计算机的硬件,用户通过应用软件使用计算机 应用程序会调用多种设备驱动,驱动程序提供给应用程序接口,供应用程序调用接口来使用硬件 一个计算机上会有很多硬件,所以会有很多设备驱动,每个硬件对应的设备驱动也不一样;每个应用程序都会与很多设备驱动对接,还会经常有多个应用占用同一个硬件的情况,如何进行资源管理和分配是对于设计者来说是一件很麻烦的事情。 于是就有了操作系统,操作系统是用来管理软件和硬件的对接,并将硬件驱动程序的接口抽象化,行成一套简单的接口给上层的应用程序使用。 另外,设备驱动是嵌入到操作系统里的,上面讲的只是为了体现这几者的关系。 世界三大操作系统:Windows,macOS,Linux Windows是世界上市场份额占比最大的终端操作系统;macOS是基于Unix内核的操作系统;Linux是开源的操作系统,被广泛用于服务器、嵌入式,并且智能手机上的android操作系统正是基于Linux开发的子系统。 为什么是开源开源是Linus大神的非常强烈的信念,当时在接触MINIX的时 ...