int main(int argc, char *argv[]) { int i,j; ElemType e; SqList L; SqList La, Lb; InitList(&L); InitList(&La); InitList(&Lb); /* now let's test each function */ /* make a sqlist */ print_top_stars(32); printf("Now let's enter some thing to the sqlist.\n"); printf("How many elements do you want to input? \n"); scanf("%d", &i); printf("Please enter %d values(user Enter to commit).\n", i); for (j = 0; j < i; ++j) { scanf("%d", &e); ListInsert(&L, j+1, e); if (j != i-1) printf("Please enter next value:\n"); } printf("Here is your sqlist:\n"); ListTraverse(L); print_bot_stars(32); /* demo insert function */ print_top_stars(32); printf("Please choose a position to insert: "); scanf("%d", &i); while (i < 1 || i > L.length) { printf("Warning: wrong position\n"); scanf("%d", &i); }; printf("Enter the instert value: "); scanf("%d", &e); ListInsert(&L, i, e); printf("Now the length of L is %d.\n", L.length); printf("The content of sqlist are: \n"); ListTraverse(L); print_bot_stars(32); /* demo delete function */ print_top_stars(32); printf("Please choose a position to delete: \n"); scanf("%d", &i); while (i < 1 || i > L.length) { printf("Warning: wrong position\n"); scanf("%d", &i); } ListDelete(&L, i, &e); printf("Now the length of L is %d.\n", L.length); printf("The content of sqlist are: \n"); ListTraverse(L); print_bot_stars(32); /* demo locate function */ print_top_stars(32); printf("This check if the value you enter in the sqlist,\n"); printf("if in the sqlist return the position.\n"); printf("Enter the value: \n"); scanf("%d", &e); if (LocateElem(L, e) != 0) { printf("The position of %d is %d.\n", e, LocateElem(L, e)); } else { printf("The value you enter is not in the sqlist.\n"); } print_bot_stars(32); /* demo union sqlist */ print_top_stars(32); printf("This test will union two sqlist, "); printf("now let's make another list.\n"); La = L; printf("How many values do you want in it?\n"); scanf("%d", &i); printf("Please enter %d values(user Enter to commit).\n", i); for (j = 0; j < i; j++) { scanf("%d", &e); ListInsert(&Lb, j+1, e); if (j != i - 1) printf("Please enter next value:\n"); } printf("Now the length of Lb is %d.\n", Lb.length); printf("The content of sqlist are: \n"); ListTraverse(Lb); printf("Union Two sqlist now:\n"); unionL(&La, Lb); ListTraverse(La); return 0; }
int main() { SqList L; SqList Lb; ElemType e; Status i; int j,k; i=InitList(&L); printf("初始化L后:L.length=%d\n",L.length); for(j=1;j<=5;j++) i=ListInsert(&L,1,j); printf("在L的表头依次插入1~5后:L.data="); ListTraverse(L); printf("L.length=%d \n",L.length); i=ListEmpty(L); printf("L是否空:i=%d(1:是 0:否)\n",i); i=ClearList(&L); printf("清空L后:L.length=%d\n",L.length); i=ListEmpty(L); printf("L是否空:i=%d(1:是 0:否)\n",i); for(j=1;j<=10;j++) ListInsert(&L,j,j); printf("在L的表尾依次插入1~10后:L.data="); ListTraverse(L); printf("L.length=%d \n",L.length); ListInsert(&L,1,0); printf("在L的表头插入0后:L.data="); ListTraverse(L); printf("L.length=%d \n",L.length); GetElem(L,5,&e); printf("第5个元素的值为:%d\n",e); for(j=3;j<=4;j++) { k=LocateElem(L,j); if(k) printf("第%d个元素的值为%d\n",k,j); else printf("没有值为%d的元素\n",j); } k=ListLength(L); /* k为表长 */ for(j=k+1;j>=k;j--) { i=ListDelete(&L,j,&e); /* 删除第j个数据 */ if(i==ERROR) printf("删除第%d个数据失败\n",j); else printf("删除第%d个的元素值为:%d\n",j,e); } printf("依次输出L的元素:"); ListTraverse(L); j=5; ListDelete(&L,j,&e); /* 删除第5个数据 */ printf("删除第%d个的元素值为:%d\n",j,e); printf("依次输出L的元素:"); ListTraverse(L); //构造一个有10个数的Lb i=InitList(&Lb); for(j=6;j<=15;j++) i=ListInsert(&Lb,1,j); unionL(&L,Lb); printf("依次输出合并了Lb的L的元素:"); ListTraverse(L); return 0; }
int main () { sqList L; ElemType e; Status i; int j,k; i=InitList(&L); printf("[init]L.length=%d\n",L.length); for (j=1; j<=5; j++) { i=ListInsert(&L, 1, j); } printf("[insert]L.data="); ListTraverse(L); printf("L.length=%d\n",L.length); i=ListEmpt(&L); printf("is L empty:%d\n",i); printf("what is the length :%d\n",L.length); i=ClearList(&L); printf("[clear]L.length=%d\n",L.length); i=ListEmpt(&L); printf("is L empty:%d\n",i); //--------------------------- for(j=1;j<=10;j++) ListInsert(&L,j,j); printf("在L的表尾依次插入1∼10後:L.data="); ListTraverse(L); printf("L.length=%d \n",L.length); ListInsert(&L,1,0); printf("在L的表頭插入0後:L.data="); ListTraverse(L); printf("L.length=%d \n",L.length); GetElem(L,5,&e); printf("第5個元素的值為:%d\n",e); for(j=3;j<=4;j++) { k=LocateElem(L,j); if(k) printf("第%d個元素的值為%d\n",k,j); else printf("沒有值為%d的元素\n",j); } k=ListLength(L); /* k為表長 */ for(j=k+1;j>=k;j--) { i=ListDelete(&L,j,&e); /* 刪除第j個資料 */ if(i==ERROR) printf("刪除第%d個資料失敗\n",j); else printf("刪除第%d個的元素值為:%d\n",j,e); } printf("依次輸出L的元素:"); ListTraverse(L); j=5; ListDelete(&L,j,&e); /* 刪除第5個資料 */ printf("刪除第%d個的元素值為:%d\n",j,e); printf("依次輸出L的元素:"); ListTraverse(L); //構造一個有10個數的Lb sqList Lb; i=InitList(&Lb); for(j=6;j<=15;j++) i=ListInsert(&Lb,1,j); printf("輸出Lb的內容:"); ListTraverse(Lb); unionL(&L,Lb); printf("依次輸出合併了Lb的L的元素:"); ListTraverse(L); return 0; }