数据结构
05_数据结构与算法
Sort 排序算法 sort 包中实现了四种基本排序算法:插入排序、归并排序、堆排序、快速排序。但是它们不公开,只供sort包内部自己使用,所以在需要实现数据排序时不必考虑使用哪一种排序方法,只要实现了 sort.Interface 定义的三个方法: 获取数据集合长度Len()、比较两个元素大小Le ......
页帧的数据结构设计
前言 页帧page是物理内存管理的基本单位,struct page记录了任意时刻page的所有状态,因此每一个物理页帧都需一个对应的struct page结构体记录状态,对于内存多计算机系统来说需要的struct page本身就需要大量内存进行存储,因此该结构体中每增加一个变量带来的代价会很大,需要 ......
内存管理中的关键数据结构
前言 在谈Linux内存管理框架之前需要了解NUMA,NUMA是非一致性内存访问(Uon-Uniform Memory Access)的缩写,与之相反的是一致性内存访问UMA。在多核的UMA架构的机器上,CPU视角下所有的内存都是均匀的,不同CPU访问同一块内存的延迟是相同;而在NUMA架构的机器上 ......
Go 复合数据类型之结构体与自定义类型
Go 复合数据类型之结构体与自定义类型 目录Go 复合数据类型之结构体与自定义类型一、类型别名和自定义类型1.1 类型定义(Type Definition)简单示例1.2 类型别名简单示例1.3 类型定义和类型别名的区别二、结构体2.1 结构体介绍2.2 结构体的定义2.3 定义一个空结构体2.3. ......
数据结构——C语言知识补充
学数据结构发现代码看不懂 : (参考资料:C语言--指针详解 - tongye - 博客园C语言结构体详解,C语言struct用法详解 指针 C语言的一大难点,如何理解指针和运用指针。从一个简单的应用说起:int a = 1;这是一个简单的变量声明和初始化,定义了一个整型变量a,并赋值为1。而对于计 ......
数据结构
创建一个线性表 #define MAXSIZE 100 typedef struct { ElemType *elem; int length; } SqlList; Status InitList_Sq (SqlList & L) { // 构造一个空的顺序表 L.elem = new ElemT ......
数据结构:线性表-详解顺序表
《详解顺序表》 目录: 一、顺序表的定义及其特点 二、顺序表的运算(概述) 三、顺序表的实现 四、完整的Demo 五、小结 六、参考文献 一、顺序表的定义及其特点 顺序表又称顺序存储结构,是线性表的一种,专门存储逻辑关系为“一对一”的数据。顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序 ......
C++ 数据结构插入效率学习
转自:https://blog.csdn.net/breaksoftware/article/details/82947838 1.总结 在头部插入。 元素数量>15k时,效率unordered_set > set,unordered_map > map。 元素数量<1024时,效率unordere ......
数据结构
单调队列 LCA√ 二叉堆√ ST表 √ 并查集、带权并查集 树的直径、树的重心 树状数组、线段树(见线段树专题) 树上倍增 树上分治 哈希(整数哈希+字符哈希+树哈希) 树链剖分:重链剖分+长链剖分 启发式合并 平衡树(无旋Treap) 1.带权并查集 ·怎样理解“带权”:即在维护点之间的集合关系 ......
专题2——进阶数据结构
UVA11997 考虑一个简化版,P1631,这个版本使用堆维护即可。 这个版本怎么做呢?依次合并每一行。 P6033 有一个性质,就是每一次合成出来的都是单调递增的,所以每次取出合的和没和的的最小的两个互相比较即可。 但是要预先排序,桶排即可。 P9565 考虑维护 \(60\) 个并查集,也就是 ......
套路的数据结构
1 给定长度为 \(n\) 的序列 \(a,b\)。两种操作: 询问区间 \([l,r]\),查询 \(\max\limits_{i=l}^{r}{\{a_i\times b_i\}}\) 给定 \(l,r,v\),区间 \(\forall i\in[l,r]\),\(b_i\gets b_i +v ......
【数据结构】- 堆
堆 简介 堆是可以维护 最值 的数据结构。其每个节点有一个键值 \(val\) ,堆将节点按键值确定父亲/儿子关系,故把所有节点连为一棵树,通过根找到最值。 根据祖先关系可分为两类——大根堆以根节点键值最大,向叶节点递减。小根堆以根节点键值最小,向叶节点递增。 根据支持操作可分为堆、可并堆、可持久化 ......
【数据结构】- 线段树
线段树 简介 线段树是可以维护 区间信息 的数据结构。线段树将每个长度不为 \(1\) 的区间划分成左右两个区间递归求解,故把整个线段划分为一个树形结构,通过合并左右两区间信息来求得该区间的信息。 根据建树方式可分为普通线段树和动态开点线段树。 根据区间信息可分为普通线段树、权值线段树和李超线段树。 ......
数据结构-并查集
并查集的使用范围: 1.合并集合 2.查询两元素是否属于同一集合 高级用法: 3.进行集合划分<带权并查集> 4.连通块块数查询&块内元素个数统计<连通图> 5.撤销合并<可持久化并查集> //本文暂不涉及, 我还不会 并查集基本操作: #define rep(i,n) for(int i = 1; ......
第03章 Python的数据结构、函数和文件
本章讨论Python的内置功能,这些功能本书会用到很多。虽然扩展库,比如pandas和Numpy,使处理大数据集很方便,但它们是和Python的内置数据处理工具一同使用的。 我们会从Python最基础的数据结构开始:元组、列表、字典和集合。然后会讨论创建你自己的、可重复使用的Python函数。最后, ......
高级数据结构--树状数组
一维树状数组 单点修改-区间查询 点击查看代码 #include <bits/stdc++.h> #define IOS ios::sync_with_stdio(false);cin.tie(nullptr),cout.tie(nullptr); #define int long long usi ......
【数据结构】3.跳表和散列
1.顺序链表字典 1.1字典抽象父类 #pragma once using namespace std; template<class K, class E> class dictionary { public: virtual ~dictionary() {} // 返回字典是否为空 virtua ......
python数据结构上课笔记
流程控制 顺序结构:代码的编译顺序,从上往下一行一行编译。 代码的执行顺序:从主函数开始,到主函数结束 编译 文本文件 >预处理 >编译 >汇编 >链接 预处理:对所有#字开头的内容展开处理 同时忽略注释文件gcc text.c -o text.i -E 编译: 将展开的文件处理成相应的汇编代码gc ......
[数据结构和算法] 堆/优先队列的实现
预备知识: 完全二叉树可以用数组表示: 从下标0开始存储数据:左子节点 = 2 * 父节点 + 1,右子节点 = 2 * 父节点 + 2; 从下标1开始存储数据:左子结点 = 2 * 父节点,右子节点= 2 * 父节点 + 1; 堆: 大根堆:父节点的值大于等于左右子节点的值; 小根堆:父节点的值小 ......
【数据结构】2.栈和队列
1.栈 1.1栈的抽象父类 #pragma once template<class T> class Stack { public: // 析构函数 virtual ~Stack() {} // 栈是否为空 virtual bool empty() const = 0; // 栈的大小 virtua ......
基础数据结构:静态链表
1、静态链表 以AcWing.826为例,题目要求如下: 实现一个单链表,链表初始为空,支持三种操作: 向链表头插入一个数;删除第k个插入的数后面的数; 在第k个插入的数后插入一个数。 现在要对该链表进行M次操作,进行完所有操作后,从头到尾输出整个链表。 注意: 题目中第k个插入的数并不是指当前链表 ......
用sql语句查询出表结构,在结果就能看到数据库所有表的结构,这个时候只要全选,然后右击出来属性框,选择将结果另存为,这个时候您只要选择导出CSV,然后新建一个Excel表格,在菜单栏选择数据,再选择自文本,后面的大家可以自己的需求自行处理了。
SELECT 表名 = Case When A.colorder=1 Then D.name Else '' End, 表说明 = Case When A.colorder=1 Then isnull(F.value,'') Else '' End, 字段序号 = A.colorder, 字段名 = ......
Redis数据结构
本文大部分知识整理自网上,在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 前言 本文主要介绍关于Redis的五种基本数据结构的底层实现原理,然后来分析我们常用的使用场景。先简单回顾一下知识点。 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以 ......
C++常见算法&数据结构模版
各种常见算法 & 数据结构模板 1. 最长不下降子序列(LIS) 1.1 \(O(n^2)\) 做法 点击查看代码 for (int i = 1;i <= n;i++) { cin >> a[i]; dp[i] = 1; } for (int i = 1;i <= n;i++) { for (int ......
Go每日一库之155:go-spew(输出 Go 数据结构)
对于应用的调试,我们经常会使用 fmt.Println来输出关键变量的数据。或者使用 log 库,将数据以 log 的形式输出。对于基础数据类型,上面两种方法都可以比较方便地满足需求。对于一些结构体类型数据,通常我们可以先将其序列化后再输出。 如果结构体中包含不可序列化的字段,比如 func 类型, ......
【数据结构】线性表的数组描述和链式描述
1. 线性表抽象类 #pragma once template <class T> class LinearList { public: // 线性表是否为空 virtual bool empty() const = 0; // 线性表大小 virtual int size() const = 0; ......
数据结构总结
数据结构 数组 array ·数组有维度之分, 是十分重要的数据结构, 最简单的数组是一维数组, 其逻辑结构为线性表. ·数组的特点: 插入删除是 $O(n)$ 的, 但是可以随机下标访问. STL中的可变长度数组 vector 基础操作 <vector> vector <int> v; vecto ......