自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 红黑树的插入

并且将爷结点看作是新插入的结点,返回第一个步骤进行处理,由于此时的爷结点是根节点,所以要将爷结点染成黑色。第三步插入 5 :应该插到 结点10的左边,由于插入的不是根节点,所以需要将结点 5 染成红色,但是此时违反了 “不红红” 的原则,所以要开始看 结点5 的 “叔叔” 的脸色,如果它的叔叔是黑色,就开始进行旋转+染色,旋转的规则和平衡二叉树的规则相同,如果是LL或者是RR进行父换爷+染色,如果是LR或者是RL进行儿换爷+染色。如果插入的新节点是根,就把这个插入的结点染成黑色 第一步:先插入20。

2024-12-07 15:06:03 612

原创 红黑树的定义和性质

二叉排序树(BST 也叫二叉搜索树) ,平衡二叉树,红黑树之间的性能比较。红黑树是二叉排序树 左 < 根 < 右。

2024-12-07 11:45:48 516

原创 平衡二叉树的删除操作

插入新节点后,应该平衡二叉树原有的性质(即 左 < 中 < 右)不变,若插入新节点之后导致不平衡,则需要进行调整平衡。调整之后的结果:如果孙子在RR,将儿子进行左单旋,将儿子的左孩子变为自己的右孩子,同时将儿子变为自己的爹。第三步:找到最小不平衡子树下面,找到个头 最高的儿子,找到个头最高的儿子的儿子(即孙子)但是观察出现了上边的祖先出现了不平衡的情况,解决方法返回第二步继续进行。第四步:根据孙子的位置,调整平衡(LL RR LR RL)若删除结点之后,导致不平衡,则需要调整其平衡。

2024-12-07 09:48:06 906

原创 如何将不平衡二叉树调整成为平衡的样子

第四种情 况:将C结点进行右旋提升到B结点的位置,将C的右节点挂到B的左子树上,然后把该C结点向左上旋转提升到A结点的位置。解决方法就是从插入节点往回找到第一个不平衡结点,调整以该节点为根的子树。第三种情况: 先将结点C左旋提升到B结点的位置,将C的左孩子连到B的右边,然后再把C结点向右上旋提升到A结点的位置。第二种情况: 进行左旋,将B结点变为新的根节点,将A转换为B的左孩子,将B的左孩子挂在A的右边。第一种情况:进行右旋,将B变为新的根节点,将A变为B的右子树,将B的右孩子挂在A的左边。

2024-12-06 21:16:03 743

原创 二叉排序树的定义以及相关操作

3 要删除的结点既有左子树,也有右子树的情况时,让被删除结点的 中序 遍历的后继结点替换被删除结点的位置。其中序遍历的后续节点的右子树中最左下结点(该节点一定没有左子树,让被替换结点的右子树直接替代它原来的位置就行)二叉排序树的递归实现查找值为Key的结点 最坏空间复杂度为O(H)H 取决与二叉排序树的高度。1 要删除的结点是叶节点的情况,则直接进行删除,并不会破坏二叉排序树的性质。或者使用被删除结点的直接前驱替代被删除的结点(即左子树中最右下的结点)二叉排序树的插入(递归方式实现)

2024-12-06 11:27:19 513

原创 使用顺序存储实现的二叉树

【代码】使用顺序存储实现的二叉树。

2024-12-05 11:01:14 121

原创 使用C++实现KMP算法

【代码】使用C++实现KMP算法。

2024-12-04 20:48:56 122

原创 栈在括号匹配中的应用

【代码】栈在括号匹配中的应用。

2024-11-30 15:58:41 272

原创 队列的链式存储方式以及其基本操作

队列就是操作功能受限的单链表,因为队列只能对单链表的队头与队尾进行操作。链式存储实现队列可以分为带头结点与不带头结点的版本。初始化带头结点的队列。

2024-11-30 11:42:56 635

原创 队列的顺序实现,循环队列的相关计算

方案三:判断队空或者队满 ( 设置一个变量 tag ),当tag变量为0时,表示最近进行的是删除操作,当tag变量为1时,表示最近进行的是插入操作。将第 n-1 个位置的设置为要牺牲的存储单元,于是当队尾指针位于队头指针的后两个位置时,意味着队满,当队尾指针位于队头指针的后一个位置时,说明已经队空。以上各种情况都是基于队头指针指向队头元素,队尾指针指向队尾元素的下一个位置完成的。队列也是一种线性表,一种操作受限的线性表,只能从对头删除元素,只能从队尾插入元素。增加一个size变量或者是一个tag变量。

2024-11-30 10:13:46 502

原创 采用TF-IDF和TextRank两种关键词抽取方法抽取各个文档中的关键词

TextRank实现方法。TF-IDF实现方法。

2024-11-30 09:10:00 543

原创 字符串的朴素模式匹配算法

朴素模式匹配算法:暴力解决问题 ,将主串中所有长度为m的子串依次与模式串对比,直到找到一个完全匹配的子串或者所有的子串都不匹配为止。如果 j > T.length,则当前子串匹配成功,返回当前子串第一个字符的位置----- i - T.length。字符串的模式匹配:在主串中找到与模式串相同的子串,并返回其所在位置。主串长度为N ,模式串长度为M,则最多对比 N-M+1 个子串。字符串的模式匹配:朴素模式匹配,KMP算法。子串:主串的一部分,一定存在。模式串:不一定能在主串中找到。

2024-11-28 14:38:37 316

原创 串的定义和基本操作

串的定义:即字符串(string)是由零个或多个字符组成的有限序列。字符在主串中的位置:字符在串中的序号(从一开始的)串的比较操作:26个字母中,越靠前的值越小,越靠后的值越大。子串:串中任意个连续的字符组成的子序列(可以是空串)子串在主串中的位置:子串第一个字符在主串中的位置。串也是一种特殊的线性表,数据元素之间呈现线性关系。空串:没有字符的串(全是空格的串不算)空格串:全是空格的串。

2024-11-28 11:42:50 379

原创 串的存储结构

串(一种只有字符元素的线性表)串的存储结构:顺序存储,链式存储,基于顺序存储实现基本操作。

2024-11-28 11:42:25 873

原创 栈在表达式求值时的应用下

依次弹出栈中优先级高于或等于当前运算符的所有运算符,并加入后缀表达式。如果碰到 “( ”或栈空则停止。之后把当前运算符入栈。操作数直接入赘(缀),运算符先入栈,然后按优先级入赘(缀),直到见到左括号,左括号直接入栈,右括号弹出栈中元素,直到见到左括号。遇到“ ) ”即右括号,则依次弹出栈内运算符并加入后缀表达式,直到弹出 “( ”为止。注意:“(” 左括号不加入后缀表达式。用栈实现中缀表达式的计算(步骤:先将中缀转为后缀,然后进行后缀表达式求值)直接加入后缀表达式。遇到 “( ”即左括号 ,直接入栈。

2024-11-27 09:44:04 274

原创 栈在表达式求值中的应用

方法:1,从左向右扫描元素 2,如果扫描到操作数则压入栈 3,如果扫描到运算符,就弹出两个栈顶元素,并执行相应运算,结果压回栈顶,继续扫描。扫描下一个元素 2,如果扫描到操作数,就压入栈 3,如果扫描到运算符,就弹出两个栈顶元素执行相应的运算,运算结果压回栈顶。一 ,三种算术表达式:中缀表达式,后缀表达式(逆波兰表达式),前缀表达式(波兰表达式)。三 ,前缀表达式相关考点:中缀表达式转为前缀表达式,前缀表达式求值。算术表达式组成:操作数,运算符,界限符(就是括号)前缀表达式的运算:1,

2024-11-27 08:02:54 308

原创 数据结构第二章静态链表的实现以及一系列操作

静态链表的实现以及一系列操作。

2024-11-25 20:03:11 281

原创 数据结构第二章双链表的相关操作

带头结点的循环双链表的实现以及一系列操作。不带头结点的双链表的实现以及一系列操作。不带头结点的双链表的实现以及一系列操作。带头结点的双链表的实现以及一系列操作。

2024-11-25 19:55:31 388

原创 数据结构第二章单链表的相关操作

不带头结点的循环单链表的实现以及一系列操作。带头结点的循环单链表的实现以及一系列操作。不带头结点的单链表的实现以及一系列操作。带头结点的单链表的实现以及一系列操作。

2024-11-25 19:49:03 503

原创 数据结构第二章顺序表的两种实现方式

使用静态分配方式实现的顺序表以及一系列操作。使用动态分配实现的顺序表以及一系列操作。

2024-11-25 19:43:39 250

原创 如何快速给Clion配置C++环境

如果出现类似如下的代码片段说明你已经把环境配置成功了。文件的路径放在新建的框内,一路点击。验证环境是否配置成功,打开。将mingw64中的。

2024-11-25 19:29:52 796

原创 CLion中遇见的问题

No such file or directorycompilation terminated.

2024-11-25 19:13:19 302

原创 顺序表的动态分配方式与静态分配方式的各种操作

【代码】顺序表的动态分配方式与静态分配方式的各种操作。

2024-11-25 13:26:54 318

原创 操作系统之页面置换算法总结

页面置换算法总结

2024-11-17 10:14:07 647

原创 如何解决clion中中文输出乱码的问题

对于windows来说 最简单的解决方法。找到右下角的UTF8 并点击。先点击更多 然后点击GBK即可。

2024-11-08 20:14:31 341

空空如也

空空如也

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

TA关注的人

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