自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构与算法-二叉树

(3)对于任何的非空二叉树,n0表示叶节点的个数,n2表示度为2的结点个数,那么两者1满足关系n0 = n2 + 1。(1)遇到一个节点,就把他压栈,并去遍历他的左子树(进入左子树的最深层,直到左子树为空)(3)遍历二叉树(注意:遍历有多种方式如:先序,中序,后续,层次遍历等等);(8)子孙结点:一结点的子树中所有结点都是这一结点的子孙。(2)深度为k的二叉树有最大结点总数为:2的k次方-1。(5)兄弟节点:具有同一父结点的结点彼此是兄弟节点;(4)父结点:有子树的结点是其子树根节点的父节点;

2025-04-24 14:13:57 257

原创 java基础:日期类和日历类

而包装类的用双等号比较的话,可能会超出缓存区范围,那么就会重新new出数据,那么可能与真实情况不相同,所以包装类用equals好一点;要进行相等判断,基本数据类型一般用双等号,而字符串比较用equals好一点,因为比较内存地址没有意义,我们一般想要比较的应该是内容;可能会出现异常的代码,如果出现异常,那么JVM会将异常进行封装,形成一个具体的异常类,然后将这个异常抛出;(1)工具类不应该创建对象才能使用,也就意味着,可以直接使用类中的属性和方法,一般都声明为静态的;//将日期传进来,让日历指向日期;

2025-03-30 10:13:54 354

原创 java基础:常见类和对象

if (j >= (row - 1) - i && j <= (row - 1) + i){ //从中间向两侧顺延同时满。9.concat方法:是String的一个实例方法,它用于将指定的字符串连接到当前字符串的末尾,并返回一个新的字符串对象,原字符串对象不会被改变;//创建一个二维数组;9.字符串的拼接:可以用+号进行操作,但必须保证加号的一端是字符串,只要一个对象是字符串,那默认把另一个对象转换为字符串进行拼接;

2025-03-29 20:17:42 608

原创 Java基础——面向对象

首先定义了USB接口的规则,然后分别让supply和receive分别继承该规则,然后让计算机和台灯分别满足对应规则,计算机中定义两个usb接口,定义能源提供的方法;创建一个me对象,然后调用sayhello方法,传入一个Zhangsan类的对象,他是改写的抽象类Person的所以将对象传进去,打印hello+name;类的对象需要遵循接口,在Java中,这个遵循,称之为实现(implements),类需要实现接口,而且可以实现多个接口;System.out.println("使用飞行器飞翔");

2025-03-28 21:38:14 385

原创 java基础知识和语法

当把子类中的sum类型去掉后,方法具体的实现在子类中没有,那么去父类中寻找,父类的sum实现时,默认使用的是this属性,也就是父类中的属性,所以结果为20;ddd是CCC类型,所以应该看CCC中有没有sum方法,有,那么能使用,但具体的实现过程是依靠DDD中的sum方法,所以输出结果为40;这串代码中,首先运行sum,在子类中没办法实现,最终要落回父类,再执行geti方法,这个需要子类中的方法进行实现,所以最终打印30;上面的p1和p2都是person类型,所以可以引用person的功能;

2025-03-28 18:49:49 364

原创 java基础(7天)

键盘输入->产生源代码(.java)->编译器(javac)->字节码(.class)->JVM(java)->OS(计算机系统)->中心处理器(CPU)->OS->console。当CPU中运行代码println时,会向内存中读取数据。18.对于一个类中的属性,如果没有初始化,则会在构造对象时候默认初始化,而默认初始化的值取决于属性的类型;小范围的值可以转换为大范围的值:(大范围的值不能转换为小范围的值,但可以用括号强制转换);特殊的对象:空对象(null),没有引用的对象,称之为空对象,关键字对象。

2025-03-27 15:18:35 502

原创 python-列表的操作以及切片

a = [1, 2.1, 'hello', Ture, [1, 2, 3], (1, 2, 3), print] 啥都能放。4.列表元素的添加 方法有这几种:+ += append() extend() insert()a = a + [10] //只能加列表,不能加字符串 __add__ 魔法方法。id(a) //地址不变,对原来列表添加10 所以一般+=优于+b = list('hello') //字符串转换成列表。a[-1]('hello') //打印hello。

2025-03-18 22:24:39 465

原创 python-数据类型字符串和列表

print('大家好,我的名字是{n},我今年{a}岁了,身高{h}cm'.format(n = name, a = age, h = height))print(f'大家好,我的名字是{name.title()},我今年{age+10}岁了,身高{height}cm') #title方法,变大写。print('大家好,我的名字是{1},我今年{0}岁了,身高{2}cm'.format(name, age, height))print('大家好,我的名字是,我今年岁了,身高cm')

2025-03-16 21:06:39 311

原创 数据结构---堆栈和列

这是一个不带头结点的队列,实际上,front指向的头结点一般为辅助结点(不是空节点),它不存储实际数据,只是为了方便后续插入、删除操作;注意:第一个赋值语句,是让firstcell指向s->next指向的位置,所以firstcell指向的是要删除的结点;队列的顺序存储结构通常由一个一维数组和一个记录队列头元素的变量front以及一个记录队列尾元素位置的变量rear组成;注意:其中的(ptrq->rear+1) % maxsize代表的是在顺环中,rear元素对应的下一个元素的位置下标;

2025-03-15 16:26:36 329

原创 存入一个学生成绩表格,并打印出平均成绩,判断出最好成绩

void Avone(struct stud arr[], int a) //用结构体指针接收。

2025-03-12 23:18:30 339

原创 数据结构-如何实现两个多项式的加法和乘法

1.求解思路2.多项式表示链式表:3.主程序框架:4.读多项式:5.将两个多项式相加:6.相乘。

2025-03-08 15:23:35 171

原创 广义表和多重链表

补充:共用体(union)基本概念:与结构体(struct)不同,结构体的每个成员都有自己独立的内存空间,而共用体的所有成员共享同一块内存空间。这意味着在同一时间,共用体只能存储一个成员的值,修改一个成员的值会覆盖其他成员的值。赋值操作见上图;同一时间只有一个数据有效;1.广义表(1)广义表是线性表的推广(2)对于线性表来说,n个元素都是基本的单元素(3)广义表中,这些元素不仅可以是单元素也可以是另一个广义表。int tag;//用来标记结点中是单元数还是广义表。

2025-03-08 15:14:02 459

原创 数据结构链式表

/令s中的传递指针指向原第i个元素的传递传递指针。//非删除起始位置,先找到i-1的位置。else if(p->next == NULL) //i-1的位置存在,但i位置不存在。//不在起始位置,先找到i-1的位置。list delete(int i, list ptrl) //删除对象的序号传入。//修改p(第i-1个结点)的传递指针。//修改起始位置指针。if(p == NULL) //如果i-1位置不存在,那i的位置一定不存在。if(i == 1) //考虑放在起始位置的情况。

2025-03-08 11:13:32 900

原创 数据结构——多项式问题(顺序存储结构or链式存储结构)

void Insert(ElementType X, int i, List Ptrl) //实现插入功能;int Find(ELementType X, List Ptrl) //实现查找功能;if(Ptrl->Last == MAXSIZE - 1) //达到最大内存,无法插入。

2025-03-07 22:45:17 750

原创 c语言操作符

首先,我们写的程序.c文件是源程序,它经过编译时,执行了sizeof指令,然后表达式就消失了,之后再进行链接,成为可执行程序.exe文件,这时进行执行的时候才进行表达式的计算。表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度一般就是int的字节长度,同时也是CPU的通用寄存器的长度;//此为下标引用操作符,他的操作数有两个,一个为5,一个为arr;因此,即使两个char类型的相加,在CPU执行时实际上也是要先转换为CPU内整型操作符的标准长度;

2025-03-07 10:18:08 969

原创 python基础

a的内存地址会改变,原来的那个内存会继续存10,但一段时间后会启动内存清除机制,将原来内存中的10清除;(5)不建议使用函数命名,这样虽然可以命名成功,但会使函数失去作用;这表示输出1-6的数字,数字之间用‘,’隔开,末尾加空字符;:非零数字、非空序列、非空字典、非空集合等会被转换为。print(bool(10)),返回结果为ture。print(hex(10)) 十六进制。m = input("请输入m的值:")n = input("请输入n的值:")print(bin(10)) 二进制。

2025-03-04 20:03:48 225

原创 c语言数组和结构体

以上输出函数的两种形式的结果都是对数组的第三个元素进行打印,原因是无论哪种位操作符使用,都是将其转化成*(arr+2)来实现结果的,根据交换律,可以使用2【arr】这种形式。允许指向数组元素的指针与指向数组最后一个元素之后的位置的指针进行比较,但不允许与指向第一个数组元素之前的内存位置的指针进行比较;10.写两个不同类型的函数来打印s的内容,并比较传值和传值的优缺点:(注意代码规范,先定义结构体,再定义使用结构体的函数);这里的p就是一个野指针,因为p是一个局部变量,一个未初始化的局部变量,默认为随机值;

2025-03-02 17:34:50 697

原创 c语言数组和时间函数

/定义start和stop两个变量,变量类型是 clock_t,这个变量的单位是时钟打 //点数.int arr2[2][4] = {1, 2, 3, 4, 5, 6, 7, 8};//不完全,剩余空间自动填充0;

2025-02-28 22:03:18 563

原创 c语言函数(2)

但是不足很明显,执行的无用操作太多,计算时间太长。设计函数时,尽量做到谁申请的资源就由谁来释放。6.函数设计应该追求高内聚,低耦合;

2025-02-26 13:11:20 396

原创 python基础

3.IDLE作为Python自带的代码编辑工具,使用起来非常简单,输入一行执行一行。1.和c语言不同,Python是一种解释器语言,代码运行经历以下阶段。2.Python作为解释性语言,具有的优点:开源性;5.注释单行注释用符号#,多行注释用“““ ”””;(2)不需要声明变量类型,解释器会自动识别所属类型;源代码 ——> 解释器 ——>结果输出。而编译性语言:运行速度快;(1)多行代码写在一行用;(3)print自带换行效果。(1)变量需要先定义才能使用;(2)换行符 \n。

2025-02-25 22:06:07 74

原创 c语言函数递归(1)

一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可以描述出解题过程所需要的多次重复运算,大大减少了程序的代码量。就如上文,如果递归层次太深,就有可能发生栈溢出;因为每次递归调用函数,函数都会创建一个函数形参,次数多了栈区内存不足,就会栈溢出。总结:写递归代码时,不能写死循环,要有跳出条件,每次递归逼近跳出条件。递归层次不能太深,不然容易发生栈溢出。4.模拟实现strlen函数。

2025-02-25 17:13:00 737

原创 c语言函数

/定义函数返回值需是整型;但是我测试不声明也没事,不 清楚up主为啥讲这个,懂的评论;原因是:执行完最深层的printf指令后,该指令的返回值为输出的数字个数;3.利用函数寻找数组中的一个数,找到了返回下标,找不到打印“找不到”。1.一个函数如果不指定返回类型,那么默认返回类型为int;//当要使用后面定义的函数时,需要事先声明;//计算整型数组长度,用这个表达式;//需是中间的下标减1;//必须传入数组长度;

2025-02-25 16:27:17 687

原创 c语言:“函数”

/将arr2中的字符串复制到arr1中去;需要引用头文件 string.h。注意,memset使用方式为下图,第一个逗号放所要设置的字符数组,第二个是修改为的东西,第三个参数是修改的数量;2中的函数不能使用传值调用解决问题,因为需要建立形参和实参的联系,并且改变实参的值;上面两种函数调用有所不同,一种为传值调用,一种为传址调用;它所做的是把字符串的前几个字符改为所需要的东西。2.memset函数使用:(翻译是内存设置)

2025-02-23 10:52:36 303

原创 c语言经典题目

for(j = 2;j++) //做改进,可以让j从根号i开始;if(strcmp(input, "我是猪") == 0) //需要引用string.h;//需要引用stdlib.h;//用于一次迅速跳出多层循环,但只能在一个函数内使用;printf("电脑将在一分钟内关机,输入\"我是猪\"停止\n");printf("最大公约数=%d\n", min);

2025-02-22 20:27:17 400

原创 循环经典题目

/是让程序休息1000毫秒;printf("密码错误,请重新输入\n");printf("密码正确,登陆成功\n");printf("输错三次,退出程序\n");printf("请输入密码\n");4.模拟输入密码,输入三次错误退出程序;

2025-02-22 18:18:10 373

原创 c语言分支语句与循环语句

continue的作用是跳过本次循环后面的语句,直接去判断部分,看是否能进行下一次循环;(1).不可在for 循环体内修改循环变量,防止 for 循环失去控制。(2).建议for语句的循环控制变量的取值采用“前闭后开区间“写法。特点:循环至少执行一次,使用场景有限,所以不是经常使用。在while循环中,break用于永久的终止循环;printf("星期一\n");结构:int ch = getchar();ps:判断条件如果被省略,则恒为真;while(判断条件);while(循环条件)

2025-02-17 20:51:11 356

原创 c语言基础

ps:全局变量,在其他源文件内部可以使用,是因为具有外部连接属性,被static修饰之后,就变成了内部链接属性,其它源文件就不能连接到这个静态的全局变量了。修饰的函数具有内部链接属性,这意味着该函数只能在定义它的源文件中被调用,不能被其他源文件通过链接的方式调用。(2)static修饰全局变量,使得这个全局变量只能在自己源文件内部(.c)使用,其他源文件不能使用;是一个非常有用的关键字,它用于为已有的数据类型定义一个新的名字,也就是给类型起别名。(3)static修饰函数,它会改变函数的链接属性。

2025-02-17 19:22:08 340

原创 c语言入门

11111111111111111111111111111111 为补码,翻译成原码为100000000000000000000001,二进制形式对应数字为-1.(称为不完全初始化,没规定的默认为0)。(2)移位操作符:<< >> (这里的“位”指的是二进制位,移位完自动补零)需要a和b同时等于c,d才为真;a|| b = c, 那么d。任意a或b等于c, d就为真。auto : 局部变量是自动创建,自动销毁,所以称为自动变量;所以,最后d取的值是从左往右计算,最后运算出的c的结果。

2025-02-12 19:45:37 258

原创 c语言基础

结果为abc est。字符串的末尾默认有终止字符\0,当监视时可以看到,但用strlen计算时不算入在内。如果“X”“#”是这些八进制、十六进制数字转化为十进制数字所代表的ASCLL码值。\ddd 其中“ddd”表示八进制的数字。(其中数字不能存在“8”“9”)printf("%c\n",'\x123');\xdd 其中“dd”表示十六进制数字。字符串用双引号注释,%s标识。字符用单引号注释,%c标识;

2025-02-12 11:55:15 122

原创 c语言基础

局部变量在一个大括号内有生命,全局变量在整个工程中有生命。局部变量只能作用于局部,全局变量作用于整个工程。此处的a则为常变量,本质为变量,但是不可改变。(1)字面常量:3.14 5。

2025-02-11 17:52:50 187

原创 c语言入门

sizeof函数是表示一个量在存储器中的长度,单位是字节(byte)。bit,中文是比特位,代表二进制中的一个数字。这串代码意思是把a以整数的形式打印出来。在主函数大括号之外的属于全局变量,之内的属于局部变量。在全局变量和局部变量名字冲突时,局部变量优先。scanf的意思为输入,让用户输入a,b的值。%lf 代表双精度浮点数double。%f 代表浮点数float。3.全局变量和局部变量。即打印出字符型的长度。

2025-02-10 19:55:13 177

原创 c语言入门

一个项目可以有多个.c文件,但是多个.c文件只能有一个主函数。因为许多函数存储在头文件中,所以要引用出来才能使用。程序运行从主体函数第一行开始运行;

2025-02-10 11:10:18 82

空空如也

空空如也

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

TA关注的人

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