- 博客(33)
- 收藏
- 关注
原创 Java的Stirng、StringBuilder、StringJoiner
结果为falseSystem.out.println("请输入一个字符串:");// 输入abc// 代码中再定义一个字符串 abc// 用 == 比较// false// 创建一个对象,并指定间隔符号。开始符号、前缀符号// 添加元素// 打印。
2024-12-05 20:15:17
624
原创 动态规划算法(dfs -> 记忆化搜索 -> 递推(dp))
记忆化搜索 = 暴力 dfs + 记录答案递推的公式 = dfs 向下递归的公式(状态转移方程)DP核心:找到状态转移方程递推数组的初始值 = 递归的边界(已知最小子问题的答案)
2024-12-04 10:30:11
309
原创 Java的方法、基本和引用数据类型
方法的返回值类型是 void,表示该方法没有返回值可以省略 return 语句如果要编写 return,后面不能跟具体的数据。
2024-11-22 22:19:27
556
原创 图(Graph)的概念和遍历
图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成通常表示为:G(V,E),其中,G(Graph)表示一个图,V(Vertex)是图G中顶点的集合,E(Edg)是图G中边的集合。
2024-11-18 20:09:06
1159
原创 哈夫曼树(HuffmanTree)
哈夫曼树:带权路径长度(WPL)最短的二叉树(最优二叉树)“带权路径长度最短”是在“度相同” 的树中比较而得的结果,因此有最优二叉树、最优三叉树等等满二叉树不一定是哈夫曼树哈夫曼树中权越大的叶子离根越近具有相同带权结点的哈夫曼树不唯一。
2024-11-09 12:28:28
1441
原创 数据结构-串
找到不匹配处,然后寻找公共前后缀公共前后缀1公共前后缀2发现有两个公共前后缀,取最长的公共前后缀2移动后,又找到不匹配处,然后找最长公共前后缀最后匹配成功在1号位时不匹配时,模式串1号位与主串下一位比较其余位,如果最长公共前后缀长度为n,我们得到模式串n+1号位与主串当前位进行比较。
2024-10-27 09:37:30
965
原创 数据结构-队列
ADT Queue{数据对象:D = {aᵢ | aᵢ∈ElemSet, i = 1,2,...,n,n >= 0}数据关系:R = {<aᵢ₋₁,aᵢ> | aᵢ₋₁,aᵢ∈D,i = 2,...,n} // 约定其中a₁端为队列头,aₙ端为队列尾基本操作:操作结果:构造一个空队列Q条件:队列Q已存在操作结果:销毁Q条件:队列Q已存在操作结果:将Q清空条件:Q已存在操作结果:若队列Q为空,返回TRUE;否则返回FALSE条件:Q已存在且非空操作结果:用e返回Q的队头元素。
2024-10-26 16:05:11
792
原创 数据结构-栈
ADT Stack{数据对象:数据关系:约定 aₙ 端为栈顶, a₁端 为栈底基本操作:初始化、进栈、出栈、取栈顶元素等}ADT Stack// 栈底指针// 栈顶指针// 栈可用最大容量}SqStack/*StackNode:栈的结点类型*LinkStack:指向这个结点的指针类型*/// 数据域,存放元素// 指针域,指向下一元素,类型仍为struct链栈中的指针的方向是反过来的指针域中存放的是前驱元素链表的头指针就是栈顶不需要头结点基本不存在栈满的情况。
2024-10-25 08:42:45
1033
原创 单例模式(自动加载)
单例模式是编程中的一种设计思想,是为了解决某些编程语言中没有全局变量概念而产生的这对于实现某种模块非常好用比如玩家信息,有时候,游戏中的很多地方都需要获取玩家信息,使用单例模式实现全局变量可以很方便地让程序中的所有代码都可以访问到右键「文件系统」创建一个「场景资产」创建好场景后,布置场景在「自动加载」页面添加这个场景作为「单例」这个「场景」被「实例化」到了「节点树」根节点中。
2024-10-18 21:57:54
499
1
原创 Godot中的信号
比如Button节点,我们在场景内创建一个Button节点,并调整它的大小、位置。Godot内置的一些节点通过信号处理事件,我们需要监听信号执行处理。在节点属性浏览器中,修改text属性会更改「按钮」显示的文本。我们使用signal关键字定义一个事件。使用emit方法触发信号。
2024-10-18 19:54:42
1383
原创 访问器与Lambda函数
访问器定义自定义赋值和访问流程的方式 如果要定义访问器,需要在变量初始化语句后面加上冒号,随后换行在后面加上get/set函数Getter访问器Getter访问器负责定义对这个变量的取值操作,就是当我们要获取这个变量的内容的时候就会调用 由于对变量取值不会要求参数,所以我们定义Getter访问器时后面不加括号,其次Getter访问器必须有一个返回值 返回值的类型,根据变量的类型决定 我们这里调用print函数将user_name打印,需要对user_name里面存储的值进行
2024-10-18 18:07:02
282
原创 GDScript
GDScript,即GodotScript,是Godot官方提供在Godot内置的编程语言GDS语法类似编程语言中的Python。
2024-10-17 16:39:13
968
1
原创 编辑器、节点树、基础设置
即,Godot在开始游戏后,先会创建一个场景树,随后场景树会创建一个窗口根节点root,最后将我们制作的场景加入到root里。在节点列表中位于Node2D分支下面的一切节点都是这样的,它们继承自Node2D,所以拥有了Node2D的一切属性。SceneTree管理游戏当前的场景,我们编辑的场景的根节点在游戏运行时都是由SceneTree管理。这张图中,Sprite3节点是Sprite4节点的父节点,而Node2D是整个场景的根节点。我们现在看到的游戏窗口,就是root节点,它是一个Window类型的节点。
2024-10-17 07:17:30
1315
原创 顺序表和链表的比较,线性表的应用-合并
在main函数中return 1;表示程序以非零值退出,这通常被用来表示程序执行失败或出现了错误return 0;通常用来表示程序成功执行并退出在程序的退出状态中,使用简单的整数1或0来表示成功或失败是足够且清晰的在C语言中,数组的索引是从0开始的。这意味着,如果有一个数组arr,那么arr[0]是第一个元素,arr[1]是第二个元素,以此类推。因此,数组的最后一个元素的索引是这里的LA.elem是指向数组第一个元素的指针(即索引为0的元素)LA.length是数组中元素的总数因此,
2024-10-14 22:55:57
693
原创 双向循环链表、链表与顺序表的比较
在单链表中的每个结点中,再设置一个指向其前驱结点的指针域/*线性表的双向链表存储结构*//*直接前驱指针*//*直接后继指针*/
2024-10-12 23:36:17
549
原创 循环链表(单循环链表)
将,就使整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表(circular linked list)
2024-10-05 23:56:23
606
原创 线性表的链式存储结构-单链表
例如,存储学生学号、姓名、成绩的单链表结点类型定义:但是,为了统一链表的操作L是一个指向LinkList类型的指针,也就是指向指针的指针。在这个函数中,我们想要分配内存给链表的头结点,并且让头指针L指向这个新分配的内存地址。因此,我们需要使用*L来修改L指针指向的地址*L解引用L指针,允许你修改它指向的地址L直接指向一个指针,没有解引用,所以你不能通过L来修改指针指向的地址如果函数声明是,那么L是一个普通的指针,而不是指向指针的指针在这种情况下,无法修改原始头指针的地址,因为L。
2024-10-04 20:32:24
856
原创 【大话数据结构】线性表
线性表(List):零个或多个数据元素的有限序列,元素间具有线性关系,即前驱后继关系线性表元素的个数n(n >= 0)定义为线性表的长度;当 n=0 时,称为空表aᵢ 是第 i 个数据元素,称 i 为数据元素 aᵢ 在线性表中的位序同一线性表中的元素必定具有相同特性,数据元素间的关系是线性关系静态分配的数组在什么位置,占多大的空间已经定了。数组的名字当中,存放的是数组当中的首元素data[0],放的是第1个元素的地址,也就是这个数组的首地址(基地址)
2024-10-03 16:35:54
770
原创 【大话数据结构】基本概念、数据结构、数据类型
指一个数学模型及定义在该模型上的一组操作ADT 抽象数据类型名{Data数据元素之间逻辑关系的定义Operation操作1初始条件操作结果描述操作2……操作n……}ADT 抽象数据类型名赋值参数:只为操作提供输入值如:求圆的面积area(r)/*area - 操作的名字r - 参数,圆的半径*/求乘方power(x,y)/*求 x 的 y 次方*/ADT Circle { /*ADT开头,定义的抽象数据类型叫作Circle*/
2024-10-02 17:28:13
942
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人