自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树相关题目

3.确定单层递归的逻辑:先求他的左子树深度,再求右子树的深度,最后取左右深度最大的数值再+1(+1是因为算上当前中间节点)就是目前节点为根节点的树的深度。3.确定单层递归的逻辑:先求它的左子树的节点数量,在求右子树的节点数量,最后取总和再加一(加一是因为算上当前的中间节点)就是目前节点为根节点的节点数量。那么使用后序遍历,其实求的是根节点到叶子节点的最小距离,就是求高度的过程,不过这个最小距离也是同样的最小深度。而根节点的高度就是二叉树的最大深度,所以我们用后序遍历求根节点的高度来求二叉树最大深度。

2024-04-10 17:38:49 1706

原创 数据结构——二叉树

单层递归的逻辑就是按照中左右的顺序来处理的,这样二叉树的前序遍历,基本就写完了,再看一下完整代码:为什么可以用迭代法(非递归的方法)来实现二叉树的前后中序遍历呢?我们在栈与队列:匹配问题都是栈的强项中提到了,,然后递归返回的时候,从栈顶弹出上一次递归的各项参数,所以这就是递归为什么可以返回上一层位置的原因此时大家应该知道我们用栈也可以实现二叉树的前后中序遍历了前序遍历是根左右,每次先处理根节点,那么现将根节点放入栈中,然后将右孩子加入栈,再加入左孩子;代码中的空节点不入栈。

2024-04-09 14:47:04 1519

原创 动态规划理论基础

动态规划,英文:Dynamic Programming,简称DP,是一种将复杂问题分解成很多子问题,并将子问题的求解结果存储起来避免重复求解的一种算法。动态规划一般用来解决最优问题。而解决问题的过程,需要经历多个决策阶段。每个决策阶段都对应着一组状态。最后通过一组决策序列(动态转移方程),产生最终期望的最优解。最优子结构,无后效性和子问题重叠。

2023-11-06 19:59:03 75

原创 C语言:初始结构体

函数传参的时候,参数是需要压栈的。如果传递的一个结构体对象的时候结构体过大,参数压栈的系统开销比较大,所以会导致性能下降。数据结构相关知识:线性数据结构,顺序表,链表,栈和队列。树形存储结构:二叉树—图。结构是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量。等到数据结构部分再进行详细说明(或者自行查阅函数栈桢的创建)结构的成员可以是标量,数组,指针,甚至是其他结构体。结论:结构体传参的时候,要传结构体的地址。结构体变量的定义和初始化。

2023-11-06 19:54:54 63

原创 static关键字的使用

不使用static修饰的成员变量:非静态成员变量、实例变量。在类的非静态方法中,可以调用当前类中的静态结构(属性、方法)或非静态结构(属性、方法)使用static修饰的成员变量、静态成员变量、类变量。局部变量:方法内、方法形参、构造器内、构造器形参、代码块内等。成员变量:按照是否使用static修饰进行分类。方式1:按照数据类型:基本数据类型、引用数据类型。什么时候需要讲方法声明为静态的?方式2:按照类中声明的位置。

2023-10-31 19:41:01 52

原创 面向对象复习

【代码】面向对象复习。

2023-10-30 17:35:35 36

原创 二分查找相关练习

力扣34给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。情况一:target 在数组范围的右边或者左边,例如数组{3, 4, 5},target为2或者数组{3, 4, 5},target为6,此时应该返回{-1, -1}情况二:target 在数组范围中,且数组中不存在target,例如数组{3,6,7},target为5,此时应该返回{-1, -1}

2023-10-18 20:24:07 29

原创 this的使用、继承性、方法的重写

Java中声明的类,如果没有显式的声明其父类时,则默认的父类:java.lang.object类A:父类,superClass、超类、基类类B:子类,subClass、派生类。

2023-10-17 17:43:15 69

原创 面向对象复习

场景1:私有化(private)类的属性,提供公共(public)的get和set方法,对此顺哥进行获取或修改。>场景3:单例模式找那个构造器private的了,避免在类的外部创建实例。Java规定了4种权限修饰,分别是:private、缺省、protected、public。步骤2:创建类的对象。步骤3:通过对象、调用其内部声明的属性或者方法,完成相关的功能。>场景2:将类中不需要对外暴露的方法,设置为private。步骤1:创建类,并设计类的内部成员(属性,方法)虚拟机栈,堆,方法区。

2023-10-15 13:53:59 35 1

原创 数据结构链表

GetELem(L,i):按位查找操作。获取表L中第i个位置的元素的值//按位查找,返回第i个元素(带头结点)if(i

2023-10-06 11:39:32 67 1

原创 数据结构线性表和顺序表

顺序表的查找%5Cgeq。

2023-09-25 17:02:24 38 1

原创 数据结构绪论和复杂度

数据:数据是信息的载体,是描述客观事物属性的数,字符及多有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料,二进制0和1;数据元素—描述一个个体数据元素、数据项:数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可由若干个数据项组成,数据项是构成数据元素的不可分割的最小单位。

2023-09-25 15:40:00 52 1

原创 C++文件操作——文本文件

例如:用二进制方式写文件 ios::binary||ios::out。:程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放。—文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂他们。c++中对文件操作需要包含头文件:(文件流)ofs.open("文件路径",打开方式);注意:文件打开方式可以配合使用,利用 | 操作符。—文件以文本的ASCII码形式存储在计算机中。ifs.open("文件路径",打开方式);ofs

2023-04-12 19:56:55 199

原创 数据结构和算法教程

1.1数据结构的研究内容通常,用计算机解决一个问题的步骤:具体问题抽象为数学模型(实质):分析问题;提取操作对象,找出操作对象之间的关系;用数学语言描述-》称为数据结构。设计算法。编程,调试,运行。早期,计算机主要用于数值计算。随着计算机应用领域的扩展,计算机被越来越多地用于非数值计算。

2022-11-14 20:44:53 1440

原创 C语言:实用调试技巧

调试(英语:debugging/debug)又称除错,是发现和减少计算机程序或者电子仪器设备中程序的一个错误的过程调试的基本步骤发现程序错误的存在(程序员,软件测试人员)以隔离,消除等方式对错误进行定位(逐语句进行查询,隔离,消除)确定错误产生的原因提出纠正错误的解决方法对程序错误予以改正,重新测试

2022-11-08 19:36:22 749

原创 C语言:指针——初阶指针

1.指针是什么 在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址。它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能够找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为"指针"。意思是通过它能找打以它为地址的内存单元

2022-11-05 11:43:57 223

原创 C语言:《操作符详解》

操作符分类: 算术操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符,逻辑操作符,条件操作符,逗号操作符,下标引用。函数调用和结构成员算术操作符:+ - * /1.除了%操作符之外,其他的几个操作符可以作用于整数和浮点数2.对于/操作符如果必须为整数,执行整数除法,而只要有浮点数执行的就是浮点数除法3.%操作符的两个操作数必须为整数。返回的是整数之后的余数

2022-11-01 21:24:25 65

原创 C语言实现三子棋

三子棋游戏test.c //测试三子棋游戏game.h //头文件game.c //游戏本体

2022-10-30 20:22:20 307

原创 C语言:数组

一维数组的创建和初始化数组的创建数组是一组相同类型元素的集合。数组的创建方式type_t arr_name {const_n}//type_t是指数组的元素类型//const_n是一个常量表达式,用来指定数组大小

2022-10-29 11:26:49 122 1

原创 数据结构:栈和队列

栈及其基本运算栈的定义栈的相关概念逻辑结构 :与同线性表相同,仍为一对一的关系存储结构:用顺序栈或链栈存储均可,但以顺序栈更常见运算规则:只能在栈顶运算,且访问结点时依照 (LIFO)的原则实现方式,关键是遍写入栈和出栈的函数,具体实现依顺序栈或链栈的不同而不同

2022-10-26 22:33:37 777

原创 C语言:函数和递归

函数和递归 1.什么是递归? 程序调用自身的编程技巧称为递归(recursion)。递归作为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,他通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量程序就可以秒输出解题过程所需要的多次重复操作,大大的减少了程序的代码量。递归的主要思考方式在于:把大事化小

2022-10-26 22:22:28 404

原创 C语言:函数

函数是什么?数学中我们经常见到函数概念,但是你了解C语言中的函数吗?维基百科中对函数的定义:子程序在计算机科学中,子程序是一个大型程序中的某部分代码,由一个或多个语句块组成,他负责完成某项特定任务,而且相较于其他代码,具备相对的独立性一般会有输入参数病有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库

2022-10-25 21:08:39 191

原创 C语言:分支与循环练习题

C语言分支循环练习题从大到小输出三个数打印3的倍数的数 写一个代码打印1--100之间所有3的倍数的数字

2022-10-24 22:29:55 617

原创 C语言:分支与循环《二》

接着分支与循环《一》for循环for循环的语法结构for(表达式1;表达式2;表达式3) 循环语句;表达式1:表达式1为初始化部分,。用于初始化变量的。表达式2:表达式2为条件判断语句,用于判断循环时候终止。表达式3:表达式3为调整部分,用于循环条件的调整

2022-10-24 08:10:52 269

原创 C语言:分支和循环

C语言是一门结构化的程序设计语言1.顺序结构2.选择结构3.循环结构分支语句(选择结构)和循环语句分支语句 ifswitch循环语句whilefordo while

2022-10-22 22:01:10 183

原创 初识C语言《二》

操作符:简单介绍为主,后面用的话再记算术操作符:+ - * / %移位操作符:位操作符:& ^ |赋值操作符: = += -= /= &= ^= |= >>=

2022-10-21 21:17:36 187

原创 初识C语言《一》

什么是C语言 什么是C语言 计算机语言;计算机语言是什么?

2022-10-20 18:16:01 533 1

空空如也

空空如也

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

TA关注的人

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