问题及代码:
/*
copyright (t) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:1.cpp
*作者:车金阳
*完成日期:2016年9月22日
*版本号:v1.0
*问题描述:定义一个采用顺序结构存储的线性表,删除元素在[x, y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1);
*输入描述:线性表长度、线性表元素及删除区间【x. y】
*程序输出:删除后的元素
*/
list.h:
#define Maxsize 100
typedef int Elemtype; //自定义数据类型
typedef struct list
{
Elemtype data[Maxsize]; //存顺序表元素
int length; //存顺序表长度
} Sqlist;
void CreateList(Sqlist *&l,Elemtype a[],int n); //由a中的n个元素建立顺序表
void DispList(Sqlist *l); //输出线性表
int ListLength(Sqlist *l); //求顺序表长度
bool GetElem(Sqlist *l,int i,Elemtype &e); //求顺序表中某个数据元素值
bool ListInsert(Sqlist *&l,int i,Elemtype e); //插入数据元素
void InitList(Sqlist *&l); //初始化线性表
void unionList(Sqlist *LA,Sqlist *LB,Sqlist *&LC); //求两集合并集
bool del(Sqlist *&l,int x,int y); //删除指定区间内元素
fun.cpp:
#include <stdio.h>
#include <malloc