- 博客(24)
- 收藏
- 关注
原创 [C++进阶]三大特性之一------继承
继承是代码复用的重要手段,是“代码复用”与“功能扩展”的结合。代码复用:无需重复编写基类中已有的成员,派生类直接继承并使用。功能扩展:派生类可以在继承的基础上添加新的成员,实现基类不具备的功能。行为重定义:派生类可以修改基类中成员函数的实现,使同一函数在不同类中有不同的表现(为多态奠定基础)。其价值是非常明确的,在大型项目开发中减少代码冗余:多个具有共性的类可以抽象出基类,将共性成员集中在基类中,派生类仅需要关注自身的特性。当共性逻辑需要修改时,只需修改基类代码,所有派生类。
2026-01-14 14:47:43
691
原创 [C++进阶]模板的进一步探索
本文探讨了C++模板编程中的非类型形参和模板特化两个重要概念。非类型形参允许在编译时确定常量值,通过示例展示了如何用其防止数组退化为指针。模板特化分为全特化和偏特化:全特化针对所有模板参数指定具体类型,偏特化则只特化部分参数。文章还分析了模板分离编译问题及解决方案,指出将模板声明和定义都放在头文件中可避免链接错误。这些技术能有效提升代码复用性和灵活性,是C++泛型编程的核心内容。
2026-01-13 08:30:00
1243
原创 [C++入门]类和对象下
本文总结了C++中类和对象的几个重要概念:1)初始化列表与构造函数的对比,强调初始化列表在const成员、引用成员等场景的必要性;2)static成员的特点,包括共享性、类外初始化和独立于对象存在;3)友元函数的概念及作用
2025-05-21 17:15:04
1186
1
原创 [C++入门]语言的求同存异!类和对象上
class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。类中成员的定义有两种方式可以直接声明定义全部放在类中也可以声明在头文件中,通过类名定义在类中,为了方便后期维护,小编推荐使用后者。
2025-05-11 07:30:00
957
原创 [C++入门]C++对C的优化篇
C++是在C语言的基础上由Bjarne Stroustrup博士于1982年引入并扩展了面向对象的概念而发明的新程序语言,旨在处理更复杂的程序问题。C++相较于C语言在多个方面进行了优化
2025-05-09 20:54:56
997
原创 扑克牌的艺术——插入排序[数据结构与算法入门]
排序在生活中十分常见,我们不可避免的面对各种排序问题,常见排序方式呢大致有以下四种,今天小编和大家一起学习插入排序。
2025-05-08 07:45:00
872
原创 二叉树的实现与理解 [数据结构与算法入门]
这里根据深度优先搜索原则,先搜左边,如果找到某个左子树节点的值为x,返回左子树的指针,找不到去右子树接着找,还找不到则说明不存在,返回空指针。想要一个函数实现两个功能,就要在返回值下功夫,常规查找我们使用bool,这里我们使用树的结点指针接收,对查找到的返回值可以直接修改。每次递归后,子节点都会当成根节点向下递归,打印值在的位置,就是每个根的值的位置。依然是从根节点进入,逐层减1,当k的值变为1时,就递归到了所求层。申请一个节点存放数据,后续的左右子树还用不上,进行置空。
2025-05-04 22:39:42
923
原创 排队的智慧“队列”[数据结构与算法入门]
而对于栈,因为其先入先出的特点,我们要进行尾差头删,所以用链表来实现会更加的方便一些。我们用cur从头结点开始遍历,提前保存下一个节点然后将当前节点FREE掉,遍历结束后,将头尾指针置空,此时权限已经还给操作系统,再使用会出现野指针报错非法访问。本质就是链表的头删,但是在结构体中我们多定义了一个尾指针,所以当只剩一个数据,头尾都指向一个数据的时候,需要我们将尾指针也一并置空。队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出。出队列:进行删除操作的一端称为。
2025-04-25 14:59:09
440
1
原创 数据结构与算法入门_用C语言实现栈
首先我们将数据元素,栈顶指针,数组容量装在结构体里,对于一会进站出站的操作我们设置动态数组,根据需要调整数组大小,同时对结构体重命名,方便后续书写。核心关键点在于检查栈够不够用,我们将栈顶与数组数量进行对比,当相等时,说明栈满,利用realoc给数组扩容二倍。一道C语言时期的经典试题,在学习了栈之后,利用先入后出的特点是不是变得游刃有余了呢。栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。利用判空进行断言,确保栈里有元素,随后通过top--实现精准删除。压栈:栈的插入操作叫做进栈。
2025-04-24 08:30:00
297
原创 一道题掌握链表!leetcode随机链表的复制【深度解析】
题目要求我们复制一个随机链表,每个节点除了指向下一个节点的指针,还有一个随机指针指向任意位置。而难点就在这里,复制的随机指针应该指向自己复制的新链表而不能指向原随机链表。
2025-04-23 02:00:31
386
1
原创 数据结构与算法入门_双向链表
之前的文章我们讲解了顺序表和单链表,这篇我们来一起研究一下双向链表作为链表的收尾双向链表也是一种链式数据结构,每个节点包含两个指针:前驱指针:指向当前节点的前一个节点后继指针:指向当前节点的后一个节点相比于单向链表,双向链表支持双向遍历,删除指定节点更高效,插入操作更灵活。但也有自己的缺点。每个节点多消耗一个指针的存储空间,操作逻辑更复杂,需同时维护两个指针。
2025-04-22 08:00:00
295
1
原创 数据结构与算法入门_链表OJ
cur走到之前记住的下一个节点,继续处理,循环往复。用cur逐个检查节点,每次循环,先记住当前节点的下一个节点next,防止断开后找不到路。如果当前节点值不是val: 不用删,prev跟上当前节点,cur继续往后走。让前一个节点直接跳过当前节点,删掉当前节点,cur移到下一个位置。把新头设为下一个节点,删掉当前节点,cur从新头重新开始检查。所有节点检查完,返回处理后的链表头,确保所有该删的节点都删了。所有节点处理完后,newhead就是反转后的新头,直接返回它。,请你反转链表,并返回反转后的链表。
2025-04-18 08:00:00
279
原创 数据结构与算法入门_单链表
这段代码像“倒着拼积木”,每次取最大的积木放在最后,直到所有积木拼完。既高效又优雅地解决了数组合并问题!以上就是本篇博客全部内容啦,有任何不足欢迎大家在评论区交流指正。
2025-04-17 08:00:00
960
原创 数据结构与算法入门_顺序表
数据结构(Data Structure)是计算机存储,组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。没有一种单一的数据结构对所有用途都有用,所以我们要学习各种各样的数据结构,如:线性表,树,图,哈希等等。1.2什么是算法算法就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果1.3数据结构与算法的重要性。
2025-04-16 02:40:29
856
1
原创 [C语言实现]动态扩容通讯录系统开发
本通讯录系统采用C语言实现,支持联系人信息的增删改查、动态扩容等核心功能。该系统通过模块化设计将数据结构与业务逻辑分离,具有良好的可维护性和扩展性。总结:本通讯录系统展示了C语言在内存管理、文件操作等方面的综合应用,适合作为初学者C语言练习项目。大家可以在此基础上继续扩展功能,欢迎各位在评论区交流改进方案!contact.h —— 头文件(声明)contact.c —— 功能实现。main.c —— 用户界面。realloc保持原有数据不变。销毁设为空指针时彻底释放资源。使用strcmp进行精确匹配。
2025-04-15 00:54:12
273
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅