线性表的顺序存储的基本操作

本文详细介绍了线性表的顺序存储方式及其基本运算,包括查找、插入、删除和合并等操作的实现方法。同时,文章还提供了具体的代码示例,帮助读者深入理解线性表的存储结构和操作流程。

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

线性表分为顺序存储和链式存储

线性表的顺序存储
一、顺序存储

定义一个顺序存储的线性表

#define MAXSIZE 100
typedef struct 
{
	ElemType elem[MAXSIZE];
    int last ;
}SeqList;

说明
(1)通过定义语句 SeqList L;
利用 L.elem[i-1]来访问第i个元素
线性表最后一个元素的下标 L.last
线性表长度:L.last+1
(2)通过指针来定义 SeqList L1,*L; L=&L1;
利用 L->elem[i-1]来访问第i个元素
线性表最后一个元素的下标L->last
线性表长度L->last+1

二、线性表顺序存储的基本运算
1.查找操作
(1)按序号查找
(2)按内容查找
按内容查找例子:

int Locate(SeqList L,ElemType e)
{
	int i=0;
	while((i<L.last)&&(L.elem[i])!=e)
	i++;
	if(i<L/late)
	return (i+1);
	else
	return (-1);	
}

2.插入操作
插入第i个元素前(替换第i个元素)下标为i-1

#define OK 1
#definr ERROR 0
int InsList(SeqList *L,int i,ElemType e)
{
int k;
if((i<1)||(i->last+2))
{
printf("输入位置不合法");
return(ERROR);
}
if(L->last>=MAXSIZE-1)
{
	printf("表已满,无法插入"); 
	return(ERROR); 
}
for(k=L->last;k>=i-1;k--)
L->elem[k+1]=L->elem[k];
L->elem[i-1]=e;
L->last++;
return(OK);
}

3.线性表的删除

int DelList(SeqList *L,int i,ElemType *e)
{
	int k;
	if(i<1||i>L->last+1)
	{
		printg("删除位置不正确,重新输入");
		return(ERROR);
	}
	*e=L->elem[i-1];
	for(k=i;i<L->last;k++)
	L->elem[k-1]=L->elem[k];
	L->last--;
	return(OK);
	}

4.线性表的合并

void mergeList(SeqList *LA,SeqList *LB,SeqList *LC)
{
	int i,j,k,l;
	i=0; j=0; k=0;
	while(i<=LA->last&&j<=Lb->last)
	if(LA->elem[i]<=LB->elem[j])
	{
		LC->elem[k]=LA->elem[i];
		i++; k++;
	}
	else
	{
		LC->elem[k]=LB->elem[j];
		j++; k++
	}
	while(i<=La->last)
	{
		LC->elem[k]=LA->elem[i];
		i++; k++;
	}
	
	while(j<=La->last)
	{
		LC->elem[k]=LB->elem[j];
		j++; k++
	}
	Lc->last=LA->last+Lb->last+1;
	}

今日所想:
我曾七次鄙视自己的灵魂
第一次,当它本可进取时,却故作谦卑;
第二次,当它在空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它软弱地忍耐且把这忍耐说成是强大时;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。
三重境界
1.井中月
2.无欲则刚
3.德者,人之所欲也

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值