数据结构之【顺序表简介】

news/2025/2/23 4:14:14

1.顺序表的概念

顺序表 是 用一段物理地址连续的存储单元 依次 存储数据元素的线性结构

一般情况下采用数组存储

2.顺序表的结构

 既然顺序表可以用来存储数据元素

那就少不了   增删查改  的操作

此时,单一地只创建数组满足不了上述操作

创建相应的结构体变量可以很好地解决这个问题

2.1重命名数据类型名称

typedef int SLDataType;

 重命名一下数据类型的名称

这样

之后改变数据类型的时候只需要修改一处

SL是Seqlist,即顺序表的英文缩写

DataType 是数据类型的英文缩写

2.2静态顺序表

所谓静态:使用定长数组存储数据

#define N 5

typedef struct SeqList
{
	SLDataType arr[N];  //定长数组
	int size;   //有效数据个数
}SL;

 

如上图:

定义的结构体包含

一个定长数组和一个变量

数组用来存储数据,

变量用来存储有效数据的个数

很显然,

静态顺序表存在很大的缺陷,

因为

不能根据需要合理定义数组的大小

开100个单元存不下101个数据

开1万个单元存不下1万零1个数据

开10万个单元如果只存10个数据,又会浪费空间

所以我们更多的选择使用动态顺序表

按需申请空间

2.3动态顺序表

typedef struct SeqList
{
	//该指针指向所申请的空间首地址
	SLDataType* arr; 
	int size;       //有效数据个数
	int capacity;   //空间容量
}SL;

如上图:

定义的结构体中,

arr 指向动态开辟的内存空间

size 存储有效数据个数

capacity 表示空间容量,空间不够就扩容


http://www.niftyadmin.cn/n/5862954.html

相关文章

【git-hub项目:YOLOs-CPP】本地实现05:项目移植

ok,经过前3个博客,我们实现了项目的跑通。 但是,通常情况下,我们的项目都是需要在其他电脑上也跑通,才对。 然而,经过测试,目前出现了2 个bug。 项目一键下载【⬇️⬇️⬇️】: 精…

使用Odoo Shell卸载模块

使用Odoo Shell卸载模块 我们在Odoo使用过程中,因为模块安装错误或者前端错误等导致odoo 无法通过界面登录,这时候你可以使用Odoo Shell来卸载模块。Odoo Shell是一个交互式Python shell,允许你直接与Odoo数据库和模型进行交互。以下是使用O…

ubuntu22.04离线安装K8S

1. 准备离线安装包 参考教程离线包准备教程 2. 准备环境 2.1. 准备主机 主机名ip系统k8s-master192.168.38.128ubuntu22.04k8s-node192.168.38.131ubuntu22.04 2.2. 设置host 修改 /etc/hosts 文件,添加master和node节点,需要和主机名保持一致 2…

解放大脑!用DeepSeek自动生成PPT!

DeepSeek应用(PPT篇) DeepSeek作为当前最好的AI大模型之一,其强大的文本生成能力被广泛的应用于各个领域,本文我们来聊聊用DeepSeek来自动生成PPT。 一、DeepSeek & PPT DeepSeek本身没有直接生成PPT的能力,换个…

基于AVue的二次封装:快速构建后台管理系统的CRUD方案

基于AVue的二次封装:快速构建后台管理系统的CRUD方案 在开发后台管理系统时,表格是常见的组件之一。然而,使用原生的Element Plus实现CRUD(增删改查)功能往往需要编写大量重复代码,过程繁琐。即使借助类似…

Spring AI + Ollama 实现调用DeepSeek-R1模型API

一、前言 随着人工智能技术的飞速发展,大语言模型(LLM)在各个领域的应用越来越广泛。DeepSeek 作为一款备受瞩目的国产大语言模型,凭借其强大的自然语言处理能力和丰富的知识储备,迅速成为业界关注的焦点。无论是文本生…

大数据SQL调优专题——引擎优化

引入 通过前面对目前大数据领域常见数据处理技术执行原理的梳理,我们会发现一条SQL语句,想要最终转换成集群可执行的物理计划,通常会经过如下图所示的一系列过程: 通常这些数据处理技术都会抽象一个执行器(Driver&…

docker的mysql容器修改数据库root的登录密码后,navicat依然能用旧密码访问

1. docker进入mysql。 2.修改及查看账户。 USE mysql; SELECT User, Host, plugin FROM user WHERE User root; 3. 更新账户密码。 -- 更新 rootlocalhost 密码 ALTER USER rootlocalhost IDENTIFIED WITH caching_sha2_password BY 新密码; -- 更新 root% 密码&#xff…