logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C++模板的进阶

时,可以使用模板特化(即 "特殊化" 某个类型的模板)。

#c++#开发语言
C++二叉搜索树详解

a、从根开始比较,查找,比根大则往右边走查找,比根小则往左边走查找。b、最多查找高度次,走到到空,还没找到,这个值不存在。

#算法
C++AVL树详解

二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。因此,两位俄罗斯的数学家和E.M.Landis在1962年发明了一种解决上述问题的方法:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1(需要对树中的结点进行调整,即可降低树的高度,从而减少平均搜索长度。一棵AVL。例:2.AVL树的插入A

#数据结构
C++红黑树详解

1.首先我们要确保插入的节点的颜色是红色的。这是因为如果插入的节点是黑色的会影响所有的路径,因为要保证每条路径上黑色节点的数目是一样的,插入的是红节点则只用看该路径是否满足红黑树的要求。一条最短的路径就是只有黑节点的路径。(红黑树是接近平衡的,AVL树是绝对平衡,但两者的性能相近,AVL树的旋转比较多且复杂 ,红黑树相对简单)2.如果要插入的父亲节点存在且颜色是黑色的,则无需进行调整,因为满足红黑

#c++#开发语言
C++用哈希表封装unordered_set和unordered_map

unorder_set和unordered_map的底层存储的都是一个哈希表,他们的插入、删除和查找本质上都是哈希表的插入、删除和查找。那么如何封unorder_set和unordered_map使他们复用哈希表呢?这就和封装map和set复用红黑树的原理基本一样。

#c++#散列表#哈希算法
C++红黑树封装set和map代码详解

我们都知道set和map的底层都是通过红黑树来实现的,前面讲解了红黑树的原理和代码,那么如何通过红黑树的代码封装实现set和map呢。

#java#开发语言
stack和queue的模拟实现

#pragma once#include<deque>#include<vector>#include<list>namespace my{//template<class T,class Contain = std::vector<T>>//template<class T, class Contain = std::list<T>>template<class T, class Contain

#windows#linux#服务器
到底了