- 博客(28)
- 收藏
- 关注
原创 验证二叉搜索树
这里需要注意如果双亲下标为(i),左右孩子本来应该是(2i)和(2i+1),但是数组的下标是从0开始,而数组下标的这样的写法默认从下标1开始,所以在判断的时候应该对孩子的下标加1,满足要求。引入maxval这个参数,按照 左中右 判断当前节点的值是否大于maxval的值,如果大于则更新maxval(这是必然的,因为节点值通常是合理的数值,肯定大于这个极小值)算法思想:根据二叉搜索树的性质:左边的值小于根的值,右边的值大于根的值。当然了,除了得到递增序列之外,我们还可以在遍历的过程中就判断是否满足递增。
2024-12-31 12:26:36
495
原创 Java期末复习(考点汇总)
String[] stuNames ={"张三","张无忌","张三丰","张岁山"};[]可以放在数组名字前面也可以放在后面String stuName[],String[] stuNames =new stuNames[]{"张三","张无忌","张三丰","张岁山"};这里的[]里必须为空。这是在定义数组的长度。
2024-12-22 20:19:53
232
原创 形状的输出
此时n=5,(E在中间部分),这是一个4x9的矩阵,根据矩阵的大小得到循环的最大次数,(n-1)x(2n-1)。字母出现的位置分别在 主对角线(i==j),中间(j==n-1),次对角线(i+j==2n-2)。注意:因为数组下标我从0开始取值,得到上面的结果,如果下标从1开始,则中间是(j==n),次对角线是(i+j==2n)。具体的分析根据数组的存储进行。矩阵的正中间为 n 个字母中字典序最大的那个,从这个字母开始,沿着西北、正北、东北、正西、正东、西南、正南、东南八个方向各有一条由大写字母组成的直线。
2024-12-01 16:51:14
336
原创 自然语言处理(NLP)技术
2. 句法分析:这是分析句子中单词之间语法关系的过程。例如,通过句法分析可以确定句子中的主语、谓语和宾语。例如,对于句子"狗追逐猫",句法分析可以确定"狗"是主语,"追逐"是谓语,"猫"是宾语。1. 词性标注:这是将文本中的每个单词与其词性进行对应的过程。例如,将句子"我爱吃苹果"中的每个单词与其对应的词性(如代词、动词、名词)进行标注。4. 机器翻译:这是将一种语言翻译成另一种语言的过程。例如,通过对用户提出的问题进行分析并给出相应的答案。5. 情感分析:这是确定文本中蕴含情感的过程。
2024-11-12 09:59:55
246
原创 构造函数与拷贝构造函数
构造函数:初始化新创建的对象拷贝构造函数:复制现有对象(浅拷贝:只复制,啥也不管;深拷贝:处理内存的问题,确保原件和复印件独立)
2024-11-12 09:53:11
323
原创 C++创建对象方式
栈上分配:直接在栈上创建对象,最常见且高效。堆上分配:使用new关键字在堆上动态分配内存,需要手动管理内存。智能指针:使用或管理动态分配的内存,避免内存泄漏。聚合初始化:用于初始化具有公共访问权限的数据成员的类或结构体。列表初始化:从 C++11 开始引入,适用于各种类型的对象。静态对象:在程序启动时创建,在程序结束时销毁。这些方法涵盖了 C++ 中创建对象的主要方式。
2024-11-12 09:06:28
1325
原创 最 “vexing parse”问题
时,优先考虑将其解析为函数声明,而不是对象声明。被解析为声明了一个返回类型为。的函数,而不是创建一个。C++ 编译器在解析。
2024-11-12 08:32:32
333
原创 this 和 other
2. this.:这是错误的语法,因为 `this` 是一个指针,不能直接用点号 `.` 来访问成员。1. this->:用于通过指针访问成员变量和成员函数。3. other:通过对象实例访问成员变量和成员函数。在 C++ 中,this是一个指向当前对象的指针。
2024-11-12 08:19:05
220
原创 面向对象(Java赋源码)
声明一个名为Student的类,此类继承自Person类,添加school属性,声明带三个参数的构造方法,复写talk()方法,在该方法中调用父类的talk()方法,返回姓名、年龄和学校信息;声明一个名为Student的类,此类继承自Person类,添加一个属性school,在子类的构造方法中调用父类中有两个参数的构造方法;实例化一个Student类的对象s,为Student对象s中的school赋值,打印输出姓名:张三,年龄:18,学校:哈佛大学。实现该接口的类必须实现这些方法。
2024-11-11 18:47:25
698
原创 c++库——算法的实现
`std::negate()`, `std::plus()`, `std::minus()`, `std::multiplies()`, `std::divides()`, `std::modulus()`, `std::equal_to()`, `std::not_equal_to()`, 等常见的二元运算符。- 数值操作:`std::min()`, `std::max()`, `std::min_element()`, `std::max_element()`
2024-11-07 14:57:09
693
原创 ASCII码
s[i] - 'a' : 数组下标(例如:b的值为1,a的值为0)(int)s[i] : 字母转换为数值。形成的新串放在t所指的数组中。s所指串中剩余的字符。
2024-10-30 21:36:27
211
原创 求二维数组每列的最小元素
二维数组,可以看作矩阵。求每列的最小元素,要注意在每次对于纵坐标遍历的时候,横坐标是不能动的,但同时,要求每一列的最小元素,也需要完成一次纵坐标的遍历后接着下一个横坐标,也就是对横坐标也要进行遍历。意味着取每一列的第一个元素(横坐标为0)作为最小值,对列(纵坐标)进行遍历。那么,我们大概知道了对纵坐标的循环是内层循环,对横坐标的是外层循环。或者得到每次的最小值,然后把他们每次存到当前下标的数组里。
2024-10-30 20:12:45
146
原创 Linux鸟哥私房菜(持续更新中……)
Linux是一个开源的操作系统内核。Linux 通常与 GNU 工具结合使用,形成完整的操作系统,称为 Linux 发行版,如 Ubuntu、CentOS 和 Debian 等。这些发行版不仅包括内核,还包括各种应用程序和服务。
2024-10-30 15:16:09
388
原创 C++Primer 阅读(持续更新中……)
例如:using Miscrosoft namespace version;#include编码指令 会把源文件和iostream文件一起发送给编译器,其他的头文件类似。预处理器将iostream的文件添加到程序里,在源代码被编译前,替换或转换为文本。在main()函数里,默认return 0,其他的则没有。函数头是接口,这里的main函数是与操作系统相接。int main() //函数头。
2024-10-29 23:19:13
247
原创 移动数组元素
注意的点在于:移动元素的时候, arr[i-m],arr[n-m+i] 是新数组的下标,arr[i],temp[i]是原数组的对应下标(体现在for循环的 i 遍历顺序)。第二种:使用指针,直接改变数组的值。第一种:用动态数组处理。
2024-10-29 22:43:44
107
原创 在c++的天地里迷失——路径
事情不明确,不仅会没有学习效率,同时也损耗了自己的大部分精力,没有真正的脚踏实地,自然也就不会有丰收的喜悦。计算机学科,首先最重要的是:熟悉计算机,计算机的操作系统,计算机的组成,计算机工作的原理。这些大的框架下可以衍生出众多的领域,决定了计算机学生的一些基础认知。而我所在的软件工程专业,主要是在软件的研究上,怎么运行,怎么带动,怎么维护……算法和数据结构开始者编程语言的基础性架构。我需要刷题,了解方方面面,未竟的事业现在也该开始了,其实早就开始了,让我们更加明确一点。蓝桥杯题库(5/天)博客记录。
2024-10-29 16:43:55
164
原创 博客摘录「 C语言 关键字const的作用」2023年11月16日
限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。
2023-11-16 10:46:47
83
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人