C语言顺序表的实现代码

2020-01-06 17:44:14王冬梅

main.cpp


#include"seqlist.h"

void main() {
 Seqlist list;
 InitSeqlist(&list);

 ElemType item;
 int pos;
 int select = 1;
 while (select) {
  printf("*******************************************n");
  printf("*[1] push_back  [2] push_front *n");
  printf("*[3] show_list  [4] pop_back  *n");
  printf("*[5] pop_front  [6] insert_pos *n");
  printf("*[7] find    [8] length  *n");
  printf("*[9] delete_pos  [10] delete_value *n");
  printf("*[11] sort    [12] reverse  *n");
  printf("*[13] clear   [14] merge   *n");
  printf("*[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的值,只要item不等于-1就接着循环
    push_back(&list, item);
   }
   break;
  case 2:
   printf("请输入要插入的数据(-1结束):>");
   while (scanf("%d", &item), item != -1) {
    push_front(&list, item);
   }
   break;
  case 3:
   show_list(&list);
   break;
  case 4:
   pop_back(&list);
   break;
  case 5:
   pop_front(&list);
   break;
  case 6:
   printf("请输入要插入的数据:>");
   scanf("%d", &item);
   printf("请输入要插入的位置:>");
   scanf("%d", &pos);
   insert_pos(&list, pos, item);
   break;
  case 7:
   printf("请输入要查找的数据:>");
   scanf("%d", &item);
   pos = find(&list, item);
   if (pos == -1)
    printf("查找的数据元素不在顺序表中!n");
   else
    printf("查找的数据元素在顺序表中的下标位置为%dn", pos);
   break;
  case 8:
   printf("顺序表的长度为%dn", length(&list));
   break;
  case 9:
   printf("请输入要删除数据在顺序表中的下标位置:>");
   scanf("%d", &pos);
   delete_pos(&list, pos);
   break;
  case 10:
   printf("请输入要删除数据的值:>");
   scanf("%d", &item);
   delete_val(&list, item);
   break;
  case 11:
   sort(&list);
   break;
  case 12:
   reverse(&list);
   break;
  case 13:
   clear(&list);
   break;
  case 14:
   Seqlist mylist, yourlist;
   ElemType item1, item2;
   InitSeqlist(&mylist);
   InitSeqlist(&yourlist);
   printf("请输入顺序表1中的元素值(-1结束):>");
   while (scanf("%d", &item1), item1 != -1) {
    push_back(&mylist, item1);
   }
   printf("请输入顺序表2中的元素值(-1结束):>");
   while (scanf("%d", &item2), item2 != -1) {
    push_back(&yourlist, item2);
   }
   merge(&list, &mylist, &yourlist);
   destroy(&mylist);
   destroy(&yourlist);
   break;
  default:
   printf("输入的选择错误!请重新输入!n");
   break;
  }
 }
 destroy(&list);
}