#include<stdio.h>
#include<malloc.h>
#define maxsize 100
typedef int ElemType;
typedef struct SqList
{
ElemType data[maxsize];
int length;
}SqList;
void InitList(SqList **L);
void destory(SqList **L);
void createlist(SqList *L,ElemType a[],int i);
void displist(SqList *L);
void deletelemtype(SqList *L,ElemType e);
void destory(SqList **L)
{
free(*L);
*L= NULL;
}
void InitList(SqList **L)
{
if(!*L)
{
*L = malloc(sizeof(SqList));
(*L)->length = 0;
}
}
void createlist(SqList *L,int a[],int i)
{
int j;
for(j = 0;j<i;j++)
L->data[j] = a[j];
L->length = i;
}
void displist(SqList *L)
{
int i;
for (i = 0;i<L->length;i++)
printf("%d\n",L->data[i]);
printf("\n");
}
void deletelemtype(SqList *L,ElemType e)//删除顺序线性表上的所有e的元素。
{
int j = 0;
int i;
for(i = 0;i<L->length;i++)
if(L->data[i]!=e)
{
L->data[j] = L->data[i];
j++;
}
L->length = j;
}
int main(void)
{
int a[20] = {1,1,11,11,1,1,1,1};
int i = sizeof(a)/sizeof(int);
ElemType e;
SqList *L = NULL;
InitList(&L);
createlist(L,a,i);
printf("删除前的元素\n");
displist(L);
printf("请输入你想删除的元素\n");
scanf("%d",&e);
printf("删除后的元素\n");
deletelemtype(L,e);//删除所有e的元素(在原始线性表上操作用i,j两个下标操作);
displist(L);
destory(&L);
return 0;
}
顺序线性表的闲谈
最新推荐文章于 2022-10-28 21:06:49 发布