摘要: 1.平衡二叉树 1.1概述 平衡二叉树(Balanced Binary Tree)是一种特殊的二叉搜索树,它的每个节点的左右子树的高度差的绝对值不超过 1,并且左右子树也都是平衡二叉树。这意味着所有的平衡二叉树都必然是二叉搜索树,但并非所有的二叉搜索树都是平衡二叉树。平衡二叉树的主要目的是避免二叉搜 阅读全文
posted @ 2026-01-06 14:49 r5ett 阅读(15) 评论(0) 推荐(0)
摘要: 1.二叉搜索树概述 二叉搜索树(Binary Search Tree, BST)也叫二叉排序树(Binary Sort Tree),是一种特殊的二叉树,它满足以下性质: 左子树:左子树上所有节点的值都小于根节点的值。 右子树:右子树上所有节点的值都大于根节点的值。 递归性质:左子树和右子树本身也是二 阅读全文
posted @ 2026-01-06 14:49 r5ett 阅读(2) 评论(0) 推荐(0)
摘要: 1.二叉树 二叉树是一种树形数据结构,其中每个节点最多有两个子节点(0,1,2),分别称为‌左子节点和‌右子节点。二叉树由一个根节点和两棵互不相交的子树组成,这两棵子树分别称为根的左子树和右子树。二叉树的定义可以递归地描述:二叉树是一个有限的节点集合,这个集合可以是空集(即没有节点),或者由一个根节 阅读全文
posted @ 2026-01-06 14:49 r5ett 阅读(7) 评论(0) 推荐(0)
摘要: 主要根据https://subingwen.cn/data-structure/ 进行学习 1.树的定义 1.1定义 树(Tree)是n(n>=0)个节点的有限集。当n=0时称为空树。 对于上面这棵树而言,A是它的根节点,左侧橙色部分和右侧黄色部分分别是这棵树的两个子树,而分别在以B、C为根节点的子 阅读全文
posted @ 2026-01-06 14:49 r5ett 阅读(5) 评论(0) 推荐(0)
摘要: 通过对象调用函数,对象的地址就是this 阅读全文
posted @ 2026-01-06 14:48 r5ett 阅读(2) 评论(0) 推荐(0)
摘要: 对象模型 只要符合1.通过指针 2.向上 3.调用虚函数 这三个条件,编译器就会把调用动作编译成((p->vptr)[n])(p)或( p->vptr[n] )(p) 阅读全文
posted @ 2026-01-06 14:48 r5ett 阅读(2) 评论(0) 推荐(0)
摘要: 1.数量不定的模板参数 2.auto 3.range-base for 4.reference 阅读全文
posted @ 2026-01-06 14:48 r5ett 阅读(5) 评论(0) 推荐(0)
摘要: 1.类模板 2.函数模板 3.成员模板 4.模板特化 泛化: 它对任意类型 Key 都有效,但里面什么都没实现 意思是:“对于任何我不知道怎么算哈希值的类型,我先提供一个空框架。” 这叫泛化版本(generalization),因为它适用于“所有可能的 Key”,是最广义的、默认的版本。 如果你用一 阅读全文
posted @ 2026-01-06 14:48 r5ett 阅读(2) 评论(0) 推荐(0)
摘要: 1.function-like classes,所谓仿函数 一个对象能够像函数一样被调用,关键就是重载(重定义)operator()。 比如: template struct identity { const T& operator()(const T& x) const { return x; } 阅读全文
posted @ 2026-01-06 14:48 r5ett 阅读(3) 评论(0) 推荐(0)
摘要: 1.pointer-like classes,关于智能指针 类型名 对象名(参数列表); 如 int x(5); // 调用 int 的构造函数(其实就是初始化),x = 5 string s("hello"); // 调用 string 的构造函数,s 被初始化为 "hello" complex 阅读全文
posted @ 2026-01-06 14:48 r5ett 阅读(2) 评论(0) 推荐(0)