以下是一个顺序表的测试代码, 阅读代码并完成插入新元素的代码填空。 #include
#include
#define MaxSize 50 typedef char ElemType; typedef struct { ElemType elem[MaxSize]; int length; }SqList; void InitList(SqList *&L) { L=(SqList *)malloc(sizeof(SqList)); L->length=0; } void DestroyList(SqList *L) { free(L); } int ListEmpty(SqList *L) { return(L->length==0); } int ListLength(SqList *L) { return(L->length); } void DispList(SqList *L) { int i; if(ListEmpty(L)) return; for(i=0;i
length;i++) printf("%c",L->elem[i]); printf("\n"); } int GetElem(SqList *L,int i,ElemType &e) { if(i<1||i>L->length) return 0; e=L->elem[i-1]; return 1; } int LocateElem(SqList *L,ElemType e) { int i=0; while(i
length && L->elem[i]!=e) i++; if(i>=L->length) return 0; else return i+1; } int ListInsert(SqList *&L,int i,ElemType e) //插入新元素 { // ( )代码 填空, 请参照下面的删除元素代码填写 } int ListDelete(SqList *&L,int i,ElemType &e) //删除元素 { int j; if(i<1||i>L->length) return 0; i--; e=L->elem[i]; for(j=i;j
length-1;j++) L->elem[j]=L->elem[j+1]; L->length--; return 1; } void main() { SqList *L; ElemType e; printf("(1)初始化顺序表L\n"); InitList(L); printf("(2)依次采用尾插法插入a,b,c,d,e元素\n"); ListInsert(L,l,'a'); ListInsert(L,2,'b'); ListInsert(L,3,'c'); ListInsert(L,4,'d'); ListInsert(L,5,'e'); printf("(3)输出顺序表L:"); DispList(L); printf("(4)顺序表L 长度=%d\n",ListLength(L)); printf("(5)顺序表L 为%s\n",(ListEmpty(L)?"空":"非空")); GetElem(L,3,e); printf("(6)顺序表L 的第3个元素=%c\n",e); printf("(7)元素a的位置=%d\n",ListEmpty(L,'a')); printf("(8)在第4个元素位置上插入f元素\n"); ListInsert(L,4,'f'); printf("(9)输出顺序表L:"); DispList(L); printf("(10)删除L的第3个元素\n"); ListDelete(L,3,e); printf("(11)输出顺序表L:"); DispList(L); printf("(12)释放顺序表L\n"); DestroyList(L); }