数据结构
文章平均质量分 59
Advsance
我们的征途是星辰大海
展开
-
字典树,前缀树,某方面比哈希表还厉害的玩意
前缀树Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。它有3个基本性质:根节点不包含字符,除根节点外每一个节点都只包含一个字符。从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。每个节点的所有原创 2021-10-31 20:29:30 · 446 阅读 · 0 评论 -
随机数生成生成器和力扣按权重随机选择 528
随机数生成生成器和力扣按权重随机选择 528std::random_device{}() // 生成真随机数,在linux中这个是通过读取 /dev/urandom 进行获取的, 一般用于做随机数种子mt19937 // 用于生成伪随机数, 这个和rand()类似都是需要设置随机数种子。真随机数一般为操作系统生成,根据当前操作系统的中断,键盘鼠标的输入,文件句柄等等一系列随机事件组成。伪随机数一般由算法组成,mt19937实际上就是一个算法的名称。#include <iostream&g原创 2021-09-01 17:38:37 · 460 阅读 · 0 评论 -
二叉搜索树的建立
二叉搜索树的概念二叉搜索树又称二叉排序树, 最基本形态就是一颗空树,它具有以下一个性质:· 如果一个节点有左子树, 那么左子树上的节点值都小于该节点· 如果一个节点有右子树, 那么右子树上的节点值都大于该节点最优情况下,二叉搜索树为完全二叉树,其平均比较次数为:log2N最差情况下,二叉搜索树退化为单支树,其平均比较次数为:N#pragma once#include<iostr...原创 2020-01-16 15:50:21 · 337 阅读 · 0 评论 -
树与二叉树,堆
数概念及结构数是一个非线性的数据结构,它是由n(n>0)个有限节点组成一个具有层次关系的集合,只不过在计算机中的树看起来向倒挂的树;树中的各个部分因为比较简单,所以在此不做说明可以查看下图:节点的度:一个节点含有的子树的个数称为该节点的度;叶节点或终端节点:度为0的节点称为叶节点;树的度:一棵树中,最大的节点的度称为树的度;(例如上图最大度为3)森林:由m(m>=0)棵互不...原创 2019-08-01 21:08:43 · 368 阅读 · 0 评论 -
二叉树的一系类基本操作
二叉树的创建根据定义二叉树有左右两个节点,本文是用孩子双亲表示法创建的二叉树:完成树的定义,给出构造函数方便节点的创建struct BTNode { BTNode(int data) :_pleft(nullptr) ,_pRight(nullptr) ,_data(data) {} BTNode* _pleft; BTNode* _pRight; int _data;...原创 2019-09-07 11:36:54 · 147 阅读 · 0 评论 -
数据结构堆的创建
堆定义: 一颗完全二叉树,堆中的元素存储到一维数组中,对于任意节点,如果该节点小于其左右孩子,称之为小堆,如果任意一节点值大于其孩子,则称为大堆。(上面最大就是大堆,上面最小就是小堆)堆的特征:1.堆的顶端一定为最大的,或者最小的2.如果根节点满足堆,那么他的左子树和右字数也满足堆得性质。(小堆如果不满足,则该节点可以和孩子节点较小的相替换)3.堆创建的时间复杂度,因为叶子节点比度为2的节...原创 2019-09-11 09:01:25 · 680 阅读 · 0 评论 -
剑指offer数组中的查重
1.在一个长度为n的数组中,所有数组都在0到n-1,然而有些数子是重复的,但不知道有几个数字重复,也不知道每个数字重复了几次,请找出任意一个重复的数字,例如:如果输入长度为7的数组{2,3,1,0,2,5,3} 那么重复的数字就是2或者3;**思路一:**排个序,那么相同的元素肯定在一起。之后前后比较就可以了。void Qsort(vector<int>& arr, in...原创 2019-09-17 15:18:29 · 187 阅读 · 0 评论 -
vector的用法
vector 底层实现的方式为一个顺序表 容量按照vs每次1.5倍的增张,gcc为2倍实现不同那么增长方式就不同vector的构造方式 vector<int> ar1{ 1,2,3,4,5,6,7,8,9 }; vector<int> ar2(ar1.begin(), ar1.end()); vector<int> ar3(10, 1); vector...原创 2019-09-22 19:09:21 · 307 阅读 · 0 评论