数据结构(C语言版)——线性表顺序存储的应用

这篇博客详细介绍了顺序表的基本操作,包括如何初始化顺序表,按位置取值,按值查找元素,以及如何插入和删除元素。此外,还提供了一个完整的C++代码实现,展示了这些操作的过程,并包含一个交互式菜单供用户进行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习目录:

1.初始化

2.取值

3.查找

4.插入

5.删除

6.完整代码的描述

7.效果截图


学习内容:

1.初始化

(1)定义:构造一个空的顺序表

(2)算法步骤:

  • 为顺序表L动态分配一个预定义大小的数组空间,使elem指向这段空间的基地址
  • 将表的当前长度设置为0

(3)算法描述:

Status InitList(SqList &L)
{
	L.elem=new ElemType[MAXSIZE];
	if(!L.elem) exit(OVERFLOW);
	L.length=0;
	return OK;
 } 

2.取值

(1)定义:根据指定的位置序号i,获取顺序表中第i个数据元素的值。由于顺序存储结构具有随机存取的特点,可以直接通过数组下标定位得到,elem[i-1]单元存储第i个数据元素。

(2)算法步骤:

  • 判断指定的位置序号i值是否合理(1<=i<=L.length),若不合理,则返回ERROR。
  • 若i值合理,则将第i个数据元素L.elem[i-1]赋给参数e,通过e返回第i个数据元素的传值。

(3)算法描述:

Status GetElem(SqList L,int i,ElemType &e)
{
	if(i<1||i>L.length) return ERROR;
	e=L.elem[i-1];
	return OK;
 } 

3.查找

(1)定义:根据指定的元素值e,查找顺序表中第1个值与e相等的元素。若查找成功,则返回该元素在表中的位置序号;若查找失败,则返回0。

(2)算法步骤:

  • 从第一个元素起,依次将其值和e相比较,若找到值与e相等的元素L.elem[i],则查找成功,返回该元素的序号i+1
  • 若查遍整个顺序表都没有找到,则查找失败,返回0

 (3)算法描述:

Status LocateElem(SqList L,ElemType e)
 {
 	int i;
 	for(i=0;i<L.length;i++)
 	    if(L.elem[i]==e) return i+1;
 	return 0;
  } 

4.插入

(1)定义:在表的第i个位置插入一个新的数据元素e,使长度为n的线性表变成长度为n+1的线性表。

(2)算法步骤:

  • 判断插入位置是否合法(1<=i<=n+1),若不合法则返回ERROR。
  • 判断顺序表的存储空间是否已满,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值