自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法题 day8---单链表(C语言)

这篇文章摘要总结了8个链表相关算法题的解题思路和代码实现: 移除元素 - 通过创建新链表,遍历原链表将非目标值节点尾插到新链表 反转链表 - 使用三指针迭代法逐个反转节点指针方向 链表中点 - 快慢指针法,快指针走2步慢指针走1步 合并有序链表 - 双指针遍历+尾插法,比较节点值大小依次插入 回文链表 - 两种方法:转数组验证或快慢指针+反转后半部分 相交链表 - 计算长度差后同步遍历找交点 环形链表1 - 快慢指针判断是否有环 环形链表2 - 快慢指针找入环点,利用数学规律定位 各题均采用高效解法,时间复

2025-09-19 21:07:32 861

原创 数据结构 静态链表的实现(算法篇)

本文系统介绍了静态链表的实现原理和操作,重点讲解了单链表和双向链表的静态数组实现方法。主要内容包括:1. 静态链表的核心组件:使用数组e[N]存储数据,ne[N]存储后继节点下标,通过下标id分配新节点位置;2. 单链表操作实现:详细说明了头插、遍历、按值查找、任意位置插入和删除等操作的O(1)实现方法;3. 双向链表扩展:在单链表基础上增加pre[N]数组实现前驱指针,支持双向遍历和前向插入操作;4. 性能优化技巧:引入mp数组实现O(1)时间复杂度的按值查找,体现空间换时间的优化思想;5. 实际应用建议

2025-09-19 19:45:47 987

原创 算法题 day7 ---vector

本文摘要: 本文介绍了五个编程问题的解法思路和代码实现。1)询问学号问题:通过数组存储学号,实现快速索引查询;2)寄包柜问题:使用vector数组动态管理柜子格子,实现高效存取操作;3)移动零问题:提出辅助数组和双指针两种解法,后者更优;4)颜色分类问题:采用三指针法将数组分为四个区间进行排序;5)合并有序数组问题:提供辅助数组和原地合并两种方法,后者空间效率更高。各解法均分析了时间/空间复杂度,并给出示例演示。

2025-09-17 18:29:48 705

原创 C++ STL之优先级队列详解

优先级队列是一种基于堆结构的容器适配器,其核心特性是按优先级访问元素。它通过封装底层容器(默认vector)和堆算法实现,支持高效插入、删除和访问最大/最小元素的操作。优先级队列的实现依赖于向上调整(AdjustUp)和向下调整(AdjustDown)算法来维护堆结构,并使用仿函数(如Less或Greater)来灵活控制排序规则。在自定义类型使用时需重载比较运算符,指针类型则需要自定义比较仿函数。优先级队列广泛应用于需要高效获取极值元素的场景,如TopK问题等。其时间复杂度为:插入O(logn)、删除O(l

2025-09-17 13:01:25 1069 1

原创 C++ STL之deque的使用和模拟实现

摘要: 双端队列deque是STL中的动态序列容器,支持两端高效插入/删除和随机访问,填补了vector和list的功能空白。其底层通过"中控器+分段缓冲区"实现,兼具vector的随机访问和list的双端操作优势,但中间操作效率较低。deque是stack和queue的默认底层容器,因其完美适配二者仅需单端或双端操作的特点。虽然deque平衡了功能与性能,但在实际应用中仍存在遍历效率低、中间操作慢等缺陷,通常在需要频繁随机访问时选择vector,频繁中间操作时选择list更为合适。

2025-09-15 18:21:28 913 1

原创 C++ stack和queue的使用及模拟实现

本文介绍了C++中的容器适配器stack和queue的实现原理与使用方法。stack是后进先出(LIFO)的容器适配器,通过封装底层容器(vector/deque/list)的尾插尾删操作实现;queue是先进先出(FIFO)的容器适配器,通过封装底层容器(deque/list)的尾插头删操作实现。文章详细讲解了它们的模板设计、接口封装原理,并通过具体代码示例展示了如何自定义实现这两种适配器。同时分析了两者的底层容器选择策略,解释了为什么stack默认使用deque而queue不能使用vector的原因。最

2025-09-13 19:12:39 1260 1

原创 算法题 Day6---String类(3)

本文摘要: 回文判断的三种方法:双指针法(两端向中间遍历)、标记法(全程检查字符)和反转对比法(比较原字符串与反转字符串)。 手机按键次数统计:通过预存字母按键次数的数组,累加输入字符串中各字符对应的按键次数(包括空格处理)。 口算练习题处理:使用状态变量记录上一次运算类型,处理两种输入格式(三数据和两数据),利用字符串拼接生成完整算式并计算长度。 代码特点: 回文判断:强调原地操作和状态维护 手机按键:使用数组映射提高效率 口算题:结合字符串转换和条件分支处理多种输入情况 文章还补充了C++中字符串与数值

2025-09-12 21:22:16 627

原创 C++ list的模拟实现

本文详细解析了C++中list容器的模拟实现,重点介绍了带头双向循环链表的结构设计和迭代器实现。主要内容包括: 链表节点设计:采用模板类__list_node包含prev、next指针和数据域,支持默认构造和灵活初始化; 哨兵节点机制:通过不存储数据的哨兵头节点简化边界操作,形成循环链表结构; 迭代器实现:封装节点指针,重载操作符模拟指针行为,通过模板参数区分普通迭代器和const迭代器; 核心接口实现:包括push_back、insert、erase等操作,以及现代写法实现的拷贝构造和赋值重载。 该实现完

2025-09-12 19:41:23 1070

原创 C++ STL之list的使用

本文系统介绍了C++标准库中的list容器,主要包含以下内容:1. list的基本特性:作为双向链表实现的序列容器,支持高效任意位置插入删除操作,但不支持随机访问;2. 常用操作:详细讲解了构造函数、遍历方式(size/iterator/range-for)、元素操作(push/pop/insert/erase/clear/swap)等核心功能;3. 特殊算法:包括sort、unique、remove等专用成员函数的使用方法及效率特点;4. 迭代器特性:分析了list迭代器失效问题,并与vector进行对比

2025-09-10 21:55:12 1274

原创 算法题 Day5---String类(2)

示例: swap_ranges(v1.begin(), v1.end(), v2.begin());示例: v.erase(unique(v.begin(), v.end()), v.end());这些函数/方法的共同特点是:操作后原始对象的内容被直接修改,无需赋值给新变量(赋值也只是复用原对象的引用,不会产生新对象)。示例: fill(v.begin(), v.end(), 0);示例: sort(v.begin(), v.end());示例: v.erase(v.begin() + 2);

2025-09-10 21:55:06 659

原创 算法题 Day5---String类

这篇文章介绍了三个编程题目的多种解法: 标题统计:给出了三种遍历字符串统计非空白字符的方法(范围for、下标法、迭代器法),并解释了isspace函数的使用。还提供了另一种通过cin>>s循环读取单词的解法。 石头剪刀布:展示了通过多重条件判断胜负的逻辑,详细解释了&&运算符的使用原因和判断逻辑。 密码翻译:比较了三种字符串遍历方式(下标、迭代器、范围for)在修改字符串时的区别。特别强调了范围for循环中使用引用(&)才能修改原字符串的特性,并给出了相应的代码实现。 文

2025-09-09 21:53:27 879

原创 C++ 三万字硬核讲解vector的模拟实现

本文深入探讨了C++中vector容器的底层实现原理。通过模拟实现vector类,详细解析了其核心框架和关键功能,包括迭代器设计、内存管理、扩容机制等。重点分析了迭代器失效问题,解释了insert和erase操作导致迭代器失效的原因及解决方法。文章还对比了传统写法和现代写法在拷贝构造和赋值重载中的差异,并指出了memcpy在深拷贝中的潜在问题。最后提供了完整的vector模拟实现代码,涵盖构造函数、析构函数、增删改查等基本操作,帮助读者深入理解STL容器的底层实现机制。

2025-09-09 09:26:42 807

原创 C++ 详细讲解vector类

本文介绍了C++中vector容器的基本概念和使用方法。vector是可变大小的序列容器,采用连续存储空间,支持高效随机访问和动态增长。文章详细讲解了vector的四种构造方式、常用成员函数(如size、capacity、resize、assign等)、遍历方法(下标、迭代器、范围for)以及二维vector的使用。重点内容包括:vector的动态扩容机制、元素访问和修改操作、二维vector的初始化和遍历(支持不规则数据结构)。vector相比数组和链表在随机访问和尾部操作上更高效,但在中间插入删除时性能

2025-09-06 14:23:19 847 1

原创 Linux---初始Linux及其基本指令

本文介绍了Linux操作系统的基础知识和常用指令。Linux是一种开源免费的操作系统,具有多场景适配、稳定灵活的特点,广泛应用于服务器、嵌入式设备和移动设备。文章详细讲解了8个基础Linux指令的功能和用法:pwd查看当前路径、whoami显示当前用户、mkdir创建目录、ls列出目录内容、cd切换目录、touch创建文件、clear清屏以及rm删除文件/目录。同时深入解析了这些指令的常用选项,如ls的-l(长格式显示)、-a(显示隐藏文件)选项,mkdir的-p(递归创建)选项等。通过学习这些内容,读者可

2025-09-02 21:58:17 673

原创 C++ string自定义类的实现

本文详细介绍了自定义string类的完整实现,包括头文件设计、成员函数实现和全局函数定义。核心内容包括:1. 实现字符串基本操作(构造/拷贝/赋值/析构) 2. 提供迭代器支持(begin/end) 3. 实现常用接口(c_str/size/operator[]) 4. 内存管理(reserve) 5. 增删改查操作(push_back/insert/erase/find/substr) 6. 比较运算符重载 7. 流操作符重载(<<和>>) 该实现采用SSO优化(小字符串优化),通

2025-08-24 15:23:07 1005

原创 算法题Day4

本文介绍了三个C++编程练习的解题方法:1)练习13通过取模和除法运算提取整数的十位数字;2)练习14将秒数转换为小时、分钟、秒的格式;3)练习15计算两个时间点之间的游泳时长差,输出小时和分钟。每个练习都使用了标准输入输出,通过基础运算实现功能,代码简洁高效。

2025-08-21 21:32:29 200

原创 C++ string类(c_str , find和rfind , npos , find_first_of)

本文摘要: C++字符串操作关键知识点总结:1. c_str()用于将std::string转换为C风格字符串,返回const char*,需注意其只读特性和内存管理;2. find/rfind函数分别用于查找字符/子串的首次/末次出现位置,未找到时返回string::npos;3. find_first_of用于查找字符集合中任意字符的首次出现;4. string::npos是查找失败的返回值,应通过==/!=判断而非直接使用值。这些函数是C++字符串与C风格字符串交互的重要工具,需注意返回值的有效性和使

2025-08-21 20:02:00 963

原创 C++ string类(reserve , resize , insert , erase)

本文详细介绍了C++中string类的常用操作及其底层原理。主要内容包括:size()和length()的功能一致性;size与capacity的区别,前者表示实际字符数,后者代表内存容量;reserve()用于预分配空间提升效率;clear()清空内容但不释放内存;shrink_to_fit()释放多余内存;resize()调整字符串大小;insert()的各种插入操作及其效率问题;erase()的多种删除方式及其时间复杂度。这些操作涉及字符串的内存管理、扩容机制和性能优化,是高效使用string类的基础

2025-08-20 22:44:13 912

原创 算法题Day3

【代码】算法题Day3。

2025-08-19 21:53:29 185

原创 C++ string类(STL简介 , string类 , 访问修改字符)

STL(标准模板库)是C++标准库的重要组成部分,提供通用数据结构和算法,基于模板技术实现泛型编程。STL包含六大组件,如容器、算法、迭代器等,能提高开发效率、保证性能并促进代码标准化。string类虽不属于STL核心,但常与STL配合使用,提供强大的字符串操作功能,包括初始化、访问、修改、查找、拼接等。学习STL和string类需掌握模板语法、核心容器使用、算法实践及底层原理,建议通过实际项目应用加深理解。

2025-08-19 21:28:23 1099

原创 C++ 模板进阶(泛型编程 , 函数模板及原理 , 类模板)

C++泛型编程通过函数模板和类模板实现代码复用。函数模板定义通用函数框架,编译器根据调用时类型自动生成具体函数,支持隐式和显式实例化。类模板允许定义通用类结构,实例化时指定具体类型。相比函数重载,模板减少了重复代码,提高可维护性。模板匹配优先规则:优先匹配普通函数,其次选择最优模板版本。注意模板不支持自动类型转换,且类模板名需配合类型参数才能使用。泛型编程显著提升了C++代码的通用性和复用性。

2025-08-18 21:07:06 921 1

原创 算法题Day2

摘要:本文展示了四个基础C++编程练习的解题方法,包括:6)倒序输出三个数字,7)计算n张100元票的总价,8)A+B求和问题,9)鸡兔同笼问题(已知35个头和94只脚)。每个练习都提供了完整的C++代码实现,使用基本的输入输出和算术运算,体现了基础编程逻辑。

2025-08-16 22:47:32 191

原创 C++ 内存管理(内存分布 , 管理方式 , new和delete实现原理)

本文系统介绍了C/C++程序的内存分布与动态内存管理机制。内存主要分为栈、堆、全局/静态区、常量区和代码区五部分,各自承担不同功能。C语言通过malloc/calloc/realloc/free进行动态内存管理,而C++引入了更高级的new/delete操作符,不仅能分配内存还能自动调用构造/析构函数。文章详细对比了malloc/free与new/delete的区别,并深入解析了operator new/delete的实现原理。关键在于:C++的new/delete是面向对象的内存管理方式,而malloc/

2025-08-16 21:25:57 1232

原创 算法题Day1

本文介绍了5个基础C++编程练习:1)"Hello,World!"输出;2)用字符打印飞机图案;3)读取并输出第二个整数;4)用输入字符构建三角形;5)简单整数输入输出。重点讲解了cin和cout的基本用法,特别强调cin不能使用endl,以及如何正确读取和输出数据。每个练习都提供了完整的代码实现和关键注释,适合初学者学习基础语法和输入输出操作。

2025-08-14 23:40:03 263

原创 C++ 类和对象5---(友元 , 内部类 , 匿名对象 , 编译器优化)

【C++特性解析】本文系统介绍了三种C++重要特性:1.友元函数:通过friend关键字允许外部函数访问类的私有成员,虽破坏封装性但能实现灵活操作,常用于运算符重载等场景。2.内部类:在类内部定义的嵌套类,可访问外部类静态成员,主要用于逻辑关联和封装辅助类,需注意作用域限制。3.匿名对象:临时创建的未命名对象,生命周期限于当前语句,适用于参数传递等一次性使用场景,需警惕悬垂引用问题。编译器优化方面,VS2022相比VS2019在跨语句拷贝优化上表现更优,能通过RVO/NRVO技术显著减少对象拷贝开销。

2025-08-14 20:44:53 770

原创 C++ 类和对象4---(初始化列表,类型转化,static成员)

本文深入讲解了C++中的三个重要特性:构造函数初始化列表、类型转换和static成员。初始化列表部分详细介绍了其语法、核心特性(如初始化时机、必须使用场景)和初始化逻辑,通过Date类示例展示了实际应用。类型转换部分重点分析了内置类型到类类型和类类型之间的隐式转换机制,包括语法形式、核心特性和explicit关键字的作用。static成员部分则阐述了静态成员变量(类外初始化、共享性)和静态成员函数(无this指针、类级访问)的特点和使用方法。全文通过丰富示例帮助读者理解这些核心概念的实际应用场景和注意事项。

2025-08-13 23:15:00 1397

原创 C++ 类和对象的应用之日期项目的实现(三万字详解)

本文通过实现一个日期类项目,详细讲解了C++类和对象中的6个默认成员函数及其应用。文章分为三个部分:头文件(Date.h)定义日期类接口,实现文件(Date.cpp)完成具体功能,测试文件(test.cpp)验证各类操作。 在日期类中,我们实现了: 构造函数与日期合法性检查 日期加减运算(+、+=、-、-=) 自增自减操作(++、--) 日期比较运算符(>、<、==等) 日期差值计算(两个日期相差天数) 输入输出流重载(<<、>>) 每个功能都结合具体代码示例详细说明,包

2025-08-13 09:30:38 372

原创 C++ 类和对象3---(拷贝构造 , 赋值运算符重载 , 取地址运算符重载)

本文系统讲解了C++中类的6个默认成员函数,重点剖析了拷贝构造函数和赋值运算符重载。拷贝构造函数用于用已存在对象初始化新对象,需注意参数必须是常量引用以避免递归调用。编译器默认生成浅拷贝版本,当类包含动态内存时需手动实现深拷贝。赋值运算符重载用于已有对象间的赋值操作,参数建议使用const引用以提升效率。当类包含动态资源时,必须手动重载以避免内存问题。此外,文章还介绍了取地址运算符重载的普通版和const版本,以及const成员函数的本质。6个默认成员函数共同构成了C++对象生命周期的自动管理体系,为对象的

2025-08-11 14:27:09 701

原创 C++ 类和对象2---(类的默认成员函数 , 构造函数 , 析构函数)

C++类的默认成员函数包括6个特殊函数:构造函数、析构函数、拷贝构造、赋值重载和两个取地址重载。核心作用是支持对象的基础操作,如创建、销毁、复制等。构造函数在对象创建时初始化成员,可重载为无参/带参形式;析构函数在对象销毁时释放资源,遵循"先构造后析构"的顺序。编译器会为未显式定义这些函数的类生成默认实现,但内置类型成员不会被默认构造初始化。当类涉及动态资源管理时,必须手动定义构造/析构函数以避免资源泄漏。这些默认函数是C++面向对象编程的基础机制,保障了对象的完整生命周期管理。

2025-08-07 20:44:07 1053

原创 C++ 类和对象1---(类 , 类的实例化 , 类的对象大小 , this指针)

摘要:本文系统讲解C++面向对象编程中类和对象的核心概念。重点包括:1)类的定义与封装特性,通过访问限定符控制成员可见性;2)类实例化过程,对象内存分配与this指针机制;3)类对象大小计算方法及内存对齐规则;4)通过Stack类的C++/C实现对比,展示封装带来的代码安全性和可维护性提升。文章详细剖析了类作为"数据+行为"封装体的本质,以及this指针在成员函数中的隐式传递机制,为掌握C++面向对象编程奠定基础。

2025-08-05 22:59:32 733 1

原创 C++ 入门基础4---(内联函数 , 宏和内联函数 , nullptr)

本文介绍了C++中的内联函数(inline)和nullptr两个重要特性。内联函数通过编译期替换函数体减少调用开销,适用于短小高频调用的函数,相比宏更安全且具有类型检查。文章详细讲解了内联函数的原理、语法、使用场景和注意事项,并对比了其与宏的区别。nullptr是C++11引入的类型安全的空指针表示方式,解决了NULL可能导致的类型混淆问题,可以隐式转换为任意指针类型。文章建议在C++编程中优先使用内联函数替代宏,并使用nullptr表示空指针以提高代码安全性和可读性。

2025-08-04 21:06:32 945

原创 C++ 入门基础3---(函数重载 , 引用 , const 引用)

本文介绍了C++中函数重载和引用的核心概念与用法。函数重载允许同名函数通过参数(个数、类型、顺序)区分,实现静态多态,但不能仅靠返回值不同重载。引用是变量的别名,必须初始化且不可重新绑定。传引用可作为函数参数或返回值,避免拷贝提升效率;常引用可保护数据;指针引用可修改指针指向。重点强调:返回引用时需确保目标变量生命周期足够长,绝对避免返回局部变量引用。合理使用函数重载和引用能提升代码简洁性和运行效率。

2025-08-03 23:23:03 1170

原创 C++ 入门基础2---(命名空间 , C++输入和输出 , 缺省参数)

本文详细介绍了C++中的三个基础核心概念:命名空间、输入输出和缺省参数。命名空间通过分组隔离标识符,有效解决命名冲突问题;C++的I/O系统基于iostream库,使用cin/cout实现类型安全的输入输出;缺省参数允许函数参数预设默认值,提高代码灵活性。文章深入解析了这些特性的定义、用法、规则及注意事项,强调正确使用命名空间避免冲突、合理运用缺省参数简化调用等最佳实践,为C++初学者奠定重要基础。这些概念是掌握C++编程的关键第一步,需要重点理解和熟练运用。

2025-07-31 22:22:35 1200

原创 C++ 入门基础1---C++简介

C++是由Bjarne Stroustrup在C语言基础上开发的编程语言,自1983年命名以来经历了C++98、C++11、C++20等多个标准版本迭代。它兼容C语言语法,同时扩展了面向对象、泛型编程等特性,兼具高效执行和复杂项目开发能力。C++广泛应用于系统开发、游戏引擎、音视频处理、嵌入式系统、AI底层框架等领域,在TIOBE排行榜中长期位居前列。其标准模板库(STL)提供了丰富的容器和算法,智能指针优化了内存管理,使数据结构实现更加便捷。学习C++能培养底层编程思维,提升在游戏开发、嵌入式等高薪岗位的

2025-07-31 11:23:56 599

原创 数据结构 排序(2)---选择排序

本文介绍了选择排序算法的两种实现方式:直接选择排序和堆排序。直接选择排序通过每次选取未排序区间的最小值和最大值,分别交换到数组两端来实现排序,虽然简单直观但时间复杂度固定为O(n²)。堆排序则利用堆结构高效获取最值,将时间复杂度优化至O(nlogn)。文章详细解析了直接选择排序的代码实现、运行流程和复杂度分析,并对比了升序与降序的实现差异。选择排序适用于小规模数据排序,其中堆排序在大数据场景下更具优势。两种算法都体现了"选最值、放到位"的核心思想。

2025-07-29 22:01:57 787

原创 数据结构 排序(1)---插入排序

排序,是将一组数据记录(可以是数字、文字描述、商品信息、院校数据等各类可比较的内容 ),依据某个或多个“关键字”(如商品价格、院校总分、数字大小等 ),按照升序(从小到大)或降序(从大到小 )的规则重新排列的操作。简单来说,就是让杂乱的数据变得“有序”,方便后续查看、分析与使用。下面我们在编译器上对上面的两个排序和冒泡排序(冒泡排序小编之前有讲过所以直接用来测试)进行一个测试:我们可以看出,排序之前的数据是乱序的,经过排序之后全部变为了有序数组。从而也验证了我们在实现上述排序是正确的。

2025-07-29 19:27:45 1159

原创 数据结构 堆(4)---TOP-K问题

本文介绍了堆在TOP-K问题中的应用。TOP-K问题指从海量数据中找出最大(或最小)的前K个元素,具有数据量大且K远小于n的特点。通过小顶堆(找前K大)或大顶堆(找前K小)的筛选机制,只需维护K个元素的堆结构,即可高效过滤无关数据。该方法时间复杂度为O(nlogK),空间复杂度仅O(K),显著优于全排序方案,适用于排行榜、实时监控等场景。文章详细推导了思路逻辑,提供了代码实现,并分析了复杂度及应用优势,是处理海量数据筛选的高效解决方案。

2025-07-27 22:46:30 842

原创 数据结构 二叉树(3)---层序遍历二叉树

我们仍然以之前使用过的二叉树为例。对于二叉树而言 :层序遍历二叉树,简单说就是按“层次”访问节点:从根节点开始,先访问第1层(根),再访问第2层(根的左右孩子),接着第3层……逐层从左到右访问每个节点,直到所有节点都被访问。所以对于这棵二叉树而言,我们可以简单的推论出这棵二叉树的层序遍历就是 :A BlevelOrder 函数通过队列实现二叉树层序遍历,核心总结如下:1. 初始化队列并将根节点入队,作为遍历起点;2. 循环处理队列(队列非空时):- 取出队头节点,访问其数据(打印)

2025-07-26 23:06:17 707

原创 数据结构 二叉树(2)---二叉树的实现

含义:用 typedef 给 char 起别名 BTDataType ,统一管理二叉树节点存储的数据类型。- 好处:如果后续想把节点数据改成 int / double 等,只需改这一行,不用满代码找 char 替换。// 存储节点的值(类型是上面定义的 BTDataType,即 char)// 指向左子树节点的指针(递归定义,因为子树也是 BinaryTreeNode 类型)// 指向右子树节点的指针}BTNode;:存当前节点的数据(比如字符 'A' 、 'B' 等)。

2025-07-26 18:27:22 1466

原创 数据结构 二叉树(1)

/定义链式结构的二叉树// 当前结点值// 指向当前结点左孩子// 指向当前结点右孩子}BTNode;- 作用:用 typedef 定义二叉树结点的结构体 BTNode ,每个结点包含:- 1 个数据域 data (类型为 BTDataType ,已通过 typedef 设为 int ),存储结点的值。- 2 个指针: left (指向左子树)、 right (指向右子树),体现二叉树的链式存储。

2025-07-25 22:07:56 970

空空如也

空空如也

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

TA关注的人

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