线性表——顺序表的插入删除

在数据结构中,线性结构可以说是一种非常重要的结构,因此我们要熟练掌握对线性表的一般操作。

顺序表

顺序表是一种类似于数组的数据结构,其特点就是逻辑上相邻的数据,其物理次序也是相邻的。

  • 初始化**
    顺序表的初始化就是构造一个空的顺序表。
    1.为顺序表分配一个预定大小的数组空间,使elem指向这段空间的基地址(首地址)
    2.将当前表长设为0
Status InitList (SqList & L)
{
	L.elem= (ElemType*)malooc(sizeof (ElemType)*MAXSIZE);
	if(!L.elem)
	return ERROR;
	L.maxsize=MAXSIZE;//最大长度
	L.length=0//当前长度
	return OK;
}

- 从表中取值
1.判定指定序号i是否合理(1<=i<=L.length)
2.若合理,则将第i个元素L.elem[i-1]赋值给e

Status GetElem(SqList L,int i,ElemType &e)
{
	if(i<1 || i>L.length)//判断第i个元素的合理性
	return ERROR;
	e=L.elem[i-1];
	return OK
}

- 插入

  1. 判断插入位置是否合理(1<=i<=n+1)
  2. 判断分配的空间是否已满
  3. 将第i到第n个元素依次向后移,空出第i个位置
  4. 将要插入的元素e插入到第i处
  5. 表长加1
Status ListInsert(SqList &L,int i ,ElemType e)
{
	if(i<1 || i>L.lengh+1)return ERROR;
	if(L.length==MAXSIZE)return ERROR;
	for(int j=L.length-1;j>=i-1;j--)//将第i到n个元素向后移动一个单位,空出第i个位置
		L.elem[j+1]=L.elem[j];
	L.elem[i-1]=e;//将e插入到i处
	L.length++;
	return OK;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值