线性表的顺序存储实现(C语言)

本文介绍了线性表的顺序存储概念,利用C语言中的一维数组实现。顺序表采用动态分配的连续存储空间,通过结构体变量last记录已存放元素的末尾。文章详细讲解了如何初始化顺序表,以及进行查找、插入和删除元素的操作,并强调在C语言中应使用结构体指针进行参数传递。
摘要由CSDN通过智能技术生成

线性表的顺序存储是指在内存中,用一块连续的存储空间来存储线性表的各个元素。在C语言里,一维数组在内存中的存储空间就是一块连续的存储区域。因此使用以为数组来表示线性表的顺序存储。

我们需要考虑到,因为这个数组是动态变化的,那么这个数组应该数足够大的,因此我们在初始化这个数组的时候,应该给予其相关问题的最大值。而且我们还需要有一个标记能够告诉我们该数组中已存放的元素的末尾。

返回表中元素的长度时,直接返回last+1即可

#define MAXSIZE 20      //规定最大元素容量

typedef int ElementType //表示元素类型
typedef int Position    //标记元素末尾

struct Lnode {          //将数组和标记放入到结构体中成为一个整体
  ElementType Data[MAXSIZE];
  Position last;        //last表示数组中的最后一个元素的位置(数组下标) 空表我们一般赋值为-1
};

这样我们就有了一个数组Data的变量last组成的结构体作为顺序表。

接下来来看一下顺序表的相关操作:

前提:

我们在操作顺序表的时候,如果直接将结构体作为参数穿来穿去的话是行不通的,因为C语言中的函数参数是值传递(可以查看我的上一篇文章)。因此我们使用结构体指针来传递。

typedef struct Lnode * List; //定义结构体指针List

初始化一个顺序表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值