第三周 项目四 顺序表的应用1

/*   
*Copyright (c)2015, 烟台大学计算机与控制工程学院   
*All rights reserved.   
*文件名称:Apply.cpp   
*作    者:苏凯祺   
*完成日期:2014年10月19号   
*版 本 号:v1.0   
*问题描述:删除元素在【x,y】(数字)之间所有的元素,要求算法的时间复杂度为O(n),空间复杂度为O(1)。
*/  
#include "list.h"
#include <stdio.h>

list.cpp
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; i<L->length; i++)
        if (L->data[i]<x || L->data[i]>y )  //复制不在[x, y]之间的元素
        {
            L->data[k]=L->data[i];
            k++;
        }
    L->length=k;
}

main,cpp
int main()
{
    SqList *sq;
    ElemType a[10]= {5,8,7,0,2,4,9,6,7,3};
    CreateList(sq, a, 10);
    printf("删除前 ");
    DispList(sq);

    delx2y(sq, 4, 7);

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

运行结果:

第三周 项目四 顺序表的应用1_第1张图片

知识点总结:

记录一个点,然后确定长度。

学习心得:

现在可以比较熟练的去编写,还需继续加强思考能力。

你可能感兴趣的:(第三周 项目四 顺序表的应用1)