数据结构
文章平均质量分 75
八宝咸鱼
这个作者很懒,什么都没留下…
展开
-
[算法][C++]如何在不改变原有链表的情况下判断两个单项链表的相交点
原题目,在不改变两条单项链表的情况下,判断相交点.据说是字节跳动的面试Easy题.class Node{public: int data; Node* next; Node(int data, Node* nextP = nullptr) :data(data), next(nextP) {}};先写一个节点类Node* sameAddress{ new Node{666,new Node{4,new Node{5}}} }; Node No_1{ 1原创 2021-07-10 16:48:34 · 147 阅读 · 0 评论 -
[C++][调试技巧] VS 中的 Debugger Visualizers 使用指南 (.natvis文件)
目录简介使用前的一些检查如何使用Visualizers(让.natvis文件生效)例子简介Debugger Visualizers 是微软在 Visual Studio 2013之后添加的功能.可让程序员使用XMAL定义调试视窗的数据结构显示.以更爽的方式来显示.Visual Studio 中STL容器的调试显示信息就是通过该功能实现的.注意!只支持结构体和类下面是示例图:自定义数据视图支持中文显示.当然,你也可以按照STL的格式来写,完全随你的心情使用前的一些检查1.首先,你需原创 2021-05-29 17:28:57 · 4775 阅读 · 0 评论 -
[灌水]比STL::map&STL::unordered_map效率高十倍的自写Hash_map
这个文章就是扯犊子用的,当然也附带源码.本文内的hash_map基于我之前发布的哈希表源码,改进而来.200万条数据,循环100次 也就是2亿次的覆盖or追加.第一列的第一个窗口是STL容器的效率,第一列第二个窗口是自写Hash_map的效率可以看到,速度相差十倍.而最下面的那个窗口则是检测数据写入是否成功.这2亿条数据,只要有一条写入不成功,都会直接退出程序并打印失败字符串.该hash_map之所以比STL的效率高,是因为哈希冲突的几率低,依靠最优指数解决的哈希冲突.不保证该办法应用于所有原创 2021-05-28 11:52:16 · 320 阅读 · 0 评论 -
[C++] LinkList:双向不循环链表的原理和实现(基础)
链表作为计算机中,经典的数据结构.也是程序员的基本功,如果你连链表都不会写,那么最好不要去面试.它是抽象层面的线性表数据结构,在物理上存储,则并不连续. 因为new(malloc)出什么地址,是归计算机分配你只能决定申请多少个,而不是申请什么地址.附双向不循环链表原理图(使用MicrosoftWindows10自带的pint工具绘制)//如果图片看不清,推荐使用imagus插件或者下载原理图原件即便代码部分不熟练,只要记的实现原理,便可以说是掌握链表结构了.链表结构分为多种.{单向不循环链...原创 2021-05-08 15:44:04 · 456 阅读 · 0 评论 -
[C++]迭代器iterator的实现(支持编译器for块简易写法)
什么是迭代器?以下是维基百科的简介.迭代器(iterator),是确使用户可在容器对象(container,例如链表或数组)上遍访的对象[1][2][3],设计人员使用此接口无需关心容器对象的内存分配的实现细节。其行为很像数据库技术中的光标(cursor),迭代器最早出现在1974年设计的CLU编程语言中。在各种语言实现迭代器的方式皆不尽同,有些面向对象语言像Java、C#、Ruby、Python、Delphi都已将迭代器的特性内置语言当中,完美的跟语言集成,我们称之隐式迭代器。但像是C++语言本身原创 2021-05-12 19:22:30 · 1528 阅读 · 0 评论 -
[C++] Hash_map 实现原理和源码[散列表][散列映射][泛式数据支持][STL]
Hash_map作为非线性数据结构.在阅读前,你需要确定你已经真正的理解了什么是指针.并且在不看任何源码的情况下,通过原理实现出链表数据结构.如果不太确定的话,建议以下文章:[C/C++]指针的原理和对指针的运用及理解(包括函数指针和多级指针)[C++]什么是引用,以及引用和指针的关系(对内存和指针运用的理解)[C++] LinkList:双向不循环链表的原理和实现(基础)或者不想看长篇大论,可以直接滑动到最下面,copy源码.源码内有注释和例子,复制粘贴就能用.如果可以,请点个免费的赞,原创 2021-05-22 18:13:00 · 826 阅读 · 1 评论 -
[HashCollision][哈希冲突][HashValue]:最佳哈希质数
个人使用:解决哈希冲突的方法有很多,所以,希望大家可以根据自己心中所想来解决,此方法非唯一标准.规则:列表中的每个数字都是质数每个数字都略小于前一个数字的两倍每个数字都尽可能远离最接近的2的2次方所有符合上面三个标准的数字,都可以在各自的区间极少的减轻哈希冲突.可以按照这个标准,来通过电脑计算得出.用以下列表给出的质数,可以让你的哈希函数计算得出的哈希值,在下列区间内,最优的解决哈希冲突(HashCollision)下限(DEC)上限(DEC)区间相对偏差(%)质数原创 2021-05-22 17:43:09 · 706 阅读 · 0 评论