顺序表元素的查找、插入与删除

顺序表元素的查找

在顺序表中查找元素值为e的元素,并返回其下标

int findElem(List *l,int e)
{
	int i;
	for(i=0;i<l->length;++i)
	{
		if(l->data[i]==e)
		  return i+1;         //返回e的位置 
	}
	return 0;                 //没找到返回0 
}

顺序表插入元素

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

int insertElem(List *l,int p,int e)
{
	int i;
	if(p<1||p>l->length+1||l->length==MAX)
	  return 0;                          //p的位置错误或长度不够时返回0 
	for(i=l->length;i>=p;i--)
	{
		l->data[i]=l->data[i-1];         //元素后移 
	}
	l->data[p-1]=e;       //把e插入 
	(l->length)++;        //表长加1 
	return 1;             //插入成功返回1 
}

顺序表删除元素

删除顺序表l中下标为p(1<=p<=length)的元素,成功返回1,否则返回0。要删除表中下标为p的元素,只需将其后边的元素往前移动一个位置,将p位置上的元素覆盖掉即可。

int deleteElem(List *l,int p)
{
	int i;
	if(p<1||p>l->length)
	  return 0;                     //p的位置错误返回0 
	for(i=p;i<=l->length;i++)
	{
		l->data[i-1]=l->data[i];    //元素前移 
	}
	(l->length)--;      //表长减1 
	return 1;           //删除成功返回1 
}

你可能感兴趣的:(数据结构)