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

顺序表专题

⽬录

1. 顺序表概念及结构

2. 顺序表分类

3. 实现动态顺序表

———————————————————————————————————————————

正文开始

1、顺序表的概念及结构

1.1 线性表

线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是⼀种在实际中⼴泛使 ⽤的数据结构,常⻅的线性表:顺序表、链表、栈、队列、字符串...

线性表在逻辑上是线性结构,也就说是连续的⼀条直线。但是在物理结构上并不⼀定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储。

案例:蔬菜分为绿叶类、⽠类、菌菇类。线性表指的是具有部分相同特性的⼀类数据结构的集合 如何理解逻辑结构和物理结构?

2、顺序表分类

• 顺序表和数组的区别

        ◦ 顺序表的底层结构是数组,对数组的封装,实现了常⽤的增删改查等接⼝

• 顺序表分类

        ◦ 静态顺序表

                概念:使⽤定⻓数组存储元素

\

静态顺序表缺陷:空间给少了不够⽤,给多了造成空间浪费

◦ 动态顺序表

这个可以扩容(增容)

3、动态顺序表的实现

#define INIT_CAPACITY 4
typedef int SLDataType;
// 动态顺序表 -- 按需申请
typedef struct SeqList
{SLDataType* a;int size; // 有效数据个数int capacity; // 空间容量
}SL;
//初始化和销毁
void SLInit(SL* ps);
void SLDestroy(SL* ps);
void SLPrint(SL* ps);
//扩容
void SLCheckCapacity(SL* ps);
//头部插⼊删除 / 尾部插⼊删除
void SLPushBack(SL* ps, SLDataType x);
void SLPopBack(SL* ps);
void SLPushFront(SL* ps, SLDataType x);
void SLPopFront(SL* ps);
//指定位置之前插⼊/删除数据
void SLInsert(SL* ps, int pos, SLDataType x);
void SLErase(SL* ps, int pos);
int SLFind(SL* ps, SLDataType x);

最后提一嘴,顺序表是线性表的一种

线性表有物理结构、逻辑结构

线性表物理结构不一定连续,逻辑结构连续

在这里顺序表的物理结构是连续的,逻辑结构也是连续的

———————————————————————————————————————————


http://www.mrgr.cn/news/46525.html

相关文章:

  • 【AI学习】地平线首席架构师苏箐关于自动驾驶的演讲
  • rtthread学习笔记系列--18 信号 SIGNAL
  • zerox - 使用视觉模型将 PDF 转换为 Markdown
  • Elaticsearch常用的浏览器插件
  • 【Java】-- 利用 jar 命令将配置文件添加到 jar 中
  • 大数据技术实训:Zookeeper集群配置
  • Java基础(中)
  • Nacos进阶应用
  • 苹果开发者网站iOS应用创建全流程详解
  • 【c++实现tcp客户端】
  • 链表Set_LinkList(建立)
  • 【计网】【计网】从零开始学习http协议 ---理解http重定向和请求方法
  • YOLO11模型推理 | 目标检测与跟踪 | 实例分割 | 关键点估计 | OBB旋转目标检测
  • 【AI知识点】机器学习中的常用优化算法(梯度下降、SGD、Adam等)
  • 源代码如何才能防泄漏?总结十点注意事项
  • STM32 SPI串行总线
  • Python使用技巧:注释和输出
  • vavr Java的函数式编程神器-Part1
  • you-get 使用出错 [error] oops, something went wrong.
  • vue 模板语法
  • sqli-labs less-20 less-21 less-22 cookie注入
  • Java基本数据类型转换
  • 在 CentOS 上安装 Docker 的步骤
  • 机器学习篇-day04-逻辑回归-分类评估-混淆矩阵-精确率-召回率-F1值
  • 【MySQL】基本查询(上):创建、读取
  • 如何在Android Studio中找到CMakeLists.txt的打印信息