自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【数据结构树第三弹】树形DP爆刷最大路径和 + 后序非递归模板横扫考研真题

状态转移:遍历 u 的子节点 v ,计算 d = d1[v] + w(u,v) ,更新 d1[u] 和 d2[u]。题目描述:给定一棵带权树(无向边),求最长路径的长度(路径可能仅含一个节点)。- 状态定义:对节点 u ,计算其贡献值(以 u 为起点的最大路径和)。- 全局答案:所有节点的 d1[u] + d2[u] 的最大值即为答案。题目描述:二叉树中任意节点值可能为负,求路径和的最大值(路径不可重复节点)。- 全局答案:所有可能的路径和的最大值(可能经过根节点)。

2025-02-16 16:04:04 730

原创 数据结构考研③|二叉排序树删除全解+AVL树四种旋转|哈夫曼WPL公式手撕|408真题逐行解析

/ 实际应用中可优化为O(1)更新。⚙️ AVL树平衡原理与四种旋转(LL/RR/LR/RL动图+代码)- 平均 O(log n) ,最坏 O(n) (退化成链表)

2025-02-11 18:45:16 611

原创 数据结构考研②|树与森林转换+线索二叉树构造|附真题代码题解析 

/ <当前结点, 父结点>// 删除的是根节点。已知森林的先根序列为ABCEFGD,中根序列为BEFGCDA,求该森林的树结构。// 0表示孩子,1表示线索。- 空指针利用率低(n个结点有2n个指针,实际使用n-1个)- 将第二棵树的根作为第一棵树根的最右兄弟(通过右指针连接)🧵 线索二叉树构造(中序/先序线索化代码+原理推导)- 断开根节点与右子树的连接,右子树作为新树的根。

2025-02-10 08:46:27 788

原创 数据结构考研专题:树与二叉树深度剖析(第一集)

又因为树中边数比结点数少1,即边数为 n - 1 ,而边数又等于 n1 + 2n2 (度为1的结点贡献1条边,度为2的结点贡献2条边)。例如,对于下标为i的结点,其左子结点下标为 2i ,右子结点下标为 2i + 1 ,父结点下标为 \lfloor\frac{i}{2}\rfloor。这是通过对二叉树每一层最多结点数进行求和得到的,即等比数列求和:1 + 2 + 2^2 + \cdots + 2^{h - 1} = \frac{1\times(1 - 2^h)}{1 - 2} = 2^h - 1。

2025-02-10 08:04:36 1130

原创 一文吃透数据结构中的栈

当遇到右括号时,检查栈顶元素是否为对应的左括号,若是则弹出栈顶元素,若不是或栈为空则返回false。遇到左括号时将其压入栈,遇到右括号时检查栈顶元素是否为对应的左括号,若是则弹出栈顶元素,若不是或栈为空则表示括号不匹配。- GetTop(S, &x) :获取栈顶元素的值并赋值给x,栈本身不发生变化,若栈为空则操作失败。- Pop(&S, &x) :从栈S中弹出栈顶元素,并将其赋值给x,若栈为空则操作失败。- Push(&S, x) :将元素x压入栈S中,若栈未满,x成为新的栈顶元素。

2025-02-08 19:03:02 936

原创 数据结构必学:彻底掌握KMP算法(附C++代码与考研模拟题)

它先调用 computeNext 函数计算出模式串的next数组,然后在匹配过程中,根据next数组来调整模式串的匹配位置,从而实现高效的字符串匹配。这个数组记录了小片段自身的匹配信息,有了它,在匹配过程中文本的指针就不用回溯了,大大提升了匹配速度,时间复杂度降低到 O(n+m)。- 最长公共前后缀:在一个字符串的所有前缀和后缀里,找长度最长且内容相同的那一对,它们的长度就是最长公共前后缀的长度。这段代码的逻辑是,在遍历模式串的过程中,通过不断调整j的值,找到当前位置的最长公共前后缀长度。

2025-02-08 15:51:41 767

原创 为什么你的对象‘复印机‘会泄露内存?—— 一文吃透C++拷贝构造函数

进行对象复制时,编译器会生成默认的拷贝构造函数,它只会进行浅拷贝,也就是复制指针地址。在C++编程的过程中,你是否遇到过这样的情况:满心欢喜地完成了对象的复制,结果修改其中一个,另一个也跟着莫名其妙地改变;在 SmartObject 类中使用 std::unique_ptr<int[]> 来管理 data ,可以避免手动管理内存带来的风险,如内存泄漏和悬空指针。在这个例子中, Document 类声明了一个拷贝构造函数,它接受一个 const Document& 类型的参数,这个参数表示要被复制的对象。

2025-02-08 12:42:51 691

空空如也

空空如也

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

TA关注的人

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