自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 中序线索二叉树

【代码】中序线索二叉树。

2024-09-29 14:35:34 109

原创 利用栈实现非递归遍历二叉树

【代码】利用栈非递归遍历树。

2024-09-28 22:18:31 124

原创 树的先(前)序遍历,中序遍历,后序遍历,层次遍历

例如(先序遍历插入):ABD##E##C#G##在树的数据结构中,遍历是访问树中每个节点并且仅访问一次的过程。以下是四种基本的树遍历方法,它们分别是先序遍历、中序遍历、后序遍历和层次遍历(或称为广度优先遍历)。每种遍历方法都有其特定的访问节点顺序。

2024-09-28 19:42:39 529

原创 KMP匹配算法

KMP匹配算法(Knuth-Morris-Pratt Algorithm)是一种高效的字符串匹配算法,由D.E.Knuth、J.H.Morris和V.R.Pratt共同提出。该算法的主要目的是在主串(也称为文本串)中查找一个或多个与模式串(也称为子串)相同的子序列,并返回这些子序列的位置。KMP算法通过减少不必要的比较次数来提高匹配效率,其核心在于利用匹配失败后的信息,避免主串的回溯,仅通过调整模式串的位置来继续匹配。

2024-09-20 22:06:25 874

原创 简单的模式匹配算法

暴力匹配算法是最简单直观的模式匹配算法。其基本思想是:将模式串与主串的每一个可能的起始位置进行匹配,直到找到匹配的位置或遍历完主串。:在最坏的情况下,时间复杂度为O(n*m),其中n是主串的长度,m是模式串的长度。

2024-09-17 22:09:30 125

原创 判断括号是否匹配

括号匹配例如: (){[]}括号匹配;{(])[}括号不匹配;括号匹配是栈的一个典型应用。

2024-09-17 00:27:05 195

原创 队列(链式存储结构)

队头指针(front):指向队列的第一个元素(即队首元素)的指针。如果队列为空,则队头指针为空(或指向一个特殊标记的节点,称为哑节点或哨兵节点)。队尾指针(rear):指向队列最后一个元素的后一个位置的指针。这样做的目的是为了简化入队操作,使得入队操作只需要修改队尾指针即可。如果队列为空,则队尾指针和队头指针相同(如果使用了哑节点,则指向哑节点)。数据域(data):存储节点的数据。指针域(next):指向下一个节点的指针。

2024-09-16 17:59:13 541

原创 循环队列(顺序存储结构)

数组:用于存储队列元素的数组。front:指向队列队首元素的索引。rear:指向队列最后一个元素的下一个位置的索引(对于空队列,容量:数组的最大容量,也是队列的最大容量。

2024-09-16 17:15:00 336

原创 判断出入栈序列是否为合法序列

出入栈序列操作可以由I和O组成的序列表示,如果栈的初态和终态都为空,写一个程序判断序列是否合法。

2024-09-16 16:20:26 165

原创 顺序栈的基本操作与实现

【代码】顺序栈的基本操作与实现。

2024-09-15 20:10:21 102

原创 带头结点单链表逆置

【代码】带头结点单链表逆置。

2024-09-15 17:28:08 326

原创 删除带头结点单链表中一个最小值节点

【代码】删除带头结点单链表中一个最小值节点。

2024-09-15 17:02:30 121

原创 单链表删除所有值为x的节点

/ 修改前驱节点的next指针,绕过当前节点。if (p->next == NULL) { // 如果链表为空(仅含头结点)q = p->next;// 移动q到下一个节点,继续检查。// 遍历结束,未找到指定元素,返回false。// 删除成功,返回true。// 释放当前节点的内存。// 从第一个数据节点开始遍历。// 否则,更新p和q为下一个节点。

2024-09-15 16:43:28 158

原创 循环单链表

循环单链表

2024-09-15 02:42:42 215

原创 双链表插入与删除操作

双链表(Doubly Linked List)是一种链式数据结构,它允许我们向前和向后遍历链表中的元素。与单链表(Single Linked List)相比,双链表中的每个节点不仅包含指向下一个节点的指针(next),还包含指向前一个节点的指针(prior或prev这种双向连接性使得双链表在插入、删除节点时更加灵活和高效,特别是在链表的中间或前端进行操作时。

2024-09-15 01:55:59 467

原创 链表的基本操作与实现

单链表的基本操作

2024-09-15 01:26:01 445

原创 21:角谷猜想

所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出"End"。如果输入为1,直接输出"End"。程序要求输入一个整数,将经过处理得到1的过程输出来。一个正整数N(N <= 2,000,000)注意计算过程中中间值可能会超过int范围。

2023-12-08 22:09:38 506

原创 04:填空:类型转换1

类型通常是一个32位的有符号整数,其范围是 -2147483648 到 2147483647。一行,包含两个大写字母,分别代表变量a和b的类型标号。中间用一个空格隔开。类型是一个16位的有符号整数,其范围是 -32768 到 32767。输出两个数:32768 -32768。请问a和b分别是以下哪种类型?大多数情况下,在C或C++中,

2023-10-29 00:32:49 208

原创 03:其他基本数据类型存储空间大小

分别定义bool,char类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开。

2023-10-29 00:13:22 49

原创 02:浮点型数据类型存储空间大小

分别定义float,double类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开。

2023-10-29 00:12:26 59

原创 01:整型数据类型存储空间大小

使用sizeof函数可以得到一个特定变量的存储空间大小。例如:对于int型变量x,sizeof(x)的值为4,即x的存储空间为4字节。分别定义int,short类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开。

2023-10-29 00:11:27 69

原创 10:超级玛丽游戏

超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。必须严格按样例输出,每行的行尾不能有空格。

2023-10-28 23:56:09 49 1

原创 09:字符菱形

给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。输入只有一行, 包含一个字符。

2023-10-28 23:53:56 55 1

原创 07:输出浮点数

读入一个双精度浮点数,分别按输出格式“%f”,“%f”保留5位小数,“%e”和“%g”的形式输出这个整数,每次在单独一行上输出。第二行是按“%f”保留5位小数输出的双精度浮点数;第一行是按“%f”输出的双精度浮点数;第三行是按“%e”输出的双精度浮点数;第四行是按“%g”输出的双精度浮点数。

2023-10-28 23:46:33 301 1

原创 08:字符三角形

给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。该字符构成的等腰三角形,底边长5个字符,高3个字符。输入只有一行, 包含一个字符。

2023-10-28 00:50:07 61 1

原创 06:空格分隔输出

读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔。输出浮点数时保留6位小数。输出字符、整数、单精度浮点数和双精度浮点数,之间用空格分隔。第三行是一个单精度浮点数;第四行是一个双精度浮点数。

2023-10-28 00:20:31 61 1

原创 05:输出保留12位小数的浮点数

读入一个双精度浮点数,保留12位小数,输出这个浮点数。也只有一行,保留12位小数的浮点数。只有一行,一个双精度浮点数。

2023-10-28 00:05:07 63 1

原创 04:输出保留3位小数的浮点数

读入一个单精度浮点数,保留3位小数输出这个浮点数。也只有一行,读入的单精度浮点数。只有一行,一个单精度浮点数。

2023-10-27 23:44:24 99 1

原创 03:对齐输出

只有一行,按照格式要求依次输出三个整数,之间以一个空格分开。读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们。只有一行,包含三个整数,整数之间以一个空格分开。

2023-10-27 23:37:44 56 1

原创 02:输出第二个整数

只有一行,共三个整数,整数之间由一个空格分隔。整数是32位有符号整数。只有一行,一个整数,即输入的第二个整数。输入三个整数,把第二个输入的整数输出。

2023-10-27 23:22:38 41

原创 01:Hello, World!

的程序往往是最基本、最简单的。因此,这个程序常常作为一个初学者接触一门新的编程语言所写的第一个程序,也经常用来测试开发、编译环境是否能够正常工作。是 C++ 中的一个预处理指令,用于包含一个叫做 iostream 的标准库,这个库提供了输入输出流的功能,用于控制台的输入/输出。具体来说,iostream 库让我们可以从键盘(或其他输入流)读取数据,并将数据写入到屏幕(或其他输出流)中。是 C++ 中的一个预处理指令,它告诉编译器在接下来的代码中使用。(标准)命名空间中的所有符号,而无需为这些符号加上。

2023-10-27 23:16:27 35

原创 02:奇数单增序列

总时间限制:1000ms内存限制:65536kB描述给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。输入共2行:第1行为 N;第2行为 N 个正整数,其间用空格间隔。输出增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。样例输入101 3 2 6 5 4 9 8 7 10样例输出1,3,5,7,9#include <iostream>#include <cstdi..

2021-11-02 21:05:43 347 2

原创 02:同行列对角线的格子

总时间限制:1000ms内存限制:65536kB描述输入三个自然数N,i,j(1<=i<=N,1<=j<=N),输出在一个N*N格的棋盘中(行列均从1开始编号),与格子(i,j)同行、同列、同一对角线的所有格子的位置。如:n=4,i=2,j=3表示了棋盘中的第二行第三列的格子,如下图: 第一列 第二列 第三列 第四列 ...

2021-11-02 14:35:44 361

空空如也

空空如也

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

TA关注的人

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