void Test1() { Seq seq; InitSeqList(&seq); PushBack(&seq, 1); PushBack(&seq, 2); PushBack(&seq, 3); PushBack(&seq, 4); PushBack(&seq, 5); PopBack(&seq); PopBack(&seq); PrintSeqList(&seq); }
/* 删除多余的值 */ SeqList* DeleteRepeatedElement(SeqList *L) { int i; SeqList *seq = InitSeqList(); seq->A[++seq->last] = L->A[0]; // 取第一个元素的值存放到seq中 for(i = 1; i <= L->last; i++) { if(L->A[i] != seq->A[seq->last]) { seq->A[++seq->last] = L->A[i]; } } free(L->A); return seq; }
void Test3() { Seq seq; InitSeqList(&seq); PushBack(&seq, 1); PushBack(&seq, 5); PushBack(&seq, 2); PushBack(&seq, 5); PushBack(&seq, 3); PushBack(&seq, 4); PushBack(&seq, 5); // Remove(&seq, 5); // Remove(&seq, 6); // RemoveAll(&seq, 5); RemoveAll(&seq, 6); PrintSeqList(&seq); }
void Test2() { Seq seq; InitSeqList(&seq); PushFront(&seq, 1); PushFront(&seq, 2); PushFront(&seq, 3); PushFront(&seq, 4); PushFront(&seq, 5); PopFront(&seq); PopFront(&seq); PopFront(&seq); PopFront(&seq); // PopFront(&seq); // PopFront(&seq); PrintSeqList(&seq); }
int main() { int x; SeqList *p = InitSeqList(); printf("\nPlease input the x:"); while(scanf("%d", &x)) { InsertElement(p, x); // 插入元素 PrintElements(p); // 再次输出所有元素 printf("\nPlease input the x:"); } //PrintElements(DeleteRepeatedElement(p)); // 删除重复元素并输出 Delete4(p); PrintElements(p); return 0; }
void Test4() { Seq seq; InitSeqList(&seq); PushBack(&seq, 10); PushBack(&seq, 5); PushBack(&seq, 2); PushBack(&seq, 5); PushBack(&seq, 3); PushBack(&seq, 10); PushBack(&seq, 5); PushBack(&seq, 6); PushBack(&seq, 8); PushBack(&seq, 7); PushBack(&seq, 9); PushBack(&seq, 1); PrintSeqList(&seq); // BubbleSort(&seq); InsertSort(&seq); // SelectSort(&seq); PrintSeqList(&seq); }
int main() { InitSeqList(); DbubbleSort(R, 10); Traversal(); }
void main() { SeqList mylist; InitSeqList(&mylist); ElemType Item; int pos; int select = 1; while(select) { printf("**********************************************\n"); printf("** [1] push_back [2] push_front **\n"); printf("** [3] pop_back [4] pop_front **\n"); printf("** [5] insert_pos [6] show_list **\n"); printf("** [7] del_pos [8] del_val **\n"); printf("** [9] find_pos [10]find_Elem **\n"); printf("** [11]sort [12]resver **\n"); printf("** [13]clear [14]merge **\n"); printf("** [15]destroy [0]quit_system **\n"); printf("**********************************************\n"); printf("请选择:>"); scanf("%d",&select); if(select == 0) { break; } switch(select) { case 1: { printf("请输入要插入的数据(-1结束):>"); while(scanf("%d",&Item),Item!=-1) //此处为逗号表达式,真假值由最后一个表达式决定, //所以此处在扫描到Item不是-1时就会自动执行一下下面的函数, //所以每输入一次非-1的数就头插一次。 { push_back(&mylist,Item); } break; } case 2: { printf("请输入要插入的数据(-1结束):>"); while(scanf("%d",&Item),Item!=-1) //此处为逗号表达式,真假值由最后一个表达式决定, //所以此处在扫描到Item不是-1时就会自动执行一下下面的函数, //所以每输入一次非-1的数就头插一次。 { push_front(&mylist,Item); } break; } case 3: { pop_back(&mylist); break; } case 4: { pop_front(&mylist); break; } case 5: { ElemType e; printf("请输入要插入的位置,当前有元素%d:",mylist.size); scanf("%d",&pos); printf("请输入要插入的元素值:"); scanf("%d",&e); insert_pos(&mylist,pos,e); break; } case 6: { show_list(&mylist); break; } case 7: { printf("请输入要删除的位置,当前有元素%d:",mylist.size); scanf("%d",&pos); del_pos(&mylist,pos); break; } case 8: { printf("请输入要删除的元素:"); scanf("%d",&Item); printf("start and Item=%d\n",Item); del_val(&mylist,Item); break; } case 9: { printf("请输入要查找线性表元素的位置:"); scanf("%d",&pos); find_pos(&mylist,pos,&Item); printf("线性表的第%d个元素为:%d\n",pos,Item); break; } case 10: { printf("请输入要查找的元素:"); scanf("%d",&Item); find_Elem(&mylist,Item,&pos); printf("元素%d所在位置为:%d\n",Item,pos); break; } case 11: { sort(&mylist); break; } case 12: { printf("resver start.\n"); resver(&mylist); printf("resver end!\n"); break; } case 13: { clear(&mylist); break; } case 14: { printf("目前无法测试,因为只有一个线性表,无法做合并操作。\n"); //merge(SeqList *list1,SeqList *list2,SeqList *list_merge); break; } case 15: { destroy(&mylist); break; } default: { printf("输入的选择不存在,请重新输入。\n"); select=1; break; } } } }