從順序表L中刪除所有值為x的元素
阿新 • • 發佈:2018-12-08
#include <stdio.h> #define MAXSIZE 100 typedef struct { int elem[MAXSIZE]; int last; }SeqList; int creat(SeqList &L) { int a; printf("請輸入要建立的元素的個數:\n"); scanf("%d", &a); L.last=0; for (int i = 0;i<a;i++) { printf("請輸入第%d個元素\n", i + 1); scanf("%d", &L.elem[i]); L.last++; } return L.last; } void show(SeqList L) { int i; printf("creat last=%d\n", L.last); printf("線性表中的元素為:\n"); for (i = 0;i<L.last;i++) printf("%d\n", L.elem[i]); printf("\n"); } void delx(SeqList *L, int x) //刪除所有值為x的元素 { int i = 0; int j = 0; while (i <= L->last) { if (L->elem[i] != x) { L->elem[j] = L->elem[i]; i++; j++; } else i++; } L->last = j - 1; printf("creat last=%d\n", L->last); } void main() { SeqList L; int a,i,length; L.last=creat(L); show(L); printf("請輸入刪除的數值:\n"); scanf("%d", &a); delx(&L, a); printf("刪除後的線性表為:\n"); for (i = 0;i < L.last;i++) printf("%d\n", L.elem[i]); }