顺序表的操作集和线性表元素的区间删除

6-1

List MakeEmpty()

{

 List L;

 L=(List)malloc(sizeof(struct LNode));

 L->Last=-1;

 return L;

Position Find( List L, ElementType X )

{

 Position i=0;

 while(i<=L->Last&&L->Data[i]!=X)

       i++;

     if(i>L->Last) return ERROR;

     else return i;

}

bool Insert( List L, ElementType X, Position P )

{

     Position i;

     if(L->Last==MAXSIZE-1){

      printf("FULL");

        return false;

  }

 if(P<0||P>L->Last+1)

    {

  printf("ILLEGAL POSITION");

  return false;

 }

 for(i=L->Last;i>=P;i--)

        L->Data[i+1]=L->Data[i];

 L->Data[P]=X;

 L->Last++;

 return true;

}

bool Delete( List L, Position P ){

 Position j;

 if(P<0||P>L->Last){

  printf("POSITION %d EMPTY",P);

  return false;

 }

 for(j=P;j<L->Last;j++)

    L->Data[j]=L->Data[j+1];

    L->Last--;

    

 return true;

}

6-3

List Delete( List L, ElementType minD, ElementType maxD ){
    int k = 0;
    for(int i = 0;i<=L->Last;i++){
        if(L->Data[i]>minD&&L->Data[i]<maxD)
        {
            continue;
        }
        else
        {
            L->Data[k++] = L->Data[i];
        }
    }
    L->Last = k-1;
    return L;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值