本文源码:GitHub·点这里||GitEE·点这里一、队列结构1、基础概念队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。2、特点描述队列是一个有序列表,可以用数组或是链表来实现,遵循先进先出的原则。即:先进入队列的数据,会先取出;后
分类:
编程语言 时间:
2020-09-17 19:41:15
阅读次数:
93
有时,我们要维护一个数据结构,支持区间对x取min。 如果只有区间max/min查询,则可以把区间的所有节点的值对x取min。 标记可以合并,这样子时间复杂度是nlogn的。 但是如果有了区间和查询,则不能这么做。 虽然标记可以合并,但是无法更新区间最大值。 考虑维护区间严格次大值m2和区间严格次大 ...
分类:
其他好文 时间:
2020-09-17 19:22:52
阅读次数:
27
# 前言
> 本文收录于专辑:[http://dwz.win/HjK](http://dwz.win/HjK),点击解锁更多数据结构与算法的知识。
你好,我是彤哥。
上一节,我们一起学习了关于跳表的理论知识,相信通过上一节的学习,你一定可以给面试官完完整整地讲清楚跳表的来龙去脉,甚至能够边讲边画图。
栈的定义 栈是只允许在一端进行插入和删除的线性表。有一个栈顶和栈底。栈顶是允许插入和删除的那一端,栈底是不允许插入和删除的那一端。如果一个栈不包括任何元素,就是一个空表也就是空栈。 栈的特点是先进先出。 (2 ...
分类:
其他好文 时间:
2020-09-17 17:51:55
阅读次数:
21
生成器 一、生成器 定义: 生成器与迭代器看成是一种。生成器的本质就是迭代器。 唯一的区别: 生成器是自己用python写代码构建的数据结构。迭代器都是(系统)提供的,或者转化而来的 获取生成器的三种方式: 生成器函数 生成器表达式 python内部提供部分 二、实现生成器函数 生成器函数也就是生成 ...
分类:
编程语言 时间:
2020-09-17 14:14:18
阅读次数:
30
因为在复习数据结构和C语言(宁夏大学),试卷上的算法题只可以使用纯C去完成, 所以这里为了以防万一,复习一下二重指针。 需求: 将某个变量传参之后, 需要改变这个变量的地址, 将本变量指向一个新的地址。 typedef struct SqStack { int data[maxSize]; int ...
分类:
其他好文 时间:
2020-09-17 14:10:39
阅读次数:
33
redis是一款基于非关系型的高性能k-value内存数据库,其性能优越,数据存储在内存中,读写性能非常高,相比于memcached(只支持string),其支持更加丰富的数据结构,如string,list,hash,set,zset等redis不仅支持更多的数据结构,其与memcached最明显的区别在于memcached无法持久化数据,一旦重启后数据便会丢失,而redis提供了两种不同的模式来
分类:
其他好文 时间:
2020-09-17 13:09:36
阅读次数:
26
数据结构八大排序中的图解 1.排序的基本概念 2.交换类排序法 ? 1-冒泡排序 ? 2-快速排序 #include <stdio.h> #include <stdlib.h> #include <string.h> int stack[512]; int top = 0; void init_st ...
分类:
编程语言 时间:
2020-09-17 12:34:28
阅读次数:
20
set/weakset map/weakset set用法 定义:是ES6的一种新的数据结构及(值的集合) Set跟其他数据结构不同的地方就在于:它的值不会有重复项。 (1)使用: 1 2 3 4 let set = new Set([13,3,4,5]) set.add(3)<br data-fi ...
分类:
其他好文 时间:
2020-09-17 12:29:28
阅读次数:
30
Redis 布隆过滤器 应用场景 ? 我们知道可以用HyperLogLog数据结构用来进行估数, 它非常有价值,可以解决很多精度不高的统计需求。 ? 但是如果我们想知道某一个值是不是已经在HyperLogLog结构里面了, HyperLogLog就不能为力了, 它只提供了pfadd和pfcount方 ...
分类:
其他好文 时间:
2020-09-17 12:18:47
阅读次数:
21