综合题(删除)

/*
问题描述:删除有序表中重复的元素 
注意有序这个条件 
*/

#include<stdio.h>
#define MaxSize 50

typedef struct LNode{
    int data[MaxSize];
    int length;
}LNode;

//初始化顺序表
void init(LNode &L){
    L.length = 0;
} 

//构建顺序表
void create(LNode &L){
    init(L);
    int x;
    scanf("%d",&x); 
    while(x!=-1&&L.length<MaxSize){
        L.data[L.length] = x;
        L.length++;
        scanf("%d",&x);
    }
}


//显示顺序表内容
void show(LNode L){
    int i = 0;
    while(i<L.length){
        printf("%d   ",L.data[i]);
        i++;
    }
}

//删除元素
void delete1(LNode &L){
    int k; 
    int j;//工作指针 
    for(k=0,j=1;j<L.length;j++){  //当遇见多个变量初始化时要用“,”隔开 
        if(L.data[k]!=L.data[j]){
            L.data[++k]=L.data[j];
        }
    }
    L.length = k + 1;
}

int main(){
    LNode L;
    create(L);
    show(L);
    printf("\n");
    delete1(L);
    show(L);
    return 0;
}

 

posted on 2019-07-03 11:28  楠楠要上天  阅读(143)  评论(0编辑  收藏  举报