- 博客(12)
- 收藏
- 关注
原创 链表的操作与运用(几乎涵盖单向链表的所有操作)
然后我本来想马上教大家用链表来做一个复杂的图书管理系统,但又想到链表的一些操作还没给大家仔细讲解过(可能之前的文章提到过链表,但我没跟大家仔细探讨过),所以我打算写一篇文章,来先让大家了解怎么使用链表,从而为我的下一篇文章做准备。printf("成功删除位置 %d 的节点: %d\n", index, re->data);printf("成功在位置 %d 插入节点: %d\n", index, data);printf("位置 %d 的节点数据: %d\n", index, curr->data);
2025-11-17 22:23:22
912
原创 手把手教做项目——学生管理系统(超详细)
1:我先开始用的是int类型,但由于我的一个朋友学号过长,后续我添加完他的学号后发现电脑把他的学号修改成了一个随机数。2:但又出了个问题,我的另一个朋友的学号是0开头的,后续我添加完他的学号后发现电脑把他的学号的第一个0删掉了,所以我最后用了字符串老储存学号,成功规避了这些问题。printf("姓名: %-10s | 年龄: %-3d | 学号: %-15s | 学分: %.2f\n",printf("\n========== All Students (%d人) ==========\n", s);
2025-11-08 12:03:52
885
原创 数组VS链表——优缺点分析以及经典应用
总的来说,大家需要牢记数组的优缺点以及链表的优缺点,这样,有助于我们在做算法题或者在做项目的时候,能够节省更多的时间。由于数据在内存中是连续存放的,当访问一个元素时,其相邻元素很可能被一同加载到CPU缓存中,这大大提高了后续访问这些相邻元素的速度,对性能提升至关重要。在已知节点位置(尤其是双向链表)的情况下,插入或删除一个节点只需要修改相关节点的指针,时间复杂度为 O(1)。要访问链表的第 i 个元素,必须从头节点(或尾节点,如果是双向链表)开始逐个遍历,直到找到目标节点。//指针域:指向下一个节点。
2025-11-03 09:31:41
593
原创 校门外的树(习题讲解)
今天我跟大家分享一道有关数组的经典题,并跟大家谈论谈论一些我的想法。题目如下:某校大门外长度为 l 的马路上有一排树,每两棵相邻的树之间的间隔都是 1 米。我们可以把马路看成一个数轴,马路的一端在数轴 0 的位置,另一端在 l 的位置;数轴上的每个整数点,即 0,1,2,…,l,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。
2025-10-27 09:36:55
381
原创 指针、结构体与链表
结构体(struct)是 C 语言中一种自定义的数据类型,它可以将不同类型的数据(如 int、char、float、指针等)组合在一起,形成一个新的复合数据类型,用于描述一个具有多个属性的对象。好了,以上就是我们的指针,结构体,链表的定义,作用,以及一些基本操作。例如,要描述一个 “学生”,学生有姓名(char 类型)、年龄(int 类型)、成绩(float 类型)等属性,此时就可以用结构体将这些属性封装起来。printf("第%d个学生:姓名=%s, 年龄=%d, 成绩=%.1f\n", 。
2025-10-17 10:06:31
801
原创 指针、结构体与链表(习题及讲解)
所以,本题我们name所在的栈的空间已被回收,这个地址对应的内存不再属于name变量,所以是无效的。结构体赋值是深拷贝(因为结构体赋值时会把源结构体中所有成员的值都复制到目标结构体对应成员中。A的话,结构体是可以直接赋值的。D的话,有没有指针成员,结构体都可以进行赋值操作。大家可以自我检测一下,来看看自己对指针,结构体,链表掌握了多少。p+1指向第二行,*(p+1)+2指向第二行,第三个元素,即为6。这道题B、C、D都是指针的基本作用,然后A的话,这道题通过p1修改了a的值,b的值保持不变。
2025-10-15 17:00:09
765
原创 C语言基础
今天我们来谈论谈论c语言基础,从而加深自己对c语言的认识。首先我们要知道的是c语言使用编译器,那么我们详细的解释一下什么是编译器。(这里我再解释一下我们python使用的解释器,来帮助大家更好的区分与认识。将我们编写的代码 编译成机器语言 机器代码,计算机再执行机器代码要求: 编写的代码不能出现语法错误,否则一行都执行不了编译器 将.java文件的代码 编译成字节码文件 后缀为.class启动时,系统启动JVM , JVM执行.class文件C : gcc编译器,将。
2025-10-13 18:51:01
541
原创 数组的增删查改操作
好了,以上就是有关数组增删查改的全部操作。printf("元素存在,当前位置是: %d\n", indx);printf("查找的元素是: %d\n", e);printf("请输入一个需要查找的下标数: \n");printf("输入不合法,请输入正确的编号~\n");printf("请输入一个需要被删除的数: \n");printf("根据元素查找下标->302\n");printf("请输入一个整数: \n");printf("请输入一个下标: \n");printf("请输入一个下标: \n");
2025-10-13 13:29:47
508
原创 监听器的使用步骤
最后,希望看到这篇文章的你能有对监听器的一个初步了解,能学会利用我们的动作监听器同时验证账号,密码,验证通过显示登录成功或失败的界面。我们接着上一篇文章的登陆界面的程序来讲,今天我们要为我们的登陆界面添加监听器来实现更多的功能,从而得到一个更完整的登陆界面。如果有有对这个复制的程序不懂的朋友,可以参考一下我的上一篇文章“图形化编程”来帮助自己理解。监听器的使用分为三步: 1:确定事件源(当前动作所发生的组件),即确定监听器监听的对象是什么。完成了我们监听器的添加,那么下面我们来讲一下监听器方法的功能设计。
2025-09-14 13:26:40
319
原创 图形化编程
好了,写到这一步我们的登录界面就已经设计好了,我也相信看到这篇文章的你已经成功的掌握图形化编程了。但是,不知道你们有没有感觉,相较于我们平时看到的登录平台,我们的程序好像总少了些什么。其实,那是因为我们只是单单设置出了一个界面,所以我们点击登录按钮是没有任何反应的。所以,我在这里为下一篇文章做个铺垫,我们要想同时验证账号,密码,要想验证通过显示登录成功或失败的界面,我们必须掌握好监听器的使用步骤(下篇文章我们一起来谈论)。最后,希望看到这篇文章的你,能利用图形化编程,设置出更多带操作界面的应用程序。
2025-09-14 11:16:30
270
原创 java中的类和对象
当然,你还可以尝试创建更多的类,加入更多不同的对象,不过前提是你能正确地分析出你写的程序中所用到的所有对象。(其他的问题都可以参考我的代码来举一反三)最后,希望所有看到这篇文章的你都能成功掌握类和对象,都能成功设计出自己想要的程序。但还需要写第二道程序,因为我们需要输出:“小明正在学习数学,通过他的努力学习,数学成绩提高了10分,现在的成绩是130分。System.out.println(name+"正在学习数学,通过他的努力学习,数学成绩提高了"+sco+"分,现在的成绩是"+score);
2025-09-13 12:29:55
310
原创 设计画图工具的步骤
那么,通过以上步骤,我们便能设计一个简单的画图工具了。我们可以发现,以上代码是用来画线条的,那么,我们是不是也能通过修改一下代码,画出更多图形呢?那么接下来关键来了,我们绑定DrawListener事件处理类,一定要注意实现MouseListener这个接口,然后一定要重写该接口中的所有抽象方法。(附:监听器有鼠标监听器和动作监听器两种,此处我们使用鼠标监听器,因为我们画图时要按下鼠标,松开鼠标。我们再按下方法中定义的变量不能再松开方法中直接使用,所以要把保存坐标的变量定义成全局变量(属性)
2025-09-11 23:15:10
249
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅