- 博客(34)
- 收藏
- 关注
原创 数据结构--栈、队列的插入、删除、查找详解
本文系统介绍了栈和队列的基本概念、特点及实现方式。栈遵循后进先出(LIFO)原则,主要操作包括入栈、出栈等;队列遵循先进先出(FIFO)原则,主要操作包括入队、出队等。文章详细阐述了顺序栈和链栈的实现方法,包括初始化、判空、求长度、清空、销毁等操作,并提供了栈在进制转换、括号匹配、表达式求值等场景的应用案例。同时介绍了递归的概念及其与栈的关系,包括递归定义的数学函数和具有递归特性的数据结构。全文通过图示和代码示例,清晰地展示了栈和队列的核心操作及实际应用。
2026-04-17 17:47:03
787
原创 数据结构--循环链表、双向链表的插入、删除、查找详解
本文系统梳理了线性表的核心知识点,重点分析了循环链表和双向链表的结构特性与操作效率。主要内容包括:1) 循环链表的概念及其尾指针操作的时间复杂度优势;2) 双向链表的插入、删除操作实现;3) 顺序表与链表的存储密度、访问效率对比;4) 线性表合并的两种实现方式(顺序表/链表)。通过时间复杂度分析和图示演示,阐明了不同数据结构在特定场景下的性能差异,为数据结构的选择提供了理论依据。特别强调了带尾指针的循环链表在合并操作中的高效性,以及双向链表对于前驱操作的便利性。
2026-04-15 23:39:21
1073
原创 数据结构--单链表的插入、删除、查找详解
本文介绍了单链表的基本概念和操作实现。主要内容包括:1)单链表的定义和存储结构特点,与顺序表的区别;2)单链表的组成要素(头指针、头结点、首元结点);3)单链表的基本操作算法实现,包括初始化、判空、销毁、清空、求表长、取值、查找、插入和删除等;4)两种建立单链表的方法(头插法和尾插法)。文章详细讲解了每个操作的算法步骤和实现代码,并分析了时间复杂度。单链表通过指针实现动态存储分配,具有插入删除方便的优点,但查找效率较低(O(n))。
2026-04-14 11:07:11
698
原创 数据结构--顺序表的插入、删除、查找详解
本文介绍了线性表的基本概念、操作及顺序表的实现。线性表是具有相同数据类型的有限序列,支持插入、删除、查找等基本操作。顺序表通过顺序存储实现,分为静态分配和动态分配两种方式。动态分配使用malloc/free实现容量扩展,但时间复杂度较高。顺序表支持随机访问(O(1)),但插入/删除需移动元素(O(n))。文章通过C++代码示例展示了顺序表的初始化、扩容、插入等操作,并分析了顺序表存储密度高但扩展不便的特点。最后总结了顺序表在插入删除操作中的时间复杂度与实现要点。
2026-04-12 08:28:10
871
原创 数据结构三要素、时间复杂度计算详解
本文系统介绍了数据结构与算法的基本概念。数据结构研究如何高效组织和处理数据,包含逻辑结构(集合、线性、树形、图状)和存储结构(顺序、链式、索引、散列)。算法是对问题求解步骤的描述,具有有穷性、确定性等特性。重点分析了时间复杂度和空间复杂度的评估方法:时间复杂度关注执行时间随问题规模n的变化,采用加法规则和乘法规则计算;空间复杂度考察内存使用与n的关系,特别讨论了递归算法的空间开销。通过实例演示了复杂度计算过程,强调算法效率评估对程序优化的重要性。数据结构与算法共同构成计算机程序的基础,是解决实际问题的关键工
2026-04-11 00:15:07
767
原创 C++核心编程案例--职工管理系统详解(二)
本文介绍了基于C++面向对象编程的职工管理系统实现过程,重点讲解了显示、删除、修改和查找职工信息的功能开发。系统通过封装、继承、多态等特性实现职工类层次结构,支持普通员工、经理和老板三类职工的管理。详细展示了各功能模块的实现方法,包括职工信息显示、按编号删除、信息修改以及按编号/姓名查找等核心操作,并提供了文件读写功能实现数据持久化。每个功能模块都包含函数声明、实现代码和测试效果,完整呈现了一个面向对象企业级应用系统的开发流程。
2026-04-10 00:13:47
852
原创 C++核心编程案例--职工管理系统详解(一)
本文介绍了基于C++核心编程的职工管理系统开发案例,主要涵盖封装、继承、多态等面向对象特性。系统分为普通员工、经理、老板三类职工,具备增删改查、排序等功能。文章详细展示了管理类(WorkerManager)的创建过程,包括菜单功能实现和退出系统功能。同时设计了职工抽象基类(Worker)及其子类Employee,通过纯虚函数实现多态管理。系统采用文件存储职工信息,后续将实现完整CRUD操作和文件交互功能。该案例综合运用了构造函数、析构函数、虚函数等C++核心概念,适合作为面向对象编程的实践项目。
2026-04-09 11:25:28
718
原创 C++基础入门案例--通讯录管理系统详解
本文介绍了使用C++实现通讯录管理系统的基本流程。系统主要功能包括添加、显示、删除、查找、修改和清空联系人,以及退出系统。通过结构体存储联系人信息(姓名、性别、年龄、电话、住址),并利用数组管理最多1000条记录。文章详细讲解了菜单界面设计、退出功能实现,重点阐述了添加联系人功能的开发步骤,包括结构体设计、通讯录初始化及输入验证等核心代码实现。该系统综合运用了数组、指针、结构体等C++基础知识,适合初学者作为实践项目学习。
2026-04-04 18:30:48
986
原创 C++提高编程--STL常用算法(查找、排序、拷贝替换)详解
本文介绍了C++ STL中常用的查找算法,包括find、find_if、adjacent_find和binary_search。find用于查找指定元素,返回迭代器;find_if按条件查找元素;adjacent_find查找相邻重复元素;binary_search使用二分查找法判断元素是否存在(仅适用于有序序列)。每个算法都通过示例代码演示了对内置数据类型和自定义数据类型的应用,展示了算法的基本使用方法和输出结果。这些算法为容器元素查找提供了高效便捷的解决方案。
2026-03-31 21:05:24
584
原创 C++提高编程--仿函数、常用遍历算法(for_each、transform)详解
本文介绍了C++ STL中的员工分组案例和函数对象(仿函数)的使用。在员工分组案例中,通过vector存储员工信息,使用multimap按部门分组并显示结果。函数对象部分讲解了仿函数的概念和特点:可以像普通函数一样调用,可以保存内部状态,并可作为参数传递。此外还介绍了谓词的概念,即返回bool类型的仿函数,包括一元谓词和二元谓词。案例展示了如何创建和使用函数对象,以及通过重载()运算符实现类似函数的调用行为。这些技术增强了C++的灵活性和功能性,为处理复杂逻辑提供了更多选择。
2026-03-29 23:24:44
712
原创 C++提高编程--STL常用容器(set/multiset、map/multimap容器)详解
本文介绍了C++ STL中set/multiset容器的基本概念、常用操作及区别。主要内容包括:1) set容器自动排序且不允许重复元素,multiset允许重复;2) 容器的构造、赋值、大小查询和交换操作;3) 元素的插入、删除、查找和统计方法;4) set与multiset的关键区别在于是否允许重复元素及插入返回值。通过代码示例演示了各种操作的实现方式,为C++开发者提供了使用这两种关联式容器的实用指南。
2026-03-28 23:59:44
773
原创 C++提高编程--STL常用容器(stack容器、queue容器、list容器)详解
本文介绍了C++ STL中常用的三种容器:stack、queue和list的基本概念及常用接口。stack是先进后出的数据结构,提供push/pop等操作;queue是先进先出的队列结构,支持front/back访问;list是双向链表,具有高效插入/删除特性。文章通过代码示例演示了各容器的基本使用方法,包括构造、遍历、赋值等操作,并比较了不同容器的优缺点,为C++编程提供了实用的容器选择参考。
2026-03-27 23:14:53
940
原创 C++提高编程--STL常用容器(vector容器、deque容器)详解
本文摘要: 本文介绍了C++ STL中vector容器的基本概念和常用操作。vector是一种动态数组,支持随机访问迭代器。主要内容包括:1) vector构造函数,如默认构造、区间构造、拷贝构造等;2) 赋值操作,包括operator=和assign方法;3) 容量和大小操作,如empty()、capacity()、size()和resize();4) 插入和删除操作,如push_back()、pop_back()、insert()、erase()等;5) 数据存取方法,包括at()、operator[]
2026-03-26 16:53:41
832
原创 C++提高编程--STL初识、string容器详解
本文介绍了C++标准模板库(STL)的基本概念和核心组件。STL包含六大组件:容器、算法、迭代器、仿函数、适配器和空间配置器。重点讲解了vector容器的使用,包括存放内置数据类型、自定义数据类型和嵌套容器的实现方法,并展示了三种遍历方式。此外,文章还回顾了面向对象编程的封装、继承、多态等概念,以及模板编程的基本思想。通过具体代码示例,演示了如何利用STL提高代码复用性,实现数据结构和算法的标准化。
2026-03-24 23:41:50
555
原创 C++提高编程--模板(函数模板、类模板)详解
本文主要介绍了C++模板编程的基本概念和应用。首先阐述了模板作为通用模具的特点,重点讲解了函数模板的语法和使用方法,包括自动类型推导和显式指定类型两种方式。通过具体案例展示了如何用函数模板实现数组排序功能,并比较了普通函数与函数模板在隐式类型转换和调用规则上的区别。文章还指出模板不能直接使用,必须确定具体类型才能实例化。最后通过代码示例演示了普通函数与函数模板的调用优先级关系,说明在合适场景下编译器会优先选择更匹配的函数模板。这些内容为深入理解C++泛型编程奠定了基础。
2026-03-23 22:50:49
660
原创 C++核心编程--多态、纯虚函数、文件读写操作详解
本文介绍了C++面向对象编程中的多态特性,包括静态多态(函数重载)和动态多态(虚函数实现)。重点讲解了多态的实现条件(继承关系+虚函数重写)和使用方法(父类指针/引用指向子类对象)。通过计算器类和饮品制作两个案例,展示了多态在代码组织、可读性和扩展性方面的优势。还介绍了纯虚函数和抽象类的特点:无法实例化对象且子类必须重写虚函数。文中包含完整代码示例和内存结构分析,帮助理解多态底层实现原理。
2026-03-22 16:43:19
1100
原创 C++核心编程--继承详解
C++继承机制详解:本文介绍了C++面向对象编程中的继承特性,重点讲解了三种继承方式(公共、保护、私有)及其访问权限变化,通过代码示例展示了继承如何减少代码重复。文章还演示了使用开发人员命令提示工具查看对象模型的方法,验证了父类所有非静态成员属性都会被继承的事实,包括编译器隐藏的私有成员。继承作为面向对象三大特性之一,实现了代码复用和类之间的层次关系。
2026-03-20 23:22:21
671
原创 C++核心编程--this指针、友元、运算符重载详解
摘要 本文介绍了C++类和对象的核心概念,重点讲解了对象模型和this指针的用法。主要内容包括:成员变量和函数的存储方式(非静态成员变量属于对象)、this指针的用途(解决命名冲突和返回对象本身)、空指针访问成员函数的注意事项、const修饰成员函数(常函数和常对象)以及友元的三种实现方式(全局函数、类和成员函数做友元)。通过代码示例演示了这些概念的具体应用,如使用this指针区分同名变量、实现链式编程、空指针调用成员函数时的健壮性处理等。文章为C++面向对象编程提供了实用指导。
2026-03-18 22:46:43
730
原创 C++核心编程--封装、析构函数、拷贝函数详解
本文摘要: C++面向对象编程的核心概念包括封装、继承和多态。文章重点讲解了封装的意义与实现方法,通过圆类和学生类的实例演示了如何定义类属性和行为。详细介绍了三种访问权限(public、protected、private)的区别,以及struct与class的默认权限差异。通过Person类展示了将成员属性设为私有的优点,包括可控的读写权限和数据有效性验证。最后以立方体类案例展示了全局函数与成员函数判断对象相等性的不同实现方式,体现了面向对象编程的封装特性。
2026-03-17 20:28:53
606
原创 C++核心编程--内存分区模型、函数重载详解
本文主要介绍了C++程序的内存分区模型和引用机制。内存分为代码区、全局区、栈区和堆区,不同区域存放不同生命周期的数据。全局区存放全局变量和静态变量,栈区由编译器自动管理,堆区需程序员手动分配释放。new操作符用于堆区内存分配,delete释放内存。引用是变量的别名,必须初始化且不可更改,可作为函数参数和返回值。通过内存分区和引用机制,C++提供了更灵活的内存管理和参数传递方式。
2026-03-15 19:30:13
746
原创 C++基础入门--函数、指针、结构体详解
本文介绍了C++中的函数和指针基础知识。函数部分包括定义、调用、值传递、常见样式、声明和分文件编写方法。指针部分讲解了指针变量的定义使用、内存空间占用、空指针与野指针的区别,以及const修饰指针的三种情况。内容涵盖了C++基础编程中的核心概念,适合初学者快速掌握函数和指针的基本用法。
2026-03-14 21:30:17
548
原创 C++基础入门--程序流程结构、数组详解
本文介绍了C++中的三种基本程序结构(顺序、选择、循环),重点讲解了选择结构和循环结构的使用方法。在选择结构中详细说明了if语句的三种形式(单行、多行、多条件)以及switch语句的应用场景和语法特点。在循环结构中阐述了while和do...while循环的区别及使用方法。通过猜数字游戏和水仙花数计算两个实践案例,展示了如何在实际编程中运用这些控制结构。文章还包含丰富的代码示例和流程图,帮助读者直观理解程序执行流程。
2026-03-13 19:21:29
769
原创 C++基础入门学习
本文介绍了C++编程的基础知识,包括程序编写、注释、变量和常量的定义、数据类型、关键字和标识符命名规则等内容。重点讲解了整型、浮点型、字符型等数据类型的用法和内存占用情况,以及转义字符的使用方法。文章通过具体代码示例演示了各种语法规则,为初学者提供了C++编程的入门指导。
2026-03-12 19:05:06
473
原创 面向对象三大特性--封装、继承、多态
文章摘要: 本文介绍了面向对象编程的三大特性:封装、继承和多态。封装通过私有属性和公共访问方法实现数据隐藏和保护;继承实现代码复用,子类可扩展父类功能;多态允许同一方法在不同对象中呈现不同行为。文章包含Java代码示例,展示了如何使用get/set方法进行封装、extends关键字实现继承,以及方法重写实现多态。重点强调了程序设计"高内聚、低耦合"的原则,以及继承中的super/this关键字使用注意事项。
2026-03-11 17:44:44
574
原创 Java的核心思想--面向对象编程
面向对象编程基础与核心概念 摘要:本文介绍了Java面向对象编程(OOP)的核心思想,包括类与对象的关系、方法定义与调用、构造器使用等基础概念。重点阐述了OOP的三大特性(封装、继承、多态)以及面向过程与面向对象的思维差异。通过具体代码示例,展示了静态/非静态方法的区别、值传递与引用传递的特性、以及构造器的定义和使用规则。文章还分析了对象创建时的内存分配机制,帮助理解Java程序运行时的内存模型。这些内容为Java初学者提供了OOP编程的入门知识框架。
2026-03-07 23:09:58
257
原创 Java零基础学习创建使用数组-冒泡排序
本文介绍了Java中数组的基本概念和使用方法。主要内容包括:1)数组的创建与初始化,包括静态和动态初始化方式;2)数组边界问题及数组下标越界异常;3)数组的四种使用方式:普通for循环、For-Each循环、作为方法参数和返回值;4)多维数组的定义和访问方式;5)Arrays工具类的常用方法,如排序和填充等。通过代码示例展示了数组的基本操作,包括遍历、反转和打印数组元素,以及使用Arrays类进行排序和填充操作。文章为Java数组的基础使用提供了实用指南。
2026-03-05 10:59:02
152
原创 Java关于方法的定义和调用
System:一个系统的类out:System下面的一个输出对象println:方法意思就是调用系统类的一个标准输出对象out中的println()方法。Java方法是语句的集合,包含在类和对象中。方法的命名规则:首字母小写+驼峰命名法Java方法类似于其他语言的函数,是用来完成特定功能的代码片段Java都是值传递重载就是在一个类中,有相同的函数名称,但形参不同的函数。一个类有两个相同的方法名,参数类型不一样。方法重载的规则:方法名必须相同。
2026-02-12 19:59:01
386
原创 Java流程控制--循环结构的学习
while循环与while循环类似,不同的是do…continue:终止某次循环过程,跳过循环体尚未执行的语句,接着进行下一次是否执行循环的判定。在Java5中引入了一种主要用于数组的增强型for循环,用来遍历一些数组和对象。2、用while或for循环输出0~1000之间能被5整除的数,并且每行输出3个。for循环执行的次数是在执行前就确定的,是支持。的一种通用结构,是最有效、最灵活的循环结构。do{//代码} while(布尔表达式)while(布尔表达式){//循环内容}
2026-02-10 03:02:57
546
原创 Java流程控制--选择结构的学习
两个方法:用next()方法、nextLine方法获取输入的字符串,读取前用hasNext()和hasNextLine()判断是否还有输入的数据。jdk7的新特性,switch表达式结果可以是字符串。java.util:java的工具包,里面有个scanner类可以获取用户输入。基本语法:Scanner s= new Scanner(System.in);Java的基本结构就是顺序结构,它是最简单的算法结构,从上而下,一句一句执行。让操作与电脑互动,通过scanner类获取用户的输入。
2026-02-08 02:45:24
442
原创 Java的基础语法学习之运算符
本质就是文件夹,用于区别类名的命名空间,防止重复。赋值运算符:= (int a=10,意思是把10赋值给a,不是a=10)关系运算符:>,<,>=,<=,==,!算术运算符:+,- ,*,/,% (取余,模运算),++,- -一种技术,可以将注释信息生成一个帮助文档,类似Java的API。位运算符:&,|,^,~,>>,<<,>>> (了解即可)优先级:括号>自增自减>加减乘除>关系运算符>逻辑运算符。扩展赋值运算符:+=,-=,*=,/=逻辑运算符:&&,||,!
2026-02-07 00:13:20
84
原创 Java的基础语法学习
文档注释有功能,可以添加参数,如描述@Description、作者@Author。新建一个类:src–new–Java Class,即可开始写代码。Java的所有组成部分都需要名字:类名、变量名以及方法名。IDE:集成开发环境,用于提供程序开发环境的应用程序。要素包括:变量名、变量类型和作用域。调节字体:file–settings–font。IDEA:最好的Java开发的工具之一。数据类型 变量名=值;1Byte表示一个字节 1B=8b。快捷键:/* +空格+ *+回车。多行注释:/ *注释 */
2026-02-06 00:49:19
750
原创 学习搭建Java开发环境
通过代码文件的上方路径进入cmd,编译。javac+a.java文件,会生成一个class文件。测试JDK是否安装成功,打开cmd输入java -version,看是否输出JDK版本信息。运行class文件,java+class文件(不用加.class)下载电脑对应的版本(64/32位) 我的电脑–属性–查看电脑版本。百度搜索JDK8,找到下载地址 (oracle)新建一个Java文件,文件后缀名为.java。双击安装JDK,记住安装的路径。随便新建一个文件夹,存放代码。
2026-02-05 01:02:20
532
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅