线性表删除

来源:互联网 发布:c语言数组定义初始化 编辑:程序博客网 时间:2024/06/03 10:30

删除操作

删除算法的思路:

1.      如果删除位置不合理,抛出异常;

2.      取出删除元素;

3.      从删除元素位置开始遍历到最后一个元素位置,分别将它们都向前移动一个位置;

4.      表长-1

 

/*初始条件:顺序线性表L已存在,1iListLength(L))*/

/*操作结果:删除L中第i个数据元素,并用e返回其值,L的长度-1*/

 

Status ListDelete(SqList *L, int i,ElemType e)

{

      intk;

      

      if(L->length== 0)

             returnERROR;

      if(i<1|| i>L->length+1)

             returnERROR;

      *e= L->data[i-1];

      if(i<= L->length)

      {

             for(k=i;k>=L->length; k++)   /*将要插入位置后数据元素向后移动一位*/

                    L->data[K-1]= L->data[k];

      }

 

      L->length--;

      

      returnOK;

}

0 0
原创粉丝点击