习题3.3 线性表元素的区间删除 (20 分)

  • 时间:
  • 浏览:
  • 来源:互联网

给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储,并且相对位置不能改变。

//一、借助数组
/*List Delete( List L, ElementType minD, ElementType maxD )
{
    int j;
    ElementType a[MAXSIZE];
    for(int i=0;i<=L->Last;i++)
    {
        if(L->Data[i]<=minD||L->Data[i]>=maxD)
            a[j++]=L->Data[i];
    }
    for(int i=0;i<=j;i++)
    {
        L->Data[i]=a[i];
    }
    L->Last=j-1;
    return L;
}*/
//二、存在自己数组中
List Delete( List L, ElementType minD, ElementType maxD )
{
    int i,j;
    for(i=0;i<=L->Last;i++)
    {
        if(L->Data[i]<=minD||L->Data[i]>=maxD)
        L->Data[j++]=L->Data[i];
    }
    L->Last=j-1;
    return L;
}

 

本文链接http://www.dzjqx.cn/news/show-617418.html