- 博客(29)
- 收藏
- 关注
原创 C++ 二叉搜索树(BSTree)实现解析
二叉搜索树通过“左小右大”的局部有序性,将查找、插入、删除统一为沿树高的一条路径操作,因此平均可达到 O(logN) 的效率;但普通 BST 的树高强依赖输入序列,遇到有序数据会退化为链表导致最坏 O(N)。工程中若需要稳定性能通常采用AVL/红黑树等平衡树,但 BST 仍是理解有序结构、实现平衡树与 map/set 的核心基础。
2026-02-14 12:25:53
956
原创 C++中的多态
1️⃣必须存在继承关系2️⃣基类函数必须是virtual3️⃣通过基类指针或基类引用调用虚函数少一个都不是真多态。同一作用域中,函数名相同,但参数列表不同。public:派生类中出现与基类同名的成员,导致基类同名成员在派生类作用域内被隐藏。public:public:对比维度重载 Overload覆盖 Override隐藏 Hide是否要求继承❌✅✅是否要求 virtual❌✅❌是否同一作用域✅❌❌参数是否必须不同✅❌(必须相同)无关绑定时机。
2026-02-14 12:25:31
981
原创 C++中的继承
派生类对象可以赋值给基类对象/基类引用/基类指针(向上)基类对象不能赋值给派生类对象(除非显式转换,但通常不应该)多态设计中,推荐使用基类指针/引用来承载派生对象,避免切片代码复用:共性上提到基类支持多态(基类指针/引用操作派生对象)降低重复:统一接口、统一抽象。
2026-02-13 13:32:57
596
原创 非类型模板参数,模板特化及分离编译
一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。
2026-02-13 13:32:35
894
原创 List的模拟实现
“双向”:每个结点有“循环”:尾结点 next 指回 head,head prev 指回尾“哨兵 head”:不存真实数据,仅用于统一边界这样做的好处:空表/非空表逻辑完全一致插入删除不用特殊判断头/尾begin()end()写法自然。
2026-02-10 13:44:02
549
原创 容器适配器
template<class T,dequevectorlisttemplate<class T,deque不能用vector(没有pop_frontdeque(双端队列):是一种双开口的"连续"空间的数据结构,双开口的含义是:可以在头尾两端进行插入和删除操作,且时间复杂度为O(1),与vector比较,头插效率高,不需要搬移元素;与list比较,空间利用率比较高。deque并不是真正连续的空间,而是由一段段连续的小空间拼接而成的,实际deque类似于一个动态的二维数组。template<
2026-02-10 13:43:42
681
原创 C++模板 STL
template <typename T> typename 和 class 在模板参数中没有区别class 类名public:类名(T value) : _data(value) {}private:T _data;
2026-02-08 10:00:26
517
原创 C/C++内存管理
new自定义类型class A {public:发生的事(顺序很重要):分配sizeof(A)的内存调用构造函数A()delete自定义类型delete p;发生的事:调用析构函数~A()释放内存项目内置类型自定义类型new只分配内存分配内存 + 调构造delete只释放内存调析构 + 释放new[]分配连续内存多次调用构造delete[]释放连续内存多次调用析构new/delete。
2026-02-08 10:00:04
580
原创 动态内存管理
1.动态内存存在的原因2.动态内存函数的介绍(1)malloc函数(2)free函数(3)calloc函数(4)realloc函数eg:int main(){ //申请空间 int* ptr = (int*)malloc(40); if (ptr == NULL) //确保开辟空间成功 { perror("malloc"); return 1; } int i = 0; .
2022-05-17 14:42:49
299
原创 字符串和内存函数
//自己写的 自己追加自己是存在问题的 '\0'被覆盖了char* my_strcat(char* arr1, const char* arr2){ char* ret = arr1; assert(arr1 && arr2); //找追加起始地点 while (*arr1 != '\0') { arr1++; } //拷贝 while (*arr1++ = *arr2++) { ...
2022-05-04 22:13:43
112
原创 数据的存储
类型的基本归类整型家族char大多数编译器char代表signed charshort无符号unsigned short 有符号 (signed) shortint无符号unsigned int 有符号 (signed) intlong无符号unsigned long 有符号 (signed) long浮点数家族floatdoublelong double C99才定义的,了解即可构造类型指针类型空类型整型在内存中的存储..
2022-03-13 23:26:44
350
原创 数据结构课设
Huffman编/译码器【问题描述】利用Huffman编码进行通信可以大大提高信道利用率.缩短信息传输时间,降低传输成本,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个Huffman码的编/译码系统。【基本要求】一个完整的系统应具有以下功能:(l)I:初始化。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTre
2022-02-26 00:13:56
904
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅