第3周 项目4 - 顺序表应用(1)

来源:互联网 发布:破解的软件 编辑:程序博客网 时间:2024/05/16 13:24
/*      Copyright (c)2016,烟台大学计算机与控制工程学院      All rights reserved.      文件名称:项目3--求集合并集.cpp      作    者:滕健      完成日期:2016年9月15日               问题描述:定义一个采用顺序结构存储的线性表,设计算法完成下面的工作:        1、删除元素在[x, y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1);         输入描述:若干数据 。     程序输出:删除元素后的线性表。 */  
算法库代码(main函数为测试函数)

(1)删除元素的函数及main函数:

#include "list.h"  #include <stdio.h>    //删除线性表中,元素值在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; 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写测试代码  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;  }  
运行结果:

知识点总结:
线性表元素的删除,及查找元素。 

0 0
原创粉丝点击