/*
*Copyright (c) 2017,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:项目4 -删除元素在[x,y]之间的所有元素”
*作 者:邵雪源
*完成日期:2017年9月17日
*版 本 号:v1.0
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int date[10];
int length;
}SQ;
void CreateList(SQ *&L,int a[],int n)
{
L=(SQ *)malloc(sizeof(SQ));
for(int i=0;i<n;++i)
{ L->date[i]=a[i];
L->length=n;
}
}
void DeleteList(SQ *&L,int x,int y)
{
x=x-1;
if(y-x+1==L->length)
{
L->length=0; return ;
}
else
for(int i=y;i<L->length;++i)
L->date[x++]=L->date[i];
L->length-=y-x+2;
}
void DisplayList(SQ *&L)
{
if(L->length==0)
return ;
for(int i=0;i<L->length;++i)
{
if(i==0)
printf("%d",L->date[i]);
else
printf(" %d",L->date[i]);
}
printf("\n");
}
int main()
{
SQ *L;
int a[10]={1,2,3,4,5,6,7,8,9,10};
CreateList(L,a,10);
DisplayList(L);
DeleteList(L,2,8);
DisplayList(L);}
/*//附:两种形式
struct SQ
{
int date[10];
int length;
};
struct SQ *CreateList(SQ *&L,int a[],int n)
typedef struct
{
int date[10];
int length;
}SQ;
void CreateList(SQ *&L,int a[],int n)//还必须要加typedef?*/