设计删除顺序表中【x,y】中的所有元素算法

线性表L采用顺序存储结构,删除元素在[x,y]之间的所有元素。

代码如下:

#include 
#include 
using namespace std;
#define MaxSize 10
typedef char ElemType;
typedef struct
{
    ElemType data[MaxSize];
    int length;
}SqList;
void InitiList(SqList *&L,ElemType a[],int n);//初始化顺序表
void DisplayList(SqList *L);//显示顺序表
bool DeleteX_YList(SqList *L,int x,int y);//删除x,y之间的元素
int main()
{
    SqList *L=new SqList();
    ElemType a[]={'a','b','c','d','e','f','g','l'};
    InitiList(L,a,8);
    DisplayList(L);
    cout<bool DeleteX_YList(SqList *L,int x,int y)//删除x,y之间的元素
{
    if((y-x)>(L->length)||(ylength;j++,i++)
                L->data[j]=L->data[i];
            L->length-=(y-x+1);
        return true;
    }
}
void DisplayList(SqList *L)//显示顺序表
{
    for(int i=0;ilength;i++)
        cout<data[i]<<" ";
}
void InitiList(SqList *&L,ElemType a[],int n)//初始化顺序表
{
    L = (SqList*)malloc(sizeof(SqList));
    for(int i=0;idata[i]=a[i];
    L->length=n;
}


你可能感兴趣的:(数据结构和算法)