数据结构考研笔记——顺序表常考操作

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;
} 

2.插入数据元素的算法

在顺序表L的第p(0<=p<=length)个位置上插入新的元素e。如果p的输入不正确,则返回0,代表插入失败;如果p的输入正确,则将顺序表第p个元素及以后的元素右移一个位置,腾出一个空位置插入新元素,顺序表长度增加1,插入操作成功,返回1:

 int insertElem(Sqlist &L, int p, int e)    //L本身要发生改变,所以用引用型
 {
 	int i;
 	if (p<0 || p>L.length || L.length==maxSize)  //位置错误或者表长已经达到
	   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.删除数据元素的算法

要删除表中下表为p的元素,只需将其后边的元素逐个往前移动一个位置,将p位置上的元素覆盖掉,就达到了删除的目的:

 int deleteElem(Sqlist &L, int p, int &e)    //需要改变的变量用引用型 
 {
 	int i;
 	if (p<0 || p>L.length-1)  //位置错误或者表长已经达到
	   return 0;
	e=L.data[p];              //将被删除的元素赋值给e 
	for (i=p; i<L.length-1; ++i)
	   L.data[i]=L.data[i+1];      
	--(L.length);                  //表长减1 
	return 1; 
 } 

4.初始化顺序表的算法

只需将length设置为0:

void initList (Sqlist &L)
{
	L.length=0;
}

5.求指定位置元素的算法

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

int getElem(Sqlist L, int p, int &e)    //需要改变的变量用引用型 
 {
 	if (p<0 || p>L.length-1)  //p值越界错误 
	   return 0;
	e=L.data[p];              
	return 1; 
 } 

猜你喜欢

转载自blog.csdn.net/SmiledrinkCat/article/details/81326272
今日推荐