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

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表示空间容量,空间不够就扩容

相关推荐
Yang_jie_0315 小时前
笔记:数据结构(栈是否使用底指针以及头指针的初始化值)
数据结构·笔记·算法
lueluelue4717 小时前
LeetCode:滑动窗口
数据结构·算法·leetcode
码少女18 小时前
数据结构——冒泡排序及优化
数据结构·算法·排序算法
青梅橘子皮18 小时前
string---入门OJ题(1)
数据结构·算法
小高Baby@18 小时前
单链表的删操作
数据结构·算法·golang
qq_4542450318 小时前
BasicMethod.Map 设计框架:8 个并行基础模块的数学根基与实现
数据结构·算法·c#
青山木18 小时前
Hot 100 --- 二叉树与递归
java·数据结构·算法·leetcode·深度优先
ysa05103020 小时前
【板子】树上启发式合并
数据结构·c++·笔记·算法
2301_8002561121 小时前
数据结构基础期末复习例题
数据结构·算法
tachibana221 小时前
hot100 将有序数组转换为二叉搜索树(108)
java·数据结构·算法·leetcode