第3周项目4-顺序表的应用(1)删除元素在[x, y]之间的所有元素

问题及代码:

/*
* Copyright(c) 2016, 烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称:
* 作    者:路亚丽
* 完成日期:2016年  9月  17日
* 版 本 号:v1.0
*
* 问题描述: 删除元素在[x, y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1);
   
* 输入描述:无
* 程序输出:删除后的表
*/
#include "list.h"
#include 

//删除线性表中,元素值在x到y之间的元素
void delx2y(SqList *&L, ElemType x,  ElemType y)
{
    int k=0,i; //k记录非x的元素个数
    ElemType t;
    if(x>y)
    {
        t=x;
        x=y;
        y=t;
    }
    for (i=0; ilength; i++)
        if (L->data[i]data[i]>y )  //复制不在[x, y]之间的元素
        {
            L->data[k]=L->data[i];
            k++;
        }
    L->length=k;
}

//用main写测试代码
int main()
{
    SqList *sq;
    ElemType a[10]= {1,2,3,4,5,6,7,8,9,0};
    CreateList(sq, a, 10);
    printf("删除前 ");
    DispList(sq);

    delx2y(sq, 4, 7);

    printf("删除后 ");
    DispList(sq);
    return 0;
}


运行结果:


知识点总结:

顺序表的查找和删除。

学习心得:

应该熟悉掌握顺序表的基本操作。

你可能感兴趣的:(第3周项目4-顺序表的应用(1)删除元素在[x, y]之间的所有元素)