数据结构
第一节:再次邂逅数据结构和算法
一. 二. 三. ! 作 者 : Yaopengfei(姚鹏飞) 博客地址 : http://www.cnblogs.com/yaopengfei/ 声 明1 : 如有错误,欢迎讨论,请勿谩骂^_^。 声 明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权 ......
数据结构之排序
一.什么是稳定排序? 排序后相等元素的相对位置不发生变化 二.稳定排序有哪些? 2.1.不稳定排序:快速排序、希尔排序、堆排序 2.2.稳定排序:冒泡排序、插入排序、归并排序、基数排序 三.各大排序算法 3.1.稳定算法 3.1.1.冒泡排序 思想:通过两两比较不断将最大的数浮出水面。一次浮出一个数 ......
数据结构的基本概念和术语
数据(Data) 数据: 能输入计算机且能被计算机处理的各种符号的集合, 信息的载体 能被计算机识别,存储和加工 包括:数值型的数据:整数,实数等 非数值型的数据:文字,图像,声音等; 2.数据元素和数据项 数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。也简称为元素,或称 ......
数据结构的初认识
一般,我们将数据结构分为逻辑结构和物理结构。 逻辑结构:是指数据对象中数据元素的相互关系。 逻辑结构包括:集合结构,线性结构,树型结构,图形结构。 物理结构:是指数据的逻辑结构在计算机中的存储形式。 根据物理结构的定义,我们实际上研究的的就是如何把数据元素存储到计算机的存储器中。 存储器主要是针对内 ......
数据结构与算法—绪论
前言 数据结构与算法是程序员内功体现的重要标准之一,且数据结构也应用在各个方面,业界更有程序=数据结构+算法这个等式存在。各个中间件开发者,架构师他们都在努力的优化中间件、项目结构以及算法提高运行效率和降低内存占用,在这里数据结构起到相当重要的作用。此外数据结构也蕴含一些面向对象的思想,故学好掌握数 ......
数据结构之树(遍历)
二叉树遍历的规则 1. 根据根节点(父节点)的位置在最前面、在左子节点、右子节点中间、最后面,分为前序、中序、后序。 2. 除了根(父节点)特殊以外,都是先左节点、后右节点。 前序遍历 1. 一个子树一个子树的看 2. 前序:根(父)--> 左子节点 >子树 ..... -->右子节点 第1个子树: ......
数据结构之树(二叉树的存储方式之链表)
Java Java中可以使用链表来实现二叉树的存储。 1. 链表实现二叉树的原理: 链表是由节点组成的数据结构,每个节点包含一个数据和指向下一个节点的指针。 在链表中,可以将二叉树的每个节点都看作一个链表节点,同时维护一个指向左子节点的指针和一个指向右子节点的指针。通过这种方式,可以将二叉树的各个节 ......
队列(Queue):先进先出(FIFO)的数据结构
队列是一种基本的数据结构,用于在计算机科学和编程中管理数据的存储和访问。队列遵循先进先出(First In, First Out,FIFO)原则,即最早入队的元素首先出队。这种数据结构模拟了物理世界中的队列,如排队等待服务的人。 在本篇博客中,我们将详细介绍队列的概念、用途、实现以及如何在编程中使用 ......
数据结构:详解顺序串
《详解循环队栈》 目录: 顺序串的定义及其特点 顺序串的实现 完整Demo 运行截图 小结 参考文献 顺序串的定义及其特点 顺序串的存储结构的和线性表一样,也是主要分为顺序存储结构和链式存储结构两类,前者简称顺序串,顺序串和顺序表一样,只不过它的每个元素仅由一个字符组成,在串的这一节中重点是串的处理 ......
数据结构记录-链表
1、单链表 1、单链表的组成 最基本的单链表组成如下: typedef struct Link { char elem; /*数据域*/ struct Link *next; /*指针域*/ }link;/*节点名,每个阶段都是一个Link结构体*/ 为什么这样的就是链表呢,需要从这个结构体内部组成 ......
栈:数据结构中的后进先出(LIFO)容器
栈是一种基本的数据结构,广泛应用于计算机科学和编程中,用于管理数据的存储和访问。栈遵循后进先出(Last In, First Out,LIFO)原则,即最后放入栈的元素首先被取出。这种数据结构模拟了物理世界中的栈,如一堆书或一摞盘子。 栈的概念 栈是一个线性数据结构,具有以下关键特点: 后进先出(L ......
计算机数据结构
数据结构 一 数据结构的物理存储结构只有两种:顺序存储和链式存储(像栈、队列、树、堆、图等都是从逻辑结构去抽象的映射到内存中,也是这两种物理组织形式)。 二 顺序存储 如数组 连续的固定长度的空间,通过下标就能快速找到。 链式存储 如二叉树、B树等,底层可能是不连续的内存块,随机或是有序分配,既然不 ......
【数据结构】线段树解决历史问题
无区间最值操作 这里讲两种简易方法: 1.矩阵 考虑线段树的 \(tag\) 必须要有结合律,几个值互相更新,考虑矩阵乘法去实现这个操作。 例题 支持区间加,查询区间和,区间历史版本和。 考虑记一个点的状态为: \[\begin{bmatrix} his\\ sum\\ len \end{bmatr ......
数据结构之链表
1. 简介 链表(Linked List)是一种基本的数据结构,用于表示一组元素,这些元素按顺序排列,每个元素都与下一个元素连接。与数组不同,链表的元素不是在内存中连续存储的,而是通过指针来连接的。链表由节点(Node)组成,每个节点包含两个主要部分:数据和指向下一个节点(或上一个节点,如果是双向链 ......
图的数据结构及基础算法
图(Graph)这个数据结构在平时开发中遇到的比较少,但我认为它是十分重要的,因为从真实的世界中来看,很多东西都可以抽象为图的表示,比如人际关系,地理位置,天马行空的东西都可以抽象为图,所以它比链表等基础数据结构高级一点点,也比较复杂,属于非线性结构。数学中有一个图论的分支也是与其有关。了解图在程序 ......
读程序员的制胜技笔记02_算法与数据结构
1. 认知偏见 1.1. 程序员也是人,他们和其他人在软件开发实践中有着同样的认知偏见 1.2. 只有你的同事真正关心你是如何做事的——其他人都只想要一个好的、有效的产品 1.3. 高估了不使用的类型 1.4. 不关心正确数据结构的好处 1.5. 认为算法只对库作者重要 2. 理论 2.1. 理论可 ......
数据结构记录
数据结构-线性表记录 线性表有顺序表和链表两种,使用顺序表就跟数组差不多,就是加了一些数组的标志,下面的代码中初始化这个顺序表的时候就申请好了需要的内存,之后每次增删顺序表的元素的时候都要对他的length进行增删。 /* 2023 11 02 c语言中文网,数据结构-线性表 */ #include ......
数据结构笔记
数据结构刷题笔记 Points 线段树 显然先对 \(x\) 离散 用线段树维护区间最大值,查询在线段树上二分出最小的 \(x\) 用 set 维护每个 \(x\) 对应的 \(y\) , lower_bound 即可 ......
数据结构刷题
CF19D Points 题目链接 先对 \(x\) 离散化,对每一个 \(x\) 都维护一个 set 表示当前横坐标对应的 \(y\)。 每次加入或删除操作就把对应的 set 更新,并且用线段树维护区间 \(x\) 对应的 \(y\) 的最大值,每次加入或删除时更新。 查询操作的时候直接在线段树上 ......
数据结构与算法 | 哈希表(Hash Table)
借这题不妨讲一讲分块的编码风格。在日常生活中,我们一定有记忆手机号码的经历,一个长长的数字串(比如1234567890)可能很难记忆,但如果将其分成更小的组块,例如(123) 456-7890,就更容易记忆和处理。这个其实在认识心理学里面概念叫:"信息分块"(chunking),指的是将大量的信息分... ......
数据结构
栈 栈的定义 栈(Stack)是只允许在一端进行插入或删除操作的线性表 栈的操作 - 用数组模拟栈 从0开始 top=0; //初始化 top //元素个数 if(top==0) //判断栈为空 st[top++]=x //入栈 top-- //出栈 st[top-1] //取栈顶 从-1开始 to ......
数据结构之树(二叉树的存储方式)
存储方式 一般使用数组、链表来存储树(节点)。链表的优点就是添加、删除。数组优点是访问(遍历)。 一维数组表示法 首先将二叉树当作一颗满二叉树(Full Binary Tree),因此第K层具有2k-1 个节点。按照规则存放在一维数组中。 原理 对于一个具有n个节点的二叉树,可以使用一个长度为2n的 ......
Python如何去采集APP数据?我下面提供下思路和结构代码
当涉及到采集APP数据时,Python是一个强大的工具,因为它具有丰富的库和框架,能够帮助你轻松地获取所需的信息。无论是分析竞争对手的市场表现,还是监控用户行为,Python都可以成为你的数据采集和分析的得力助手。本文将介绍如何使用Python采集APP数据的方法,包括Web抓取、API调用和数据清 ......
sizeof与各数据结构内存占用计算
一、sizeof 1. sizeof介绍 sizeof会计算参数的数据类型所占字节数。 注意事项: 如果是数组类型(非vector),则会返回整个数组所占字节数。 sizeof是运算符,在编译期间确定,因此无法计算动态分配的内存大小,如new等。 2. 实现方式 获取type 使用getTypeIn ......
数据结构-ST表
ST表的使用范围: 1.处理静态数组的极值问题 2.尾部增减数组的极值问题 ST表的原理: 1.预处理:ST表的中心思想是动态规划,我们规定数组 Max[i][j] 储存的是数组中从第 i 个元素开始,总共 2^j 个数字的极(大)值,区间末尾位置为 i+2^j-1。输入数组时,直接输入到 Max[ ......
Oracle转为Mysql的数据结构差别
Oracle的表空间相关函数 TABLESPACE "SYSTEM" LOGGING NOCOMPRESS PCTFREE 10 INITRANS 1 STORAGE ( INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 FR ......
数据结构——二分查找(1)
`` 点击查看代码 import java.util.Scanner; public class Main { public static int[] a = new int[10]; public static void main(String[] args) { Scanner s = new ......
C++数据结构
C++数据结构 C/C++数组允许定义可存储相同类型数据项的变量,但是结构体是C++中另外一种用户自定义的可用的数据类型,它允许存储不同类型的数据项。 结构用于表示一条记录,假设要跟踪图书馆书本的动态,可能需要跟踪每本书的下列属性: Title Author Subject BookID 定义结构体 ......
堆、队列数据结构的特点和作用介绍
What is Stack、Queue? 栈(Stack)又名堆栈; 队列(Queue); 堆栈的特点: 由于堆栈的栈和蘸碟的蘸同音,可以想象去火锅店吃饭,调味台上有一摞蘸碟,你是不是只能从顶上的蘸碟拿起,这就是堆栈的特点:后进先出。 队列的特点: 队列就是类似排队的数据结构,比如排队打饭,先排队的 ......