【C++】红黑树 红黑树:是一种二叉搜索树,但在每个节点上增加了一个存储位表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而是接近平衡的。
【C++】692.前K个高频单词 使用map统计单词的次数。map是按单词从小到大排序的。对单词再按照次数从大到小排序。有两种方法:将pair键值对放到vector中,用sort排序,还要写一个按int比较的仿函数,因为sort是快排实现的,不稳定,排完了,无法保证相对顺序的不变,所以还需要对次数相同的按字母排。用multimap按次数从大到小排序(由于次数可以相同所以用multimap),multimap中比较器默认是less,是按从小到大排序的,所以,我们把multimap中比较器改成greater就是按从
【C++】map和set的介绍和使用 此篇主要对set和map、multiset和multimap做了简单的理解和相关应用的举例。关于其他的接口,由于和STL中vector、list、string等接口类似,这里没有做具体讲解,只做了特别的几个接口的说明。关于set和map更深层次的探索,请看下篇。
【C++二叉树】二叉树的前序遍历、中序遍历、后序遍历递归与非递归实现 前序遍历、中序遍历、后序遍历的递归实现很简单,但是非递归迭代实现就有稍微有点难理解了。用了同一种思路,把树分为左路节点和左路节点的右子树,针对这三种遍历方式都适用。从根本上就是用循环模拟递归的过程。后序遍历相对前序和中序又稍微复杂,要考虑好访问节点的条件,避免死循环。多画图模拟迭代的过程更容易理解。
【C++二叉树】105.从前序与中序遍历序列构造二叉树 prei要传引用,因为递归过程中要使用上一次递归的prei,如果传值,递归就找不到上一次的prei。前序遍历访问方式:根-左子树-右子树。中序遍历访问方式:左子树-根-右子树。根据前序遍历和中序遍历构建二叉树。
【C++二叉树】JZ36 二叉搜索树与双向链表 prev传参要传引用,因为要保证在递归的过程中,prev能正确的使用,如果是传值,递归过程就找不到上一次递归使用的prev了。主要使用了双指针的解题思想。
【C++二叉树】236.二叉树的最近公共祖先 这道题的命名风格很重要,在判断p、q的位置时,分别定义了四个布尔值,命名清晰,读起来也很好理解。如果细分的话可以分为以上三种情况,但是本题就是一个普通二叉树,所以我们考虑第三种情况就可以了。一个在“我”的左子树,一个在“我”的右子树,则“我”是祖先。都在“我”的左子树,则递归到左子树中查找。都在“我”的右子树,则递归到右子树中查找。情况一:如果树为二叉搜索树。情况三:如果为普通二叉树。情况二:如果为三叉链。
【C++二叉树】606.根据二叉树创建字符串 3、将整数转化为字符串,这里用了C++String库里的to_string函数,是C++11的用法。1、题目要求将二叉树转换为字符串输出,所以定义了一个string对象str。本题主要理解给的两个示例说明就可以了。2、字符串追加这里用了“+=”。
【二叉树进阶】二叉搜索树 2. 二叉搜索树的实现1. 二叉搜索树概念二叉搜索树(BST,Binary Search Tree):可以是一颗空树,满足以下性质:根节点的值大于左子树上所有节点的值,小于右子树上所有节点的值。它的左子树和右子树也分别为二叉搜索树。它的中序遍历是有序的:0 1 2 3 4 5 6 7 8 9 ,所以也称为二叉排序树或二叉查找树。2. 二叉搜索树的实现。
【C++】深究C++三大特性之多态 总结一下派生类的虚表生成:a.先将基类中的虚表内容拷贝一份到派生类虚表中 b.如果派生 类重写了基类中某个虚函数,用派生类自己的虚函数覆盖虚表中基类的虚函数 c.派生类自己新增加的虚函数按其在派生类中的声明次序增加到派生类虚表的最后。需要说明的是这个打印虚表的代码经常会崩溃,因为编译器有时对虚表的处理不干净,虚表最后面没有放nullptr,导致越界,这是编译器的问题。虚表存的是虚函数指针,不是虚函数,虚函数和普通函数一样的,都是存在代码段的,只是他的指针又存到了虚表中。如果是普通对象是一样快的。
【C++】深究C++三大特性之继承 如果B要继承A,b就必须去调用父类A的构造函数完成父类成员部分的初始化,但是由于A的构造函数是private的,private成员无论以什么方式继承在子类中都是不可见的。但是我们看父类的拷贝构造,需要接收的是一个Person类的对象。同理,我们并没有实现子类的析构函数,编译器会生成默认的,这个默认的会调用父类的析构函数完成清理父类的成员,自己的成员调用这个默认的完成清理。上述代码,我们并没有写Student的拷贝构造,那么编译器就会生成默认的,这个默认的就会去调父类的拷贝构造去拷贝父类那部分的成员。