顺序表应用-删除元素

 

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 50
typedef 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;
}


 

结果:

 

顺序表应用-删除元素_第1张图片顺序表应用-删除元素_第2张图片

 

学习感受:加深了对顺序表的理解,博大精深!!!

 

你可能感兴趣的:(顺序表应用-删除元素)