1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| #include <stdio.h> #include <string.h>
#define MAXSIZE 100 typedef int ElemType;
//顺序表定义 typedef struct{ ElemType data[MAXSIZE]; int length; }SeqList;
//顺序表初始化 void initList(SeqList *L){ L->length = 0;; }
//尾部添加元素 int appendElem(SeqList *L, ElemType e){ if(L->length >= MAXSIZE){ printf("顺序表已满\n"); return 0; }
L->data[L->length] = e; L->length++; return 1; }
//遍历 void listElem(SeqList *L){ for(int i = 0; i < L->length; i++){ printf("%d ", L->data[i]); } printf("\n"); }
//删除数据 int deleteElem(SeqList *L, int pos, ElemType *e){ if(L->length == 0){ printf("顺序表为空\n"); return 0; }
if(pos < L->length){ for(int i = pos; i < L->length; i++){ L->data[i-1] = L->data[i]; } } L->length--; return 1; }
int main() { //声明一个线性表并初始化 SeqList list; initList(&list); printf("初始化成功,目前长度占用%d\n",list.length); printf("目前占用内存%zu字节\n", sizeof(list.data)); appendElem(&list, 88); appendElem(&list, 99); appendElem(&list, 100); appendElem(&list, 101); appendElem(&list, 102); listElem(&list); ElemType delData; deleteElem(&list, 2, &delData); printf("被删除的数据为%d\n", delData); listElem(&list); return 0; }
|