Chapter 2
從有序順序表中刪除所有其值重復(fù)的元素,使表中所有元素的值均不同。
#include<stdio.h>
#include<stdlib.h>
#define Max 100
struct SqList{
int a[Max] = {3, 3, 5, 5, 5, 8, 8, 18};
int length = 8;
};
// 有序表中刪除重復(fù)元素
void delete_duplicate(SqList &L){
int i = 0;
for(int j = 1; j < L.length; j++){
// 前一個(gè)元素 與 當(dāng)前元素 不相同
if(L.a[i] != L.a[j]){
L.a[++i] = L.a[j];
}
}
// 更新有序表長(zhǎng)度
L.length = i + 1;
}
// 打印順序表
void show(SqList s){
if(s.length == 0){
printf("線性表為空");
return;
}
for(int i = 0; i < s.length; i++){
printf("%d ", s.a[i]);
}
printf("\n");
}
int main(){
SqList L;
printf("刪除前:");
show(L);
delete_duplicate(L);
printf("刪除后:");
show(L);
return 0;
}