循环队列的实现
前言 本文是《栈与队列》练习题的延续,前文讲到几道经典练习题,但是并未对循环队列进行讲解。博主原本想偷懒不写了,结果这两天重新看到这道题的时候有些生疏,看来还是没有对该题目熟稔于心,本想看看博客笔记进行知识点回顾,结果发现自...
前言 本文是《栈与队列》练习题的延续,前文讲到几道经典练习题,但是并未对循环队列进行讲解。博主原本想偷懒不写了,结果这两天重新看到这道题的时候有些生疏,看来还是没有对该题目熟稔于心,本想看看博客笔记进行知识点回顾,结果发现自...
一、概念介绍 大家中学都学过,就不过多介绍了,大致提两点: 质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。 &nbs...
自定义链表 struct mylistnode { int nvalue; mylistnode *pprevnode; mylistnode *pnextnode; }; void addtotail(mylistnode *...
普通的hash函数是和机器个数n相关的。hash(val)=key,得到key之后,key%n就找到对应的机器。但是如果机器个数变化就会导致大量的数据迁移。 一致性hash算法通过一个叫作一致性hash环的数据结构实现。这个环的起点是0,终...
迪杰斯特拉(dijkstra)算法是由荷兰计算机科学家狄克斯特拉于1959年提出的。是寻找从一个顶点到其余各顶点的最短路径算法,可用来解决最短路径问题。 迪杰斯特拉算法采用贪心算法的策略,将所有顶点分为已标记点和未标记点两个集合,从起始点开...
题目描述 1、定义一个顺序存储结构或者数组 2、主函数已经给出,提交代码不需要提交主函数 3、需要完成未给出的二分查找实现 4、中间处理:二分或折半查找,通过二分查找:理解查找成功的asl和查找失败的asl。 5、参考程序给出的输出实现二分...
1. 图解两个有序数组归并 在看归并排序时,我们首先要能够归并两个有序数组,换句话说就是合并两个有序数组为一个有序数组。 例如归并以下两个数组 a[5] = {3,5,7,8,10} b[7] = {1,2,4,5,8,11,12,} 主要...
什么是动态规划? 动态规划(英语:dynamic programming,简称 dp),是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问...
目录 一、红黑树简介 二、为什么需要红黑树? 三、红黑树的特性 四、红黑树的效率 4.1 红黑树效率 4.2 红黑树和avl树的比较 五、红黑树的等价变换 六、红黑树的操作 6.1 旋转操作 6.2 插入操作 6.2.1 插入操...
注:本文比较硬核但是很值得大家花心思看完,看完你一定会有所收获的 红黑树是面试中一个很经典也很有难度的知识点,网传字节跳动面试官最喜欢问这个问题。很多人会觉得这个知识点太难,不想花太多功夫去了解,也有人会认为这个数据结构在日常开发中使用的很...