当前位置: 首页 > news >正文

王道考研之数据结构

数据结构系列

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加


数据结构

  • 数据结构系列
  • 1.线性表
    • 1.1 线性表的定义和相关概念
    • 1.2 线性表的创销 增删查改 判空表长打印
  • 2.顺序表
    • 2.1 顺序表定义和相关概念
    • 2.2 顺序表的静态实现
    • 2.3 顺序表的动态实现
    • 2.4 顺序表的指定位置插入和指定位置删除
      • 2.4.1 顺序表的指定位置插入
      • 2.4.2 顺序表的指定位置删除
  • 3.pandas是什么?
    • 3.1
    • 3.2
    • 3.3
  • 4.pandas是什么?
    • 4.1
    • 4.2
    • 4.3


1.线性表

1.1 线性表的定义和相关概念

线性表:具有相同数据的序列。线性的表
包含顺序表(数组)和链表。

概念描述
位序从1开始计数,用 i 表示位序。
数组下标从0开始计数,用 index 表示数组下标,其中 index + 1 = i
表头元素线性表的第一个元素。
表尾元素线性表的最后一个元素。
前驱前一个元素,即当前元素的前一个位置的元素。
后驱后一个元素,即当前元素的后一个位置的元素。

1.2 线性表的创销 增删查改 判空表长打印

2.顺序表

2.1 顺序表定义和相关概念

顺序表:逻辑上相邻的元素,物理上也相邻。----数组结构

2.2 顺序表的静态实现

缺点是:定义后无法扩容

#define capacity 10
typedef int  myDataType
typedef struct
{	myDataType data[capacity];int size;//顺序表当前的数据长度
}SqList;

2.3 顺序表的动态实现

#define capacity 10
typedef int  myDataType
typedef struct
{	myDataType *data;int size;//顺序表当前的数据长度int capacity;//顺序表的容量
}SqList;

2.4 顺序表的指定位置插入和指定位置删除

2.4.1 顺序表的指定位置插入

在index位置插入数据,index(取代index位置,因此index也要挪动)和index之后的数据都需要挪动
挪动的数据的数据下标范围是[index,size-1]
如何将index位置数据挪动呢?
向后挪,为了放在覆盖,则需要从最后开始向后挪动。

在这里插入图片描述
在这里插入图片描述

#include <assert.h> // 包含assert.h以使用asserttypedef struct {int *data; // 动态分配的数组int size;  // 顺序表的当前长度
} SqList;// 插入元素
void ListInsert(SqList *L, int index, int e) {// 确保index在合法范围内assert(index >= 0 && index <= L->size);// 检查是否有足够的空间插入新元素if (L->size == L->capacity) {// 这里需要实现扩容逻辑,例如:int newCapacity = L->capacity * 2;int *newData = (int *)realloc(L->data, newCapacity * sizeof(int));if (!newData) {exit(EXIT_FAILURE); // 内存分配失败,退出程序}L->data = newData;L->capacity = newCapacity;}// 向后挪动for (int p = L->size - 1; p >= index; p--) {L->data[p + 1] = L->data[p];//关于 L->data[p + 1] = L->data[p];//和   L->data[p] = L->data[p-1];}// 插入新元素L->data[index] = e;L->size++;
}

在这里插入图片描述

2.4.2 顺序表的指定位置删除

在index位置删除数据,后面的数据都需要向前挪动,为了防止覆盖,需要从最前面的位置开始挪动。
挪动的数据的数据下标范围是[index+1,size-1]
如何将index位置数据向前挪,呢?前挪P指向后。
在这里插入图片描述

#include <assert.h> // 包含assert.h以使用asserttypedef struct {int *data; // 动态分配的数组int size;  // 顺序表的当前长度
} SqList;// 插入元素
void Listdelete(SqList *L, int index) {// 确保index在合法范围内assert(index >= 0 && index <= L->size);for (int p = index+1; p <=size-1 ; p++) {L->data[p -1] = L->data[p];}L->size--;
}

3.pandas是什么?

3.1

3.2

3.3

4.pandas是什么?

4.1

4.2

4.3

相关文章:

王道考研之数据结构

数据结构系列 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 数据结构 数据结构系列1.线性表1.1 线性表的定义和相关概念1.2 线性表的创销 增删查改 判空表长打印 2.顺序表2.1 顺序表定义和相关概念2.2 顺序表的静态实现2.3 顺序表的…...

实习冲刺Day17

算法题 x的平方根 69. x 的平方根 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int mySqrt(int x) {long left 0,right x;//定义左右边界//数值取的大longlong类型while (left < right) {long mid (right-left1)/2left;//定义中间节点if ((mid *…...

我自己nodejs练手时常用的一些库基础用法

我自己在使用nodejs以及前端实战练习时常用的一些库的基本使用 1.bcrypt //注册账号时&#xff0c;给密码加密 password是前端传过来的密码&#xff0c;hashPassword是存到数据库中的密码 const bcrypt require(bcrypt) const hashPassword bcrypt.hash(password,10) //登…...

岛屿数量问题

给一个0 1矩阵&#xff0c;1代表是陆地&#xff0c;0代表海洋&#xff0c; 如果两个1相邻&#xff0c;那么这两个1属于同一个岛。我们只考虑上下左右为相邻。 岛屿问题: 相邻陆地可以组成一个岛屿&#xff08;相邻:上下左右&#xff09; 判断岛屿个数。 C 解决方案 #include &…...

智能制造基础- TPM(全面生产维护)

TPM 前言一、TPM二、TPM实施步骤三、 消除主要问题3.1 实施指南3.2 如何进行“主要问题”的消除&#xff1f; 四、自主维护4.1 实施指南4.2 主要工作内容4.3 如何进行“自主维护“ 五、计划维护5.1 实施指南5.2 如何实施计划维护 六、TPM 适当的 设备 设计5.1 实施指南5.2 如何…...

C++学习笔记----11、模块、头文件及各种主题(一)---- 模板概览与类模板(4)

2.2.2、显式实例化 有危险存在于有些类模板成员函数的编译错误&#xff0c;在隐式实例化时没有注意到。未被使用的类模板成员函数也可能包含语法错误&#xff0c;因为它们不会被编译到。这会使得检测代码的语法错误很困难。可以强制编译器生成所有成员函数的代码&#xff0c;vi…...

【力扣热题100】[Java版] 刷题笔记-160. 相交链表

题目&#xff1a;160. 相交链表 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意…...

多线程和线程同步复习

多线程和线程同步复习 进程线程区别创建线程线程退出线程回收全局写法传参写法 线程分离线程同步同步方式 互斥锁互斥锁进行线程同步 死锁读写锁api细说读写锁进行线程同步 条件变量生产者消费者案例问题解答加强版生产者消费者 总结信号量信号量实现生产者消费者同步-->一个…...

贝式计算的 AI4S 观察:使用机器学习对世界进行感知与推演,最大魅力在于横向扩展的有效性

「传统研究方法高度依赖于科研人员自身的特征和问题定义能力&#xff0c;通常采用小数据&#xff0c;在泛化能力和拓展能力上存疑。而 AI 研究方法则需要引入大规模、高质量数据&#xff0c;并采用机器学习进行特征抽取&#xff0c;这使得产生的科研结果在真实世界的问题中非常…...

容器化技术入门:Docker详解

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 容器化技术入门&#xff1a;Docker详解 容器化技术入门&#xff1a;Docker详解 容器化技术入门&#xff1a;Docker详解 引言 Doc…...

基于SSM(Spring + Spring MVC + MyBatis)框架的药房管理系统

基于SSM&#xff08;Spring Spring MVC MyBatis&#xff09;框架的药房管理系统 项目概述 功能需求 用户管理&#xff1a;管理员可以添加、删除、修改和查询用户信息。药品管理&#xff1a;支持对药品信息的增删改查操作&#xff0c;包括药品名称、价格、库存量等。供应商…...

在服务器里安装2个conda

1、安装新的conda 下载地址&#xff1a;Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 本文选择&#xff1a;Anaconda3-2023.03-1-Linux-x86_64.sh 安装&#xff1a;Ubuntu安装Anaconda详细步骤&#xff08;Ubuntu22.04.1&#xff…...

web安全漏洞之ssrf入门

web安全漏洞之ssrf入门 1.什么是ssrf SSRF(Server Side Request Forgery,服务端请求伪造)是一种通过构造数据进而伪造成服务端发起请求的漏洞。因为请求是由服务器内部发起&#xff0c;所以一般情况下SSRF漏洞的目标往往是无法从外网访问的内系统。 SSRF漏洞形成的原理多是服务…...

《NoSQL 基础知识总结》

在当今的数据存储和管理领域&#xff0c;NoSQL 数据库正逐渐崭露头角&#xff0c;成为许多应用场景下的有力选择。今天&#xff0c;我们就来一起深入了解一下 NoSQL 的基础知识吧。 一、什么是 NoSQL&#xff1f; NoSQL&#xff0c;即 “Not Only SQL”&#xff0c;它是一种不…...

高校宿舍信息管理系统小程序

作者主页&#xff1a;编程千纸鹤 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验&#xff0c;被多个学校常年聘为校外企业导师&#xff0c;指导学生毕业设计并参…...

2.索引:MySQL 索引分类

MySQL中的索引是提高数据查询速度的重要工具&#xff0c;就像一本书的目录&#xff0c;可以帮助我们快速定位到所需的内容。选择适合的索引类型对数据库设计和性能优化至关重要。本文将详细介绍MySQL中常见的索引类型&#xff0c;并重点讲解聚集索引和二级索引的概念及应用。 1…...

sklearn红酒数据集分类器的构建和评估

实验目的&#xff1a; 1. 掌握sklearn科学数据包中决策树和神经网络分类器的构建 2. 掌握对不同分类器进行综合评估 实验数据&#xff1a; 红酒数据集 红酒数据集利用红酒的化学特征来描述三种不同类型的葡萄酒。 实验内容与要求&#xff1a; 解压文件得到wine数据。利用pa…...

【IC验证面试常问-4】

IC验证面试常问-4 1.11 struct和union的异同1.13 rose 和posedge 的区别&#xff1f;1.14 semaphore的用处是什么&#xff1f;1.15 类中的静态方法使用注意事项有哪些&#xff1f;1.16 initial和final的区别&#xff1f; s t o p , stop, stop,finish的区别1.17 logic,wire和re…...

【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!

数据集介绍 【数据集】道路事故识别数据集 8939 张&#xff0c;目标检测&#xff0c;包含YOLO/VOC格式标注。数据集中包含2种分类&#xff1a;{0: accident, 1: non-accident}。数据集来自国内外图片网站和视频截图。检测范围道路事故检测、监控视角检测、无人机视角检测、等&…...

书生浦语第四期基础岛L1G4000-InternLM + LlamaIndex RAG 实践

文章目录 一、任务要求11.首先创建虚拟环境2. 安装依赖3. 下载 Sentence Transformer 模型4.下载 NLTK 相关资源5. 是否使用 LlamaIndex 前后对比6. LlamaIndex web7. LlamaIndex本地部署InternLM实践 一、任务要求1 任务要求1&#xff08;必做&#xff0c;参考readme_api.md&…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...

AD学习(3)

1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分&#xff1a; &#xff08;1&#xff09;PCB焊盘&#xff1a;表层的铜 &#xff0c;top层的铜 &#xff08;2&#xff09;管脚序号&#xff1a;用来关联原理图中的管脚的序号&#xff0c;原理图的序号需要和PCB封装一一…...

ThreadLocal 源码

ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物&#xff0c;因为每个访问一个线程局部变量的线程&#xff08;通过其 get 或 set 方法&#xff09;都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段&#xff0c;这些类希望将…...

【学习记录】使用 Kali Linux 与 Hashcat 进行 WiFi 安全分析:合法的安全测试指南

文章目录 &#x1f4cc; 前言&#x1f9f0; 一、前期准备✅ 安装 Kali Linux✅ 获取支持监听模式的无线网卡 &#x1f6e0; 二、使用 Kali Linux 进行 WiFi 安全测试步骤 1&#xff1a;插入无线网卡并确认识别步骤 2&#xff1a;开启监听模式步骤 3&#xff1a;扫描附近的 WiFi…...