顺序表应用-删除元素

来源:互联网 发布:c语言中空格怎么表示 编辑:程序博客网 时间:2024/05/16 19:48

 

01./*   02.作者:王增亮   03.完成日期:2015.9.21 04.问题描述:顺序表应用*/


 

<strong><span style="color:#ff0000;">代码:</span></strong>#include <stdio.h>#include <malloc.h> typedef int ElemType;  #define MaxSize 50typedef struct  {    ElemType data[MaxSize];     int length;  } SqList;//用数组创建线性表     void CreateList(SqList *&L, ElemType a[], int n)    {       int i;        L=(SqList *)malloc(sizeof(SqList));       for (i=0; i<n; i++)            L->data[i]=a[i];        L->length=n;    }  bool ListEmpty(SqList *L)    {        return(L->length==0);    }void DispList(SqList *L)    {        int i;        if (ListEmpty(L)) return;        for (i=0; i<L->length; i++)            printf("%d ",L->data[i]);        printf("\n");    }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
原创粉丝点击