/* *Copyright (c) 2014,烟台大学计算机学院 *All rights reserved. *文件名称:Annpion.cpp *作者:王耀鹏 *完成日期:2015年10月22日 *版本号:v1.0 * *问题描述:删除元素在[x, y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1)。 *输入描述:输入2个数x,y。 *输出描述:输出删除了[x,y]的数组。 */ #include "list.h" #include <stdio.h> void delx2y(SqList *&L, ElemType x, ElemType y) { int j=0; for(int i=0; i<L->Length; ++i) { if(L->data[i]>=x&&L->data[i]<=y) continue; L->data[j]=L->data[i]; ++j; } L->Length=j; } 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; }
运行结果: