当前位置: 首页 > 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

http://www.lryc.cn/news/480039.html

相关文章:

  • 实习冲刺Day17
  • 我自己nodejs练手时常用的一些库基础用法
  • 岛屿数量问题
  • 智能制造基础- TPM(全面生产维护)
  • C++学习笔记----11、模块、头文件及各种主题(一)---- 模板概览与类模板(4)
  • 【力扣热题100】[Java版] 刷题笔记-160. 相交链表
  • 多线程和线程同步复习
  • 贝式计算的 AI4S 观察:使用机器学习对世界进行感知与推演,最大魅力在于横向扩展的有效性
  • 容器化技术入门:Docker详解
  • 基于SSM(Spring + Spring MVC + MyBatis)框架的药房管理系统
  • 在服务器里安装2个conda
  • web安全漏洞之ssrf入门
  • 《NoSQL 基础知识总结》
  • 高校宿舍信息管理系统小程序
  • 2.索引:MySQL 索引分类
  • sklearn红酒数据集分类器的构建和评估
  • 【IC验证面试常问-4】
  • 【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
  • 书生浦语第四期基础岛L1G4000-InternLM + LlamaIndex RAG 实践
  • 基于ViT的无监督工业异常检测模型汇总
  • 数据库管理-第258期 23ai:Oracle Data Redaction(20241104)
  • 运放进阶篇-多种波形可调信号发生器-产生方波-三角波-正弦波
  • CSS中的变量应用——:root,Sass变量,JavaScript中使用Sass变量
  • WPF+MVVM案例实战与特效(二十八)- 自定义WPF ComboBox样式:打造个性化下拉菜单
  • 速盾:怎么使用cdn加速?
  • C++ 优先算法 —— 三数之和(双指针)
  • YOLOv7-0.1部分代码阅读笔记-yolo.py
  • 【缓存与加速技术实践】Web缓存代理与CDN内容分发网络
  • MySQL的约束和三大范式
  • Unity网络通信(part7.分包和黏包)