#include"stdio.h" #include"malloc.h" #define MaxSize 50 typedef struct{ char data[MaxSize]; int length; }SqList; void InitList(SqList *&L) { L=(SqList *)malloc(sizeof(SqList)); L->length=0; } void DispList(SqList *L) { int i; for(i=0;i<L->length;i++) printf("%c",L->data[i]); printf("\n"); } int ListLength(SqList *L) { return(L->length); } bool ListEmpty(SqList *L) { return(L->length==0); } bool getelem(SqList *L,int i) { if(i<1||i>L->length) return false; else { printf("%c",L->data[i]); return true; } } int LocateElem(SqList *L,char m) { int i=0; while(i<L->length&&L->data[i]!=m) i++; if(i>=L->length) return 0; else return i+1; } bool ListInsert(SqList *&L,int i,char m) { int j; if(i<1||i>L->length+1) return false; i--; for(j=L->length;j>i;j--) L->data[j]=L->data[j-1]; L->data[i]=m; L->length++; return true; } bool ListDelete(SqList *&L,int i) { int j; if(i<1||i>L->length) return false; i--; for(j=i;j<L->length-1;j++) L->data[j]=L->data[j+1]; L->length--; return true; } void DestroyList(SqList *&L) { free(L); } void main() { SqList *A; InitList(A); ListInsert(A,1,'a'); ListInsert(A,2,'b'); ListInsert(A,3,'c'); ListInsert(A,4,'d'); ListInsert(A,5,'e'); DispList(A); ListLength(A); ListEmpty(A); getelem(A,3); LocateElem(A,97); ListInsert(A,4,102); DispList(A); ListDelete(A,3); DispList(A); DestroyList(A); }
实现顺序表的各种功能