int main() { Sqlist La, Lb, Lc; int j; InitList(La); for ( j = 1; j <= 5; j++ ) ListInsert_before(La, j, j); printf("La = "); ListTraverse(La, print1); InitList(Lb); for ( j = 1; j <= 5; j++ ) ListInsert_before(Lb, j, 2*j); printf("Lb = "); ListTraverse(Lb, print1); MergeList2(La, Lb, Lc); printf("Lc = "); ListTraverse(Lc, print1); DestroyList(La); return 0; }
//expand void test2() { SLinkList L; SLinkList Lk; ElemType e; int i=0; int N=10; int n; InitSpace(L); InitList(L,n); printf("表是否为空(1:非空,0:空),结果:%d\n",!ListEmpty(L,n)); printf("表长%d\n",ListLength(L,n)); for(i=1;i<=5;i++) { ListInsert(L,n,i,2*i); } printf("插入5个元素(2,4,6,8,10),结果:"); TraverseList(L,n,visit); printf("\n"); i=3; if(PriorElem(L,n,3,e)) printf("%d的前驱为%d\n",i,e); if(NextElem(L,n,3,e)) printf("%d的后继为%d\n",i,e); for(i=1;i<=5;i++) { ListInsert(L,n,2*i-1,2*i-1); } printf("插入5个元素(1,3,5,7,9)后结果:"); TraverseList(L,n,visit); printf("\n"); printf("表是否为空(1:非空,0:空),结果:%d\n",!ListEmpty(L,n)); printf("表长%d\n",ListLength(L,n)); for(i=9;i<=10;i++) { printf("删除%d个元素为",i); if(ListDelete(L,n,i,e)) printf("%d\n",e); else printf("删除失败\n"); } int j=0; for(i=-1;i<=1;i++) { printf("查找%d所在位置",i); j=LocateElem(L,n,i,compare); if(j) printf("%d\n",j); else printf("查找失败\n"); } for(i=-1;i<=N+5;i+=3) { if(PriorElem(L,n,i,j)) printf("查找到%d的前驱%d\n",i,j); else printf("查找%d的前驱失败\n",i); if(NextElem(L,n,i,j)) printf("查找到%d的后继%d\n",i,j); else printf("查找%d的后继失败\n",i); } j=ClearList(L,n); if(j) printf("清空链表成功"); else printf("清空失败"); printf("表是否为空(1:非空,0:空),结果:%d\n",!ListEmpty(L,n)); printf("表长%d\n",ListLength(L,n)); MergeList2(Lk); printf("\n"); }