线性表删除

    xiaoxiao2021-12-14  58

    删除操作

    删除算法的思路:

    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;

    }

    转载请注明原文地址: https://ju.6miu.com/read-971446.html

    最新回复(0)