-
【数据结构】二叉树
所属栏目:[安全] 日期:2020-12-15 热度:106
二叉树总结 1. 二叉树的重要性质 一个二叉树的第i层最多有 2 i ? 1 个结点(i=1) 深度为k的二叉树最多有 2 k ? 1 个结点(k=1) 对于任何非空二叉树有 n 0 个叶结点, n 2 个度为2的结点,那么总有关系: n 0 = n 2 + 1 2.对二叉树的操作 Boolean IsEmpty(BinTr[详细]
-
【数据结构】队列
所属栏目:[安全] 日期:2020-12-15 热度:113
数据结构队列Queue function Queue() { // 数据存储 this.dataStore = [];}Queue.prototype = { constructor: Queue,add: function(array) { this.dataStore = array; },// 排列 enqueue: function( element ) { this.dataStore.push( element ); },//随即读[详细]
-
【数据结构】 两个栈实现一个队列【面试】
所属栏目:[安全] 日期:2020-12-15 热度:54
栈结构:先进后出,后进先出,只允许在栈尾操作。 队列:先进先出,在队尾入队,在队头出队。 要想用两个栈实现一个队列,就需要使用一个相当于中间量的结构进行队列的入队和出队操作。 用图形象化为: 这样问题就从图中得出了思路: 入队操作:把入队元素一[详细]
-
【数据结构】 一个数组实现两个栈【面试】
所属栏目:[安全] 日期:2020-12-15 热度:124
以前,我们实现一个栈,轻轻松松,无需考虑太多因素,即可实现。 现在,要求在一个数组里实现两个栈,那么在数组里怎么实现栈呢? 无非就是下标索引,方法也不局限一种,例如:用奇数下标作为栈s1的结构,用偶数作为s2的结构;再者:一前一后的结构,栈s1从[详细]
-
【数据结构】 栈
所属栏目:[安全] 日期:2020-12-15 热度:113
栈结构,通俗易懂,特点:先进后出,后进先出。 以下,仅对于栈结构常用的操作进行实现 包括: ???????? 入栈(push),出栈(pop),判空(empty),栈顶元素(GetTop) #include?iostreamusing?namespace?std;templateclass?Tclass?Stack{public:????Stack([详细]
-
【数据结构】 二叉树
所属栏目:[安全] 日期:2020-12-15 热度:93
二叉树概念 在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 二 叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树[详细]
-
【数据结构】位图BitMap与布隆过滤器BloomFilter
所属栏目:[安全] 日期:2020-12-15 热度:115
??? 首先先看一下下面这个腾讯的面试题: 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。?【腾讯】 思路一: ??? 最容易想到的解法就是遍历所有的40多亿个整数,然后一个一个判断。但是这个需要花费的内[详细]
-
【数据结构】常见的7种比较排序算法1
所属栏目:[安全] 日期:2020-12-15 热度:140
● 直接插入排序(Insert Sort) 1、算法描述: ? ? ? 该算法是一种简单直观的是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上只需用到O(1)的额外空间的排序,因而在从后向前扫描过程中,需要反复把[详细]
-
【数据结构】常见的7种比较排序算法2
所属栏目:[安全] 日期:2020-12-15 热度:183
● 快速排序(Quick Sort) 1、算法描述: ? ?在平均状况下,排序n个数据要 O(nlg(n)) 次比较。在最坏状况下则需要 O(n^2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他 O(nlg(n)) 算法更快,因为它的内部循环(inner loop)可以在大部分的[详细]
-
【数据结构】非比较排序的算法实现(包括计数排序、计数排序)
所属栏目:[安全] 日期:2020-12-15 热度:192
计数排序: #define?_CRT_SECURE_NO_WARNINGS?1#includeiostreamusing?namespace?std;#includeassert.h#includevectorvoid?Print(vectorint??a){????for?(int?i?=?0;?i??a.size();?i++)????{????????cout??a[i]??"??";????}????cout??endl;}void?CountSort(v[详细]
-
【数据结构】非比较排序算法(实现计数排序和基数排序)
所属栏目:[安全] 日期:2020-12-15 热度:122
● 计数排序 1、算法思想: ?????? 计数排序是直接定址法的变形。通过开辟一定大小的空间,统计相同数据出现的次数,然后回写到原序列中。 2、步骤: 1)找到序列中的最大和最小数据,确定开辟的空间大[详细]
-
【数据结构】二叉搜索树
所属栏目:[安全] 日期:2020-12-15 热度:66
● 二叉搜索树满足以下条件的二叉树: 1、每个节点都有一个作为搜索依据的关键码(key),所有节点的关键码互不相同。 2、左子树上所有节点的关键码(key)都小于根节点的关键码(key)。 3、右子树上所有节点的关键码(key)都大于根节点的关键码(key)。[详细]
-
【数据结构】二叉搜索树
所属栏目:[安全] 日期:2020-12-15 热度:167
● 二叉搜索树满足以下条件的二叉树: 1、每个节点都有一个作为搜索依据的关键码(key),所有节点的关键码互不相同。 2、左子树上所有节点的关键码(key)都小于根节点的关键码(key)。 3、右子树上所有节点的关键码(key)都大于根节点的关键码(key)。[详细]
-
【数据结构】AVL树
所属栏目:[安全] 日期:2020-12-15 热度:188
1、AVL树简介 ????? AVL树本质上还是一棵二叉搜索树,又称高度平衡的二叉搜索树。它能保持二叉树的高度平衡,尽量降低二叉树的高度,减少树的平均搜索长度。对于二叉搜索树的介绍和实现,可查看本人上一篇博客。 2、AVL树的特点 1)本身首先是一棵二叉搜索树[详细]
-
【数据结构】AVL树
所属栏目:[安全] 日期:2020-12-15 热度:115
1、AVL树简介 ????? AVL树本质上还是一棵二叉搜索树,又称高度平衡的二叉搜索树。它能保持二叉树的高度平衡,尽量降低二叉树的高度,减少树的平均搜索长度。对于二叉搜索树的介绍和实现,可查看本人上一篇博客。 2、AVL树的特点 1)本身首先是一棵二叉搜索树[详细]
-
【HDU 3328】【数据结构】Flipper
所属栏目:[安全] 日期:2020-12-15 热度:114
? ? ? ? 就是一个翻牌子的问题,写的略繁琐,因为只是实验室水题,所以不优化了,L是从最左翻面并且覆盖到第二堆上,以此类推,模拟就好。 #include "stdio.h"#include "stack"#include "queue"using namespace std;int main(int argc,char const *argv[]){[详细]
-
【1509】【数据结构】Windows Message Queue
所属栏目:[安全] 日期:2020-12-15 热度:124
其实就是对于操作符进行重载,然后用个优先队列,水之。 ?还有先后顺序的优先级不要问了。 ?? #include iostream#include queue#include algorithm#include cstringusing namespace std;struct node{char name[1000];int parameter;int priority;int num; //[详细]
-
【数据结构】红黑树
所属栏目:[安全] 日期:2020-12-15 热度:61
红黑树是一棵二叉搜索树,它在每个节点上增加了一个存储位来表示节点的颜色,可以是Red或Black。通过对任何一条从根到叶子简单路径上的 颜色来约束,红黑树保证最长路径不超过最短路径的两倍,因而近似于平衡。 红黑树是满足下面红黑性质的二叉搜索树 每个节[详细]
-
【数据结构】二叉搜索树
所属栏目:[安全] 日期:2020-12-15 热度:80
二叉搜索树的性质: 每个节点都有一个作为搜索依据的关键码(key),所有节点的关键码互不相同。 左子树上所有节点的关键码(key)都小于根节点的关键码(key)。 右子树上所有节点的关键码(key)都大于根节点的关键码(key)。 左右子树都是二叉搜索树。 /[详细]
-
【数据结构】位图
所属栏目:[安全] 日期:2020-12-15 热度:61
位图(bitmap),就是用一块内存区域的每个比特表示一个对象的数据结构。 优点是速度快,内存空间占用小,能表示大范围的数据。 假设要对0到一千万范围内的、没有重复元素的正整数排序,则利用位图数据结构很合适。 应用场景: 给40亿个不重复的无符号整数,[详细]
-
【数据结构】布隆过滤器
所属栏目:[安全] 日期:2020-12-15 热度:83
布隆过滤器(Bloom Filter)是由布隆(Burton Howard Bloom)在1970年提出的。 它实际上是由一个很长的 二进制向量 和 一系列随机映射函数 组成, 布隆过滤器可以用于检索一个元素是否在一个集合中 。它的 优点是空间效率和查询时间都远远超过一般的算法,缺[详细]
-
【数据结构】树和二叉树
所属栏目:[安全] 日期:2020-12-15 热度:113
?树 ? ? ? ?树是一种典型的非线性数据结构,它能够很好地应用于描述分支和层次特性的数据集合,是由一个或多个结点组成的有限集合T, 一棵树至少有一个结点。 ?? ? ? ? ? 树的度 , 一个结点的子树数目就是该结点的“度”,在这个结点下面直接与这个结点连着[详细]
-
【数据结构】快速排序
所属栏目:[安全] 日期:2020-12-15 热度:194
选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素, 此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。 public class quickSort { inta[][详细]
-
【数据结构】二叉搜索树
所属栏目:[安全] 日期:2020-12-15 热度:73
二叉搜索树,又叫二叉排序树,二叉查找树。它有以下特点: 左子树的值小于根节点的值,右子树的值大于根节点的值;二叉搜索树中序遍历的结果 就是 一 个升序序列。 当然,空树也是一个二叉搜索树。 全局满足二叉搜索树的性质,局部也应该满足。 既然有以上性[详细]
-
【数据结构】红黑树
所属栏目:[安全] 日期:2020-12-15 热度:124
红黑树是一棵二叉搜索树,它在每个节点上增加了一个存储位来表示节点的颜色,可以是红色也可以是黑色。通过对任何一条从根到叶子简单路径上的颜色来约束,红黑树保证最长路径不超过最短路径的两倍,因而近似于平衡。 红黑树满足下面的性质 1 . ? 每个节点,[详细]