线段 结构
数据结构的初认识
一般,我们将数据结构分为逻辑结构和物理结构。 逻辑结构:是指数据对象中数据元素的相互关系。 逻辑结构包括:集合结构,线性结构,树型结构,图形结构。 物理结构:是指数据的逻辑结构在计算机中的存储形式。 根据物理结构的定义,我们实际上研究的的就是如何把数据元素存储到计算机的存储器中。 存储器主要是针对内 ......
向量叉乘判断两点是否在线段同侧
ap1×ab与ap2×ab的结果异号,则表示两点在线段两侧;同号则表示在线段同侧 有一个点在线段上或两个点都在线段上,当做在线段同侧处理 //两点是否在线段同侧 public static bool IsTwoPointSameSideOfSegment(Vector2 a, Vector2 b, ......
用线段树来接树状数组类的问题
大致解决的问题就是区间查询以及单点的修改 #include<bits/stdc++.h> #define int long long using namespace std; const int N=5e5+10; int a[N],tag[N<<2]; struct{ struct{ int l, ......
数据结构与算法—绪论
前言 数据结构与算法是程序员内功体现的重要标准之一,且数据结构也应用在各个方面,业界更有程序=数据结构+算法这个等式存在。各个中间件开发者,架构师他们都在努力的优化中间件、项目结构以及算法提高运行效率和降低内存占用,在这里数据结构起到相当重要的作用。此外数据结构也蕴含一些面向对象的思想,故学好掌握数 ......
数据结构之树(遍历)
二叉树遍历的规则 1. 根据根节点(父节点)的位置在最前面、在左子节点、右子节点中间、最后面,分为前序、中序、后序。 2. 除了根(父节点)特殊以外,都是先左节点、后右节点。 前序遍历 1. 一个子树一个子树的看 2. 前序:根(父)--> 左子节点 >子树 ..... -->右子节点 第1个子树: ......
数据结构之树(二叉树的存储方式之链表)
Java Java中可以使用链表来实现二叉树的存储。 1. 链表实现二叉树的原理: 链表是由节点组成的数据结构,每个节点包含一个数据和指向下一个节点的指针。 在链表中,可以将二叉树的每个节点都看作一个链表节点,同时维护一个指向左子节点的指针和一个指向右子节点的指针。通过这种方式,可以将二叉树的各个节 ......
队列(Queue):先进先出(FIFO)的数据结构
队列是一种基本的数据结构,用于在计算机科学和编程中管理数据的存储和访问。队列遵循先进先出(First In, First Out,FIFO)原则,即最早入队的元素首先出队。这种数据结构模拟了物理世界中的队列,如排队等待服务的人。 在本篇博客中,我们将详细介绍队列的概念、用途、实现以及如何在编程中使用 ......
B3610 [图论与代数结构 801] 无向图的块 题解
题目传送门 前言 本题解内容均摘自我的 Tarjan 学习笔记 。 解法 Tarjan 与无向图 无向图与割点(割顶) 在一个无向图中,不存在横叉边(因为边是双向的)。 一个无向图中,可能不止存在一个割点。 割点(割顶):在一个无向图中,若删除节点 \(x\) 以及所有与 \(x\) 相关联的边之后 ......
结构体的定义和基础使用
结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,是C语言中一种重要的数据类型。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体通常用来表示类型不同但是又相关的若干数据。 定义: struct person{ char name[30];//姓名 in ......
数据结构:详解顺序串
《详解循环队栈》 目录: 顺序串的定义及其特点 顺序串的实现 完整Demo 运行截图 小结 参考文献 顺序串的定义及其特点 顺序串的存储结构的和线性表一样,也是主要分为顺序存储结构和链式存储结构两类,前者简称顺序串,顺序串和顺序表一样,只不过它的每个元素仅由一个字符组成,在串的这一节中重点是串的处理 ......
向量点乘判断点是否在线段上
几种要考虑的情况 1) 点p和线段断点a, b重叠,pa•ab=pa.x*pa.y+ab.x*ab.y=0 2) pa, pb共线,则pa×pb=0 2-1) p在线段ab上,此时pa, pb的夹角为180度,cos(180)=-1,pa•ab=-|pa|*|ab| 2-2) p在线段ab外,此时p ......
4 . 分支结构--循环结构
1. 分支结构 1.1 if语句 1.1.1 if (条件) { 语句1 } 根据条件来有选择性的执行某些代码 if(2>1){ // 判断 2>1 是否成立,如果成立则执行花括号里的代码,否则跳过 console.log('众所周知,2比1大'); } 1.1.2 if (条件) { 语句1 }e ......
4 . 分支结构--循环结构
1. 分支结构 1.1 if语句 1.1.1 if (条件) { 语句1 } 根据条件来有选择性的执行某些代码 if(2>1){ // 判断 2>1 是否成立,如果成立则执行花括号里的代码,否则跳过 console.log('众所周知,2比1大'); } 1.1.2 if (条件) { 语句1 }e ......
verdi看结构体波形
Options Description +all Dump all signals including memory, MDA, packed array, structure, union, power-related, and packed structure +mda Dump all mem ......
设计模式—结构型模式之适配器模式
本文介绍了结构型设计模式中的适配器设计模式,讲解了它的特点和相关构成,并介绍了类适配器和对象组合型适配器,使用Java代码进行演示。 ......
Rust 结构体的方法描述
Rust 结构体的方法描述 原文地址:https://rustwiki.org/zh-CN/rust-by-example/fn/methods.html Rust 的 方法(method)是依附于对象的函数。这些方法通过关键字 self 来访问对象中的数据和其他。方法在 impl 代码块中定义。 ......
数据结构记录-链表
1、单链表 1、单链表的组成 最基本的单链表组成如下: typedef struct Link { char elem; /*数据域*/ struct Link *next; /*指针域*/ }link;/*节点名,每个阶段都是一个Link结构体*/ 为什么这样的就是链表呢,需要从这个结构体内部组成 ......
【牛客顺序结构 06】kiki学程序设计基础
链接:https://ac.nowcoder.com/acm/contest/18839/1006来源:牛客网 题目描述 BoBo老师教了KiKi学习程序设计基础,他知道C++是带类的C语言,这个“++”主要包含三部分内容:对C语言进行语法上的扩展、面向对象(封装、继承和多态),STL(即模板)。这 ......
栈:数据结构中的后进先出(LIFO)容器
栈是一种基本的数据结构,广泛应用于计算机科学和编程中,用于管理数据的存储和访问。栈遵循后进先出(Last In, First Out,LIFO)原则,即最后放入栈的元素首先被取出。这种数据结构模拟了物理世界中的栈,如一堆书或一摞盘子。 栈的概念 栈是一个线性数据结构,具有以下关键特点: 后进先出(L ......
汇编-源程序结构
.386 ;.386伪指令,它表示这是一个32位程序,能访问32位的寄存器和地址 .model flat,stdcall option casemap:none ;上面三条具体看:https://blog.csdn.net/lm68140318/article/details/133747038?c ......
【牛客顺序结构 02】排列式
链接:https://ac.nowcoder.com/acm/contest/18839/1002来源:牛客网 题目描述 7254是一个不寻常的数,因为它可以表示为7254 = 39 x 186,这个式子中1~9每个数字正好出现一次 输出所有这样的不同的式子(乘数交换被认为是相同的式子) 结果小的先 ......
点是否在线段上
几种要考虑的情况 1) 点p和线段断点a, b重叠 2) pa, pb共线, p在线段ab上 3) pa, pb共线, p在线段ab外 4) pa, pb不共线 //点是否在线段上 public static bool IsPointOnSegment(Vector2 p, Vector2 a, V ......
逻辑思维和结构化思维有什么关联?
逻辑思维和结构化思维是密切相关的两种思维方式,它们都是在处理信息时采用系统性和有序性的思考方式。在本文中,我将详细探讨逻辑思维和结构化思维的定义、特点、关联以及如何建立高效的思维模式。 一、逻辑思维的定义及特点 逻辑思维是指根据一定的规则和原则,对事物进行分析、判断、推理和演绎的思维方式。逻辑思维的 ......
点到线段的距离2
几种要考虑的情况 1) 点和线段两端重叠的情况 2) 点在线段两侧的情况 p在另一侧的情况以此类推 3) 点在线段中间的情况 //点到线段的距离 public static float PointToSegmentDistance2(Vector2 p, Vector2 a, Vector2 b) ......
计算机数据结构
数据结构 一 数据结构的物理存储结构只有两种:顺序存储和链式存储(像栈、队列、树、堆、图等都是从逻辑结构去抽象的映射到内存中,也是这两种物理组织形式)。 二 顺序存储 如数组 连续的固定长度的空间,通过下标就能快速找到。 链式存储 如二叉树、B树等,底层可能是不连续的内存块,随机或是有序分配,既然不 ......
树状数组用线段树来写
#include<bits/stdc++.h>#define int long longusing namespace std;const int N=5e5+10;int a[N],tag[N<<2];struct{ struct{ int l,r,sum; }tr[N<<2]; void pus ......
【数据结构】线段树解决历史问题
无区间最值操作 这里讲两种简易方法: 1.矩阵 考虑线段树的 \(tag\) 必须要有结合律,几个值互相更新,考虑矩阵乘法去实现这个操作。 例题 支持区间加,查询区间和,区间历史版本和。 考虑记一个点的状态为: \[\begin{bmatrix} his\\ sum\\ len \end{bmatr ......
数据结构之链表
1. 简介 链表(Linked List)是一种基本的数据结构,用于表示一组元素,这些元素按顺序排列,每个元素都与下一个元素连接。与数组不同,链表的元素不是在内存中连续存储的,而是通过指针来连接的。链表由节点(Node)组成,每个节点包含两个主要部分:数据和指向下一个节点(或上一个节点,如果是双向链 ......
算法学习笔记(33): 矩阵乘法与线段树标记
矩阵乘法与线段树标记 让我们回归本质,将一切线性操作归为矩阵。 目录矩阵乘法与线段树标记线段树区间加线段树历史版本和线段树历史版本最大/最小值线段树区间取 \(\min\) 与历史版本最大NOIP2022 比赛优化标记常数关于向量构造的一些小技巧作者有话说 线段树的懒标记是非常普遍且巧妙的,但是对于 ......