数据结构:线性表的顺序存储


你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~


🍊自我介绍

  Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”“内容共创官” ,现在我来为大家介绍一下有关物联网-嵌入式方面的内容。


🍊线性表的顺序存储介绍

概述

  线性表的顺序存储结构我们也叫做顺序表,它指的是用一段地址连续的存储单元依次存储线性表中的数据元素。如下图:
在这里插入图片描述
通过上图,结合之前的C语言学习,我们基本明白,线性表的本质就是我们对于数组的操作。

例子

假设一个班级有以下学生信息,我们可以通过线性表来记录学生的信息。

学号姓名年纪
a01张三18
a12李四19
a23王五20
a910周九22

线性表的特征:对于非空表,a0是表头,无前驱,a9是表尾,无后继。其他每一个元素有且只有一个直接前驱和一个直接后继。

存储
a0-a9按照顺序表的要求,符合我们顺序表的设计。那么顺序表应该在内存的哪块区域存储呢?
堆区:程序员手动申请和释放
栈区:函数调用结束后,系统回收。函数调用结束后空间就没有了,不推荐使用
静态区:main()函数调用后,由系统回收,内存一直存在,不太灵活,也不推荐使用。

在这里插入图片描述
操作
设顺序表L = (a0,a1,…,an-1),对L的基本运算有:
1.建立一个空表:create_empty_seqlist();
2.判断表是否为满:is_full_seqlit();
3.插入数据:insert_data_seqlist();
4.输出数据:print_data_seqlist();
5.判断表是否为空:is_empty_seqlist()
6.删除数据:is_delete_seqlist();

🍊顺序表的存储类型设计

设计思路

上述学生的个数可以借助C语言中的一维数组类型来描述,一个班级最多可以存储10个学生,用来表示数组申请的最大空间。实际生活中,还有可能有各种事情,学生到的情况,可能需要记录学生的实际人数。

类型设计

define MAX 10

typedef int datatype_t;//自定义数据类型;后期做大型设计的时候,需要更改原有的数据类型,到时候只用修改这里的int 就可以了

typedef struct
{
	datatype_t[MAX];//定义数组存储学生信息
	int n;//存储实际到来的学生人数
}seqlist_t;

示例用法:
seqlist_t sq;
sq.datatype_t[0];
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值