- 博客(33)
- 收藏
- 关注
原创 数据结构之栈(3)
本文介绍了栈的基本概念、特点及实现方式。栈是一种后进先出(LIFO)的线性表,只能在表尾(栈顶)进行插入和删除操作。文章详细讲解了栈的顺序结构实现(静态数组)和链式结构实现(动态链表),包括初始化、入栈、出栈、判空、获取栈顶元素和遍历等基本操作。通过C语言代码示例,展示了两种实现方式的具体操作过程,包括静态数组的固定大小实现和动态链表的头插法实现。栈作为重要的数据结构,在程序设计中有着广泛应用,理解其实现原理对编程学习至关重要。
2025-11-28 23:50:39
161
原创 数据结构之线性表中的链表--双向链表(2)
本文介绍了双向链表的操作实现,包括链表创建、初始化、遍历和各类插入删除方法。双向链表每个结点包含数据域、前驱指针和后继指针。文章详细说明了头插法、尾插法以及在指定位置插入元素的具体实现步骤,同时给出了删除结点的操作流程。代码示例展示了如何初始化链表,使用头插法插入元素(40,30,20,10),尾插法追加元素(50,60,70,80),在第三位插入89,以及删除第五位元素的操作过程。
2025-11-26 00:05:34
138
原创 数据结构之线性表中的链表--单链表&循环链表(2)
摘要:本文介绍了链表与线性表的区别及单链表的基本操作。链表通过指针域建立元素间的逻辑关系,不要求物理存储连续,使得插入删除操作更高效。详细阐述了单链表的7种基本操作实现方法:初始化、求长度、遍历、插入(头插法/尾插法/指定位置)、删除、查找和清空,并提供了完整的C语言实现代码示例。通过对比线性表的顺序存储结构,突出了链表在动态内存管理方面的优势。
2025-11-21 23:55:10
277
原创 数据结构之线性表中的顺序表(1)
摘要:本文系统介绍了线性表的基本概念、特点及两种存储实现方式。线性表是由相同数据类型元素构成的有限序列,具有唯一首尾节点和"一对一"的线性关系。文章详细阐述了顺序存储结构下的7种基本操作实现,包括初始化、插入(尾插/头插/指定位置)、删除、查找等,并提供了完整的C语言代码示例。同时对比了静态数组分配和动态内存分配两种存储模式,重点说明了动态分配的实现方法及注意事项。通过具体案例展示了线性表在实际编程中的应用。
2025-11-21 16:27:50
1127
原创 C语言基础之动态内存分配
摘要:本文介绍了C语言动态内存分配的相关函数和使用细节。主要函数包括:malloc(分配内存)、calloc(分配并初始化内存)、realloc(调整内存大小)和free(释放内存)。重点强调了10个使用细节:内存单位是字节;返回void指针需类型转换;需手动记录空间大小;必须释放避免内存泄漏;大空间会使用虚拟内存;未初始化需先赋值;释放后数据可能残留;calloc会自动初始化;realloc可能改变地址但保留数据;realloc会处理原有空间释放。文中还提供了多个示例代码,展示了这些函数的具体使用方法。最
2025-11-04 13:25:24
312
原创 C语言基础之结构体
摘要:本文介绍了C语言中结构体和共用体的基本概念与使用。结构体是自定义数据类型,由多个成员组成,支持嵌套定义和内存对齐。通过typedef可为其创建别名,结构体可以作为函数参数传递值或地址。共用体(联合体)则是共享内存空间的数据类型,其大小为最大成员长度,赋值时会覆盖原有数据。文章对比了两者的区别:结构体各成员独立存储,共用体共享存储空间。示例代码展示了结构体定义、赋值、数组存储、函数传参等操作,以及共用体的内存共享特性。最后说明了内存对齐规则对结构体和共用体大小的影响。
2025-11-03 23:57:28
143
原创 C语言基础之函数指针4
摘要:函数指针的格式为"返回值类型(*指针名)(形参列表)",用于动态调用函数。示例中展示了如何定义和使用函数指针调用method1和method2函数。另外,文章还演示了通过函数指针数组实现四则运算的功能:将加减乘除四个函数存入数组,用户输入两个数字和运算符编号(1-4),程序调用对应函数进行运算并输出结果。
2025-11-03 21:17:43
210
原创 C语言基础之指针3
本文介绍了C语言中指针的核心概念与应用。主要内容包括:1.二级指针的定义与使用,通过示例展示如何通过二级指针修改一级指针的地址;2.数组指针的操作,包括数组遍历、指针运算和数组退化情况;3.二维数组的定义与遍历方法,包括常规方式和指针方式;4.指针数组的概念及使用场景。文中通过多个代码示例详细演示了指针与数组的配合使用,包括内存地址操作、步长计算等关键知识点,为理解C语言中指针与数组的关系提供了实用指导。
2025-10-09 23:40:36
229
原创 C语言基础之指针2
本文介绍了指针计算中数据类型的关键作用:决定指针移动的步长(如int类型步长为4字节)。通过代码示例展示了指针加减运算对地址的影响,以及如何通过指针运算访问数组元素。同时指出指针乘除运算无意义,并解释了野指针和悬空指针的概念及风险。最后展示了一个通用交换函数,利用void指针实现任意类型数据的交换。文中所有操作均在Windows 64位系统环境下验证。
2025-10-01 00:03:51
219
原创 C语言基础之指针1
指针是C语言中存储内存地址的变量,通过解引用运算符(*)可访问或修改数据。使用指针时需注意:指针类型需与目标变量类型匹配;函数内指针指向的变量若不加static会被回收;指针常用于跨函数操作变量、返回多个值(如数组极值)及状态分离(如除法运算)。指针操作数组和函数更高效,但需谨慎ESA问题(空值访问)。例中通过static解决函数返回局部变量指针的问题,并演示了指针交换变量、获取余数等应用场景。
2025-09-30 22:12:24
152
原创 C语言中经常使用的函数
本文介绍了C语言中常用的数学函数及其使用方法,包括幂运算pow()、平方根sqrt()、向上取整ceil()、向下取整floor()以及各种类型的绝对值函数(abs()、labs()、llabs()、fabs())。通过示例代码演示了每个函数的调用方式及输出结果,并强调了必须包含相应头文件(如math.h和stdlib.h)的重要性。这些函数能有效处理不同数据类型的数学运算,是C语言编程中常用的基础工具。
2025-09-28 21:44:51
380
原创 c语言基础之函数
函数是程序中实现独立功能的模块。与数学函数不同,程序函数通过定义(如void 函数名(){函数体})和调用来实现,具有提高代码复用性和可维护性的优点。函数分为带参无返回值、带参有返回值等类型,定义前需明确功能、参数和返回值需求。注意事项包括:函数需调用才执行、不能重名或嵌套定义、return语句的用法等。在C语言中,函数通常定义在main函数下方,需提前声明,且不同类型函数(如void)对返回值有不同要求。
2025-09-28 16:59:42
403
原创 Java快速入门基础1
Java中的字面量指直接表示确定值的常量,包括整数、小数、字符、字符串、布尔和空常量。Java是强类型语言,数据类型分为基本类型(四类八种)和引用类型。变量是内存中的可变区域,定义需指定类型和名称,注意long和float类型需要特殊后缀。关键字是Java预定义的保留字,标识符用于命名类、方法和变量,需遵循命名规则和大小写驼峰命名规范。
2025-09-15 21:31:03
297
原创 水滴终将穿石
在这二十多岁的青春年华,我想是用来奋斗的,好好吃饭,好好睡觉,开心学习,每天都有在进步哦,即使是一点点也可以,真心对待生活中的每个人或每一件事。
2025-09-11 23:33:18
112
原创 正则表达式,Collection集合,迭代器
正则表达式是一种由特定字符组成的字符串校验规则,主要用于对用户输入的字符串数据进行格式验证(如手机号、QQ号等)。它通过字符类(如[abc]、[0-9])、预定义字符(如\d、\w)和量词(如?、+、{n,m})等语法实现强大的匹配功能。在Java中,String类的split()和replaceAll()等方法支持正则表达式操作,可进行字符串切割和替换。Collection集合是存储数据的容器,具有大小可变、支持多种数据类型的特点,常用子接口包括List和Set。Collection提供add()、rem
2025-07-18 20:10:17
921
原创 常用API
Java常用工具类摘要 本文介绍了Java中几个常用的工具类:Math、System、BigInteger和BigDecimal。 Math类:提供数学运算方法,如取绝对值(abs)、取整(ceil/floor/round)、幂运算(pow)等。工具类设计原则包括final修饰、私有构造方法和静态方法。 System类:包含系统相关方法,如exit()终止虚拟机、currentTimeMillis()获取当前时间,可用于计算代码执行时间。 BigInteger类:处理超出long范围的大整数运算,支持加减乘
2025-07-17 23:51:21
902
原创 关键字,接口,代码块,枚举
本文摘要:文章详细介绍了Java中的static、final关键字及权限修饰符的使用。static用于修饰共享的成员变量和方法,具有优先加载、类名访问等特点;final修饰不可变的类、变量和方法;权限修饰符控制访问范围(private<默认<protected<public)。同时讲解了JVM内存划分、工具类开发要点及静态代码块的作用(初始化静态数据)。通过代码示例展示了这些关键字的实际应用场景和使用规范。
2025-07-14 19:06:45
822
原创 Java——面向对象
摘要:本文介绍了面向对象编程的核心概念,包括类与对象的关系、Java类的创建规范、类的组成成分(成员变量、方法、构造方法等)以及对象的创建和使用方法。重点讲解了构造方法的定义与作用、封装的概念与实现步骤、this关键字的使用场景,以及匿名对象的概念和三种典型用法(直接调用方法、方法参数和返回值)。通过Student1类的示例代码,展示了匿名对象在实际编程中的应用场景。全文系统性地梳理了面向对象程序设计的基础知识要点。
2025-07-12 16:11:50
376
原创 Java——抽象类
摘要:本文介绍了Java抽象类与抽象方法的概念和使用。主要内容包括:1) 抽象类用abstract修饰,不能实例化,但可以有构造方法用于子类初始化;2) 抽象方法是只有声明没有实现的方法,必须存在于抽象类中;3) 抽象类的子类必须实现所有抽象方法或也成为抽象类;4) 模板设计模式的应用,将通用结构定义在抽象类中,具体实现交由子类完成。文章还通过代码示例演示了如何使用抽象类实现模板方法设计模式,展示了其提高代码重用性和可维护性的优势。
2025-07-12 15:18:19
572
原创 Java---IDEA
IDEA:全称IntellijIDEA,是用于Java语言开发的集成开发环境把代码编写,编译,运行,调试等多种功能综合到一起的开发工具下载与安装。
2025-07-10 22:48:38
430
原创 Java入门之JDK下载和安装
Java是一门由詹姆斯·高斯林设计的编程语言,1995年由Sun公司推出,2009年被Oracle收购。Java分为三大技术平台:JavaSE(标准版,用于桌面开发)、JavaEE(企业版,用于Web应用开发)和JavaME(小型版,用于嵌入式设备)。JDK(Java开发工具包)可从Oracle官网下载,安装路径建议避免中文和空格。配置Path环境变量(指向JDK的bin目录)可全局使用JDK工具,具体步骤包括创建JAVA_HOME变量并修改Path变量值。
2025-07-10 22:26:55
254
原创 c语言——语句
其实,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实际需求的就可以。• break 的作⽤是⽤于永久的终⽌循环,只要 break 被执⾏,直接就会跳出循环,继续往后执 ⾏。• continue 的作⽤是跳过本次循环中continue 后边的代码,在 for 循环和 while 循环中有 所差异的。goto 语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以我们的建 议是能不⽤尽量不去使⽤。表达式2⽤于循环结束条件的判断。
2025-05-01 22:46:14
290
原创 c语言—变量—操作符—输入输出
C语⾔中把经常变化的值称为变量,不变的值称为常量。变量命名的⼀般规则:• 只能由字⺟(包括⼤写和⼩写)、数字和下划线(`_`)组成。• 不能以数字开头。• ⻓度不能超过63个字符。• 变量名中区分⼤⼩写的。• 变量名不能使⽤关键字。
2025-04-29 17:58:11
724
原创 Java-类和对象
static的语义与类的定义冲突static表示“属于类而非实例”,而类本身已经是顶级结构,不需要再通过static声明其归属。类的定义要么是顶层的(直接属于包),要么是嵌套的(作为其他类的成员)。嵌套类中,static可以修饰(表示静态嵌套类),但顶层类不需要。顶层类:不能加static,因为默认就是独立的。嵌套类:可以用static表示不依赖外部类实例。这是语言设计者为保持语义清晰和一致性做出的选择System.out.println(name+" "+age+"个月大"+"它正在吃饭")
2025-04-27 20:59:24
430
原创 Java快速入门3之方法
Java方法摘要:方法是一段可重复调用的代码块,通过修饰符、返回值类型、方法名和参数列表定义。方法必须定义在类中,不能嵌套。调用方式包括带参数调用和带返回值调用(使用return语句)。方法参数分为形式参数(定义时声明)和实际参数(调用时传入)。方法重载指在同一个类中方法名相同但参数列表(个数、类型、顺序)不同,与返回值无关。注意方法名和参数必须匹配,否则会报错。
2025-04-26 16:37:54
1563
原创 Java快速入门2之运算符&三种结构语句
摘要:本文介绍了Java中的常见运算符和语句结构。运算符包括算术、赋值、关系、逻辑、位运算和三元运算符。类型转换分为隐式转换(自动)和强制转换(手动),后者可能导致精度丢失。程序结构分为顺序结构、选择结构(if/switch)和循环结构(while/do-while/for)。循环控制包含break(终止循环)和continue(跳过本次循环)。三种循环都支持死循环,while和for变量作用域不同,do-while至少执行一次循环体。
2025-04-22 14:49:22
961
1
原创 Java基本数据结构类型
数据类型范围排序(从小到大):byte(8) < short(16) < int(32) < long(64) < float(32) < double(64)*String类型不属于基本数据类型,主要用来存放文本类型的数据 String goodsName = " ⿇辣王⼦ "; String num = "5"; // 这是文字"5",不是数字5!不能直接做数学计算。 String[] toppings = {"巧克力豆", &qu
2025-04-21 22:54:49
1527
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅