- 博客(23)
- 收藏
- 关注
原创 数据结构篇——线索二叉树
遍历二叉树是按一定规则将二叉树结点排成线性序列,得到先序、中序或后序序列,本质是对非线性结构线性化,使结点(除首尾)在线性序列中有唯一前驱和后继;但以二叉链表作存储结构时,只能获取结点左右孩子信息,无法直接得任一序列中的前驱和后继信息,该信息需在遍历动态过程中获取,所以我们将引入线索二叉树来保存遍历动态过程中得到的前驱和后继信息。
2025-03-18 16:51:01
1626
原创 数据结构篇——二叉树的存储与遍历
书接上文,文于此续。上文我们学到了树的存储结构,那么今天,我们来学习下几种特殊的二叉树以及关于它的各种遍历,让我们一起加油吧。
2025-03-17 15:39:08
1561
原创 数据结构篇——树与二叉树的介绍
1、树的定义:树是n个结点的有限集(n>=0),当n=0时树为空树。有且仅有一个称之为根的结点;除根结点以外的其余结点可分为m(m>=0)个互不相交的有限集T 1,T2,···,Tm,其中每一个集合本身又是一棵树。并日称为根的子树。例如 图5.1:在图中(a)是只有一个结点的树;(b)是有13个结点的树,其中A是根,其余结点分成3个互不相交的子集:T1={ B,E,F,K,L} ,T2={ C,G} ,T3={ D,H,I,J,M} $。T1、T2和T3都是根A的子树,且本身也是一棵树。
2025-03-16 10:58:51
1434
原创 数据结构篇——线性表
线性表的定义:用数据元素的有限序列表示。具体情况如下图所示:线性表的几个特点如下:①只有一个首结点和尾结点;② 除首尾结点外,其他结点只有一个直接前驱和一个 直接后继。Tips:线性结构反映结点间的逻辑关系是 一对一 的。线性结构包括线性表、堆栈、队列、字符串、数组等。
2025-03-15 10:44:13
1119
原创 蓝桥杯备赛日记【2】
解题思路:输入字符串遍历字符串中元素判断是否为元音字符并存储在容器打印最后一个元音字母按照动态规划的思路我们得到了上述几个子问题。我们对其分别解决并合并就能解出得到最后的结果。int main()// 请在此输入您的代码//初始化容器vstring S;cin>>S;//字符串的输入p!=S.end();p++){ //利用迭代器遍历该字符串//判断是否为元音//输出末尾元素return 0;
2025-03-13 13:40:40
293
原创 数据结构篇——广义表
其中,LS是广义表(a1,a2,a3,......,an)的名称,n是其长度。在线性表的定义中,ai(1<=i<=n)只限于是单个元素。但在广义表中,ai可以是单个元素,也可以是广义表,分别称作广义表LS的原子和子表。习惯上,用大写字母表示广义表的名称,用小写字母表示原子。下面是一些广义表的例子:广义表是一个多层次的结构,它的元素可以是子表,子表的元素也还可以是子表......由此可以用图形表示(图中圆圈表示广义表、方块表示原子。广义表可以被其他广义表共享。
2025-03-12 07:00:00
1547
原创 算法篇——串的模式匹配算法
子串的定位运算通常称为串的模式匹配或者串匹配。此运算相当广泛,比如在搜索引擎、拼写检查、语言翻译、数字压缩等应用中都需要用到串匹配。常用的串匹配算法有简单的模式匹配算法(BF)和KMP算法。
2025-03-11 17:14:28
1118
原创 数据结构篇——串(String)
串(string)是由零个或多个字符组成的有限序列,也是一种内容受限的线性表。其特殊性体现在数据元素是一个字符。其中,S是串的名,双引号内元素的个数为串的长度,0个元素的串被称为空串,其长度为0;字符串中的“空格”也算是串的一个元素,当一个串的元素只有空格时,这个串称为“空格串”2.2、子串以及串相等的条件在一个串中,任意几个连续字符所组成的序列称之为该串的子串,包含子串的串叫做主串。子串在主串中的位置通常用子串的第一个字符在主串中的位置表示。
2025-03-08 13:42:45
1307
原创 蓝桥杯备赛日记【1】(c++赛道)
解法思路:参考题目给出的例子发现。不管要裁剪多少次。最外围的四次是固定的。然后通过观察发现,我们的行的裁剪次数为(m-1) 次,而每行都需要裁剪列数即(n-1)次。所以总共需要裁剪的次数就为(m-1)+m*(n-1)+4次。故能将上题解出。
2025-03-06 18:09:17
496
原创 数据结构篇—队列(queue)
队列的操作和栈的操作类似,只不过相当于栈底可操作的栈。通过这样的一同变化,我们就发现。当栈的栈顶只负责入栈操作,栈底只负责出栈操作,那我们就能得到一个先入先出的队列啦!通过这样的理解,我们不难发现队列的组成就是在栈的基础上将栈顶变成了队尾、栈底变成了队头。队头(Front):允许删除的一端。队尾(Rear):允许插入的一端。空队列:不包含任何元素的空表。
2025-03-05 09:11:38
1090
原创 Java开发之捕鱼达人实例(三合一)
如果你有更好的想法,还望留在评论区让我来参考学习。我将不胜感激并努力创作出更好的内容。1、Java游戏示例开发之捕鱼达人(1/3)2、Java游戏示例开发之捕鱼达人(2/3)3、Java游戏示例开发之捕鱼达人(3/3)
2025-03-04 19:03:27
429
原创 数据结构篇—栈(stack)
来看下面这样一张图:两个人对着一个两端开口的管子吹气,将整个空间充满。而其中的虫子则是来回移动。现在我们有一个栈,并给它赋予50大小的空间。这时候,我们如果将最左边序号为0的空间看作栈底0,最右边序号为49的空间看作栈底1.这样当两个栈各自进行入栈操作后就会相遇对吧,最后将整个栈空间填满,而两个栈的分界点就是图中虫子的位置。所以我们得到了这样一张图。#define MAXSIZE 50 //给栈规定空间大小//自定义int类型的数据类型ElemTypeint top0;//栈0栈顶。
2025-03-04 18:33:31
1416
原创 c++数据结构篇——链表
通过文字很难明白链表到底是一种什么样的数据结构,所以我们一起来试着将理解到的东西画出来:试着想想,生活中的铁链是怎么构成的,是不是想到了最基础的部分——链结?所以我们先画个链结吧。然后将很多个 这样的链结首尾相连起来我们就得到了这样一个链子。这时候我们发现,只要用一个指针储存一个链结的头节点(也就是其首地址)在将这个指针放在前一个链结的内部形成尾节点。就能将两个链结连接起来形成一条铁链。再然后,由于指针的存在,所以每个链结就不用紧紧排列在一起。
2025-03-02 16:04:36
810
2
原创 数据结构入门篇——什么是数据结构。
关于数据结构的定义,概括一下主要包含两点:研究内容和基本概念。大家稍作了解就好了研究内容:话不多说,直接上图!希望通过本文的学习,你能明白数据结构的基本概念和逻辑。为后续的道路拨开云雾,大步向前!
2025-03-02 07:00:00
695
原创 算法入门之简单的深度优先搜索(DFS)和广度优先搜索(BFS)
下面是两个搜索算法的动态演示图,各位勇者加深下印象好好理解吧!今天的学习到此结束,你掌握了吗?学习之路任重道远,各位勇者加油!以上例题均出自#晴问算法。
2025-03-01 07:35:35
533
原创 c++算法入门之——动态规划(背包问题为例)
相信大家都玩过我的世界并挑战过末影龙的吧,那相信大家都应该明白,有末影水晶的末影龙和没有末影水晶的末影龙简直就是两个难度对吧。我们的目的是杀死末影龙,但为了简单的达到我们的目的,我们可以先解决辅助末影龙的末影水晶。学习动态规划,这是一种解决棘手问题的方法,它将问题分成小问题,并先解决这些小问题从而来降低主要问题的难度并解决。
2025-02-28 17:26:18
1050
原创 日常生活中常用的简单算法——二分、递归、贪心
本文主要讲解上述算法的简单运用,旨在引导新学习算法的勇者大大们理解其对应的底层思想和逻辑。在学习本文后,希望各位勇者能将涉及到二分、递归和贪心的简单问题简单拿捏。
2025-02-28 08:00:00
941
原创 日常学习中常用简单排序算法
在日常学习中为了优化我们的小作品,常常会选用某些算法来代替某些复杂代码块,从而让我们的作品更高效且能实现更多的功能。本文将介绍一些简单但常用的算法来供才踏上勇者之路的萌新勇者们学习算法。希望能帮助勇者们能更好的成长。
2025-02-27 14:35:20
692
原创 Java游戏示例开发之捕鱼达人(3/3)
恭喜各位勇者能够来到这里,这说明在第一部分的学习中你已经能够运用java成功搭建出一个合适的应用见面和按钮交互,在第二部分中能将java中的一大关键——线程拿捏住了!。那么接下来的第三部分的学习你准备好开始了吗?!创建渔网类炮弹碰到鱼后要死亡,炮弹消失后要变成渔网,用于捕鱼,创建渔网类FishNet,由于渔网不需要移动,因此不需要采用多线程在面板类FishPanel类中添加绘制渔网的代码炮弹消失后变成的渔网,修改Bullet类中代码,如下鱼被击中一定次数后,鱼会死亡,在。
2025-02-27 08:00:00
396
原创 Java游戏示例开发之捕鱼达人(2/3)
对于各种线程的运行情况大家还得多多调试,在不断的实践中感受到创造的乐趣。一条鱼,当鱼游出界面边界后,应该从鱼塘中删除,修改Fish类的的游动方法,添加判断鱼是否游出边。时运行代码,在界面中点击鼠标,就可以打出炮弹了。在捕鱼达人游戏中,最重要的就是鱼了,在游戏中,鱼是可以自己移动的,这一点可以通过。每次出现的是哪种鱼,是随机的,可以通过产生一个随机数来实现,在主类。在游戏的素材中,有三个方向的鱼,每种鱼都有。张图片,在鱼向前移动的同时,切。,由于炮弹也是需要移动的,因此。炮弹碰到鱼后,炮弹要消失,修改。
2025-02-26 20:17:09
297
原创 Java游戏示例开发之捕鱼达人(1/3)
JDK8以上IDEA2020以上游戏演示在捕鱼达人游戏中,炮口是一直朝向鼠标指针位置的,也就是说大炮是可以旋转的,在面板类中绘制大炮,代码如下定义大炮图片// 定义大炮的图片绘制大炮,由于大炮需要旋转,需要采用2D的形式绘制// 画大炮// 获取2D画笔// 炮口的角度// 朝向上方// 设置2D画笔的角度和旋转点这时炮口还是不能移动,需要在主类中(FishFrame),通过获取鼠标的位置,计算出炮口的角度在FishFrame类中定义坐标属性。
2025-02-26 09:48:29
1415
原创 c++vecoter常用概括
vecoter是可以随时添加数值和删除元素的可变长数组,包含在头文件。以上均为日常中使用较多的方面,适合纯新手小白学习参考,更深入的学习请参考#行码棋。
2025-02-25 18:36:45
323
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人