王道考研之数据结构

数据结构系列

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


数据结构

  • 数据结构系列
  • 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以使用assert

typedef 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以使用assert

typedef 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/911612.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java导出word文件(手绘)

文章目录 代码细节效果图参考资料 代码细节 使用的hutool的WordUtil&#xff0c;WordUtil对poi进行封装&#xff0c;但是这一块的官方封装的很少&#xff0c;很多细节都没有。代码中是常见的绘制段落&#xff0c;标题、表格等常用api Word07Writer writer WordUtil.getWriter(…

LeetCode 0685.冗余连接 II:并查集(和I有何不同分析)——详细题解(附图)

【LetMeFly】685.冗余连接 II&#xff1a;并查集&#xff08;和I有何不同分析&#xff09;——详细题解(附图) 力扣题目链接&#xff1a;https://leetcode.cn/problems/redundant-connection-ii/ 在本问题中&#xff0c;有根树指满足以下条件的 有向 图。该树只有一个根节点&…

git原理与上传

言&#xff1a; git是一个软件&#xff0c;gitee/github是一个网站&#xff0c;这里有什么联系吗&#xff1f;我们身为一个程序员不可能不知道github&#xff0c;但是毕竟这是外国的网站&#xff0c;我们不翻墙的情况下&#xff0c;是无法访问的(或者就是太慢了&#xff0c;或…

Go语言的常用内置函数

文章目录 一、Strings包字符串处理包定义Strings包的基本用法Strconv包中常用函数 二、Time包三、Math包math包概述使用math包 四、随机数包&#xff08;rand&#xff09; 一、Strings包 字符串处理包定义 Strings包简介&#xff1a; 一般编程语言包含的字符串处理库功能区别…

React 入门课程 - 使用CDN编程React

1. 第一个React 注意&#xff1a;在vscode里&#xff0c;使用Live Server来运行html文件。 index.html <html><head><link rel"stylesheet" href"index.css"><script crossorigin src"https://unpkg.com/react17/umd/react.de…

苍穹外卖day09超出配送范围前端不提示问题

同学们在写苍穹外卖项目day09时调用了百度地图api来判断用户地址是否超出配送范围&#xff0c; 但是在黑马官方的课程或资料中&#xff0c;出现这样的问题时只会向用户端的控制台报错并不会提醒用户 如下图&#xff1a; 解决方法&#xff1a; 其实解决方法很简单只需要找到向…

ARXML汽车可扩展标记性语言规范讲解

ARXML: Automotive Extensible Markup Language &#xff08;汽车可扩展标记语言&#xff09; xmlns: Xml name space &#xff08;xml 命名空间&#xff09; xsd: Xml Schema Definition (xml 架构定义) 1、XML与HTML的区别&#xff0c;可扩展。 可扩展&#xff0c;主要是…

【开源项目】经典开源项目数字孪生智慧小镇——开源工程及源码

飞渡科技数字孪生小镇管理平台&#xff0c;依托自研数字孪生引擎平台&#xff0c;将5G、物联网、大数据、人工智能等数字化技术融合应用&#xff0c;采集、整合、应用小镇的规划、运营、管理等数据&#xff0c;实现特色小镇全域管理系统化以及精细化。 基于地理信息系统&#x…

探索 Move 编程语言:智能合约开发的新纪元

目录 引言 一、变量的定义 二、整型 如何在Move中表示小数和负数&#xff1f; 三、运算符 as运算符 布尔型 地址类型 四、什么是包&#xff1f; 五、什么是模块&#xff1f; 六、如何定义方法&#xff1f; 方法访问权限控制 init方法 总结 引言 Move 是一种专为区…

智能提醒助理系列-jdk8升级到21,springboot2.3升级到3.3

本系列文章记录“智能提醒助理”产品建设历程&#xff0c;记录实践经验、巩固知识点、锻炼总结能力。 本篇介绍技术栈升级的过程&#xff0c;遇到的问题和解决方案。 一、需求出发点 智能提醒小程序 当前使用的是jdk8&#xff0c;springboot2.3,升级到jdk21和springboot3.3 学…

算法|牛客网华为机试31-40C++

牛客网华为机试 上篇&#xff1a;算法|牛客网华为机试21-30C 文章目录 HJ31 单词倒排HJ32 密码截取HJ33 整数与IP地址间的转换HJ34 图片整理HJ35 蛇形矩阵HJ36 字符串加密HJ37 统计每个月兔子的总数HJ38 求小球落地5次后所经历的路程和第5次反弹的高度HJ39 判断两个IP是否属于同…

第六十三周周报 GCN-CNNGA

文章目录 week 63 GCN-CNNGA摘要Abstract1. 题目2. Abstract3. 文献解读3.1 Introduction3.2 创新点 4. 网络结构4.1 数据分析4.2 混合深度学习框架的发展4.3 Mul4.4 CNN block4.5 GCN block4.6 GRU block4.7 注意力机制4.8 模型评估标准 5. 实验结果5.1 不同邻接矩阵的性能评价…

人工智能——小白学习指南

知孤云出岫 目录 1. **智能评测系统**2. **个性化学习路径推荐**3. **虚拟学习助手**4. **学习行为分析**5. **数据驱动的教学决策**6. **自动化课程推荐**7. **数据隐私与安全保护** 人工智能知识点的总结和学习路线&#xff0c;以数据表格形式呈现&#xff0c;并附带在教育行…

「Mac畅玩鸿蒙与硬件21」鸿蒙UI组件篇11 - Canvas 组件的静态进阶应用

在鸿蒙应用开发中&#xff0c;Canvas 组件不仅用于基础绘图&#xff0c;还提供了处理复杂路径和渐变效果的多种手段&#xff0c;帮助开发者实现精美的静态图形。本篇将介绍如何在 Canvas 中绘制复杂路径、创建渐变填充效果。 关键词 Canvas 组件复杂路径绘制渐变填充 一、Canv…

【自动化测试】APP UI 自动化(安卓)-本地环境搭建

一、软件准备及版本介绍 软件版本JAVA-SDK1.8.0_181 python 3.10.10 Android SDK Tools 下最新版本即可&#xff0c;无特殊要求 PyCharm 2023.3.5&#xff08;下最新版本即可&#xff0c;无特殊要求&#xff09; 二、安装步骤及环境变量配置 2.1 Java安装及配置 1&am…

【动手学电机驱动】 STM32-FOC(2)STM32 导入和创建项目

STM32-FOC&#xff08;1&#xff09;STM32 电机控制的软件开发环境 STM32-FOC&#xff08;2&#xff09;STM32 导入和创建项目 STM32-FOC&#xff08;3&#xff09;STM32 三路互补 PWM 输出 STM32-FOC&#xff08;4&#xff09;IHM03 电机控制套件介绍 STM32-FOC&#xff08;5&…

鸿蒙进阶篇-网格布局 Grid/GridItem(二)

hello大家好&#xff0c;这里是鸿蒙开天组&#xff0c;今天让我们来继续学习鸿蒙进阶篇-网格布局 Grid/GridItem&#xff0c;上一篇博文我们已经学习了固定行列、合并行列和设置滚动&#xff0c;这一篇我们将继续学习Grid的用法&#xff0c;实现翻页滚动、自定义滚动条样式&…

【笔记】变压器-热损耗-频响曲线推导 - 04 额定功率处损耗特性

0.最大的问题 - 散热 对变压器这类功率器件&#xff0c;最大的问题是散热的效率。因为传统的电路基板热导率并不高&#xff0c;几乎和良性导热材料有近乎两个数量级的导热差异&#xff0c;所以&#xff0c;会采用特殊的导热技术&#xff0c;把热量尽可能快地传导到散热片。 传…

MATLAB中eig函数用法

目录 语法 说明 示例 矩阵特征值 矩阵的特征值和特征向量 排序的特征值和特征向量 左特征向量 不可对角化&#xff08;亏损&#xff09;矩阵的特征值 广义特征值 病态矩阵使用 QZ 算法得出广义特征值 一个矩阵为奇异矩阵的广义特征值 eig函数的功能是求取矩阵特征值…

深入理解单位根:如何通过单位根检验分析序列的平稳性

在时间序列分析中&#xff0c;平稳性是至关重要的概念。大多数时间序列模型&#xff08;如 ARMA 模型&#xff09;都假设序列是平稳的&#xff0c;即其统计特性&#xff08;均值、方差、自相关性&#xff09;不随时间变化。然而&#xff0c;许多实际数据并不满足这一条件&#…