数据结构
数据结构之树(Huffman tree(赫夫曼树 / 霍夫曼树 / 哈夫曼树 / 最优二叉树))
赫夫曼树概述 HuffmanTree因翻译不同导致其有多个名字:赫夫曼树、霍夫曼树、哈夫曼树 赫夫曼树又称最优二叉树,是一种带权路径长度 最短的二叉树。 所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。 树的路径长度 ......
数据结构
数据结构 定义 数据结构就是设计数据以何种方式组织并存放在计算机中 eg:列表,字典,元组,堆,栈,队列 程序 = 数据结构(静态的数据) + 算法(动态的操作) 分类 逻辑结构 线性(一对一) 非线性 树结构(一对多) 图结构(多对多) 集合结构(除属于同一集合,别无其它关系) 存储结构(物理结构 ......
数据结构:栈与队列-详解循环队栈
《详解循环队栈》 目录: 循环队列的定义及其特点 循环队列的实现 完整Demo 运行截图 小结 参考文献 一、循环队列的定义及其特点 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插 ......
数据结构与算法 | 二分搜索(Binary Search)
文承上篇,搜索算法中除了深度优先搜索(DFS)和广度优先搜索(BFS),二分搜索(Binary Search)也是最基础搜索算法之一。二分搜索也被称为折半搜索(Half-interval Search)也有说法为对数搜索算法(Logarithmic Search),用于在已排序的数据集中查找特定元素... ......
05数据结构(栈、队列、数组、链表)
数据结构 一、什么是数据结构 计算机底层存储、组织数据的方式。 是指数据相互之间是以什么方式排列在一起的。 数据结构是为了更加方便的管理和使用数据,需要结合具体的业务场景来进行选择。 一般情况下,精心选择的数据结构可以带来更高的运行或者存储效率。 如何学习数据结构: 每种数据结构长什么样子? 如何添 ......
学堂在线 PA - 数据结构 - Range
这是项目网站,伙伴们可以注册并提交,在北京的同学,据说有 On Campus 的机会。 项目地址:https://dsa.cs.tsinghua.edu.cn/oj/problem.shtml?id=1142 题目要求 Python 版本代码 相对比较简单,就切磋切磋。 ''' 学堂在线 PA - ......
数据结构与算法-cnblog
数据结构与算法 课程笔记 树与二叉树 树的深度与高度 高度就可以理解为深度 看层数: 如果根结点第0,层数=深度=高度-1 如果根结点第1,层数=深度=高度 深度定义是从上往下的,高度定义是从下往上的 ......
可持久化数据结构学习笔记
可持久化线段树 前置知识: 动态开点线段树 基本介绍 可持久化线段树可以维护多个版本信息。 举个例子: 你需要维护这样的一个长度为 \(N\ (1\le n\le 10^6)\) 的数组,支持如下几种操作 在某个历史版本上修改某一个位置上的值 访问某个历史版本上的某一位置的值 每次操作后生成一个新的 ......
数据结构之树(二叉树)
什么是二叉树(binary tree)? 在树结构的基础上,要求其中每个节点最多有两个子节点(一个节点最多有2个边)。 二叉树由根节点和若干个左子树和右子树构成,这些子树也都是二叉树。二叉树可以为空树,也可以只包含一个根节点。 为什么树形结构常用二叉树呢? 就是为了省空间。n叉树,n越大就需要更多的 ......
NOIP[区间数据结构类问题]
平面最近点对 经典的分治问题,把所有的点按照 \(x\) 排序,然后分治处理两个子区间,然后枚举离中心少于已知最小值的点,判断能否出现更小值。 int n,temp[250000]; struct node{ int x,y; }a[500500]; bool cmp(node l,node r){ ......
【数据结构】- 并查集
并查集 简介 并查集是可以维护 元素集合 的数据结构。并查集通过把一个集合作为一棵树的方式,维护一个 森林(这暗含并查集可以维护连通块个数,如在 kruskal 中,通过并查集维护连通块个数就能快速判断循环退出条件),并使用树的 根节点代表各集合。这样一棵树的节点就对应该集合中的元素。可以方便地支持 ......
基础数据结构:KMP
1、KMP 以AcWing.831为例, 给定一个模式串S,以及一个模板串P,所有字符串中只包含大小写英文字母以及阿拉伯数字。 模板串P在模式串S中多次作为子串出现。 求出模板串P在模式串S中所有出现的位置的起始下标。 输入格式第一行输入整数N,表示字符串P的长度。 第二行输入字符串P。 第三行输入 ......
基础数据结构:Trie树
1、Trie树 以AcWing.835为例, 维护一个字符串集合,支持两种操作: “I x”向集合中插入一个字符串x;“Q x”询问一个字符串在集合中出现了多少次。共有N个操作,输入的字符串总长度不超过10^5,字符串仅包含小写英文字母。 输入格式第一行包含整数N,表示操作数。 接下来N行,每行包含 ......
数据结构 第四章 树 作业
4-1 计算二叉树最大的宽度 二叉树的最大宽度是指二叉树所有层中结点个数的最大值。例如:下面二叉树的宽度为4. 输入二叉树的完全前序序列建立一棵二叉树(上机作业2:二叉树的建立和遍历),编写算法计算并输出二叉树的宽度。 输入格式: 二叉树数据元素为单个字符且各不相同,取值范围为AZ,az,二叉树可以 ......
重学递归思想,体悟数据结构奥妙
说来好笑,暑假一腔热血想进acm,在学插入排序,归并排序这两个玩意,耗费了我整整一个星期都没搞懂,一度让我想放弃,觉得自己刚开始学算法就被打败了,不配coding了,后面请教别人,才发现里面有个递归思想我还不会,所以很痛苦。。。暑假结束了,递归我还没那么懂,今天来复仇了 先说说递归,本质上就是一个函 ......
数据结构与算法(LeetCode) 第二节 链表结构、栈、队列、递归行为、哈希表和有序表
一、链表结构 1.单向链表节点结构 public class Node{ public int value; public Node next; public Node(int data){ value=data; } } 2.双向链表节点结构 public class DoubleNode{ pu ......
数据结构与算法(LeetCode)第一节:认识复杂度,对数器,二分法与异或运算
一、认识复杂度 1.评估算法优劣的核心指标: 时间复杂度:当完成了表达式的建立,只要把最高阶项留下即可。低阶项都去掉,高阶项的系数也去掉,记为O(去掉系数的高阶项); 时间复杂度是衡量算法流程的复杂度的一种指标,该指标只与数据量有关,与过程之外的优化无关 常见的时间复杂度(从好到坏) O(1) ......
[考研] 数据结构
针对数据结构的部分学习笔记。 栈 出栈排列个数:\(C_{2n}^n\),卡特兰数 栈模拟 中缀转后缀 原理: 中缀转后缀的原理是单调栈(维护一个优先级递增的栈),从栈底到栈顶的优先级必然递增,输出时可以保证优先级高的先输出(出栈)。中缀表达式和后缀表达式的不同仅在于符号位置不同,数字之间相对顺序是 ......
西北电专大二电院_数据结构上机报告记录_第二次上机报告
第二次上机报告 只要求提交了顺序串和顺序栈的基本操作的实现,这里把剩下两个也补充上去 顺序栈——进制转换 1. 问题描述 本程序基于栈功能实现一个进制转换程序。(用顺序栈完成此题) InitStack()函数用于构造一个空栈; StackEmpty()函数用于判断栈是不是空栈; Push()函数实现 ......
西北电专大二电院_数据结构上机报告记录_第一次上机报告
数据结构是最近纳入电院的必修主课,但是其期末考核是笔试形式(,日常有上机安排。 这门课还是需要一定的课后上机练习和调试来增加对其的认识程度、发现自己欠缺的知识、可能犯下的错误,包括但不限于语法等 这里主要收录几次上机安排的报告和自己的答案,作为记录 第一次上机 问题一:顺序表的合并 1.问题描述: ......
CF练习题16 (毒瘤数据结构)
Lomsat gelral 把树拍成一条链,询问子树等于询问区间。 这样一看这道题就非常莫队。 但是有要求个数最多的颜色的编号,我们可以用线段树动态维护颜色的最大值。 这样,一个无脑莫队线段树的暴力就做出来了。 int n,a[N]; int dfn[N],nfd[N],cnt; int b[N], ......
队列数据结构实现
1 #include <iostream> 2 #include<fstream> 3 using namespace std; 4 5 //顾客信息 6 struct Inform 7 { 8 int Arrival; 9 int Typed; 10 int HandleTime; 11 int ......
数据结构与算法-基本概念
什么是数据结构与算法 从广义上讲数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。 从狭义上讲,是指某些著名的数据结构和算法,比如队列、栈、堆、二分查找、动态规划等。这些都是前人智慧的结晶,我们可以直接拿来用 ......
C语言获取结构体变量地址并且输出结构体变量任意地址的数据
#include<stdio.h> typedef struct Test{ float Item1; char Item2; int Item3; short Item4; long Item5; double Item6; }TestStr1; int main(){ struct Test T ......
Python数据结构
Python数据结构 数据结构 可以存储多个数据的数据类型称为数据结构。数据结构是计算机存储和组织数据的方式。在Python中,使用最多的数据结构有元组(tuple)、列表(list)和字典(dict)三种。Python中的数据结构,其每个元素的数据类型是可以不同的。 元组的定义 用于存储多个元素的 ......
【数据结构】- 平衡树
平衡树 简介 平衡树是可以维护 权值信息 的数据结构。平衡树通过对二叉搜索树树高的平衡调整优化插入、删除、修改和查找的复杂度。故而节点其实形成了一个二叉树的形态,通过特定函数支持了查询序列中元素的前驱/后继,排名和特定排名的元素等有关权值的信息。 根据平衡树结构特性,也有维护区间用法。所以平衡树主要 ......
SQL Server数据结构
文件类型 一个数据库有三种类型的文件: Primary File:.mdf,master data file,记录了这个DB其它文件的指针,每个数据库都有 Secondary File:默认情况下,数据存在主文件,如果决定对主文件进行扩展,可以创建二级文件,后缀名为.ndf Transaction ......