顺序表

1、顺序表的结构体定义

typedef struct
{
	int data[maxSize];	//存放顺序表元素的数组
	int length;	//存放顺序表的长度
}Sqlist;	//顺序表类型的定义

2、顺序表的操作

(1)按元素值的查找算法

在顺序表中查找第一个值为e的元素

int findElem(Sqlist L,int e)
{
	int i;
	for (i=0; i<L.length; ++i)
		if (e == L.data[i])
			return i;	//若找到,则返回下标
	return -1;	//没找到,返回-1,作为失败标记
}
(2)插入数据元素的算法

在第p个位置插入元素e

int insertElem(Sqlist &L,int p, int e)  //L本身要发生改变,所以用引用型
{
	int i;
	if (p<0 || p>L.length || L.length==maxSize)	//检查p是否合法
		return 0;
	for (i=L.length-1; i>=p; --i)	//从后往前,逐个将元素往后移动一个位置
		L.data[i+1] = L.data[i];
	L.data[p] = e;	//将e放在插入位置p上
	++(L.length);	//表内元素多了一个,因此表长自增1
	return 1;
}
(3)初始化顺序表的算法

只需将length设置为0,代码如下:

void initList(Sqlist &L)
{
	L.length = 0;
}
(4)求指定位置元素的算法

用e返回L中p(0<=p<=length-1)位置上的元素,代码如下:

int getElem(Sqlist L,int p,int &e)
{
	if (p<0 || p>L.length-1)	//p值越界错误,返回0
		return 0;
	e = L.data[p];
	return 1;
}


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值