#include<stdio.h>
#define MaxSize (100+5)
typedef int ElemType;
typedef struct
{
Elemtype a[MaxSize];
int n;
}SeqList;
void printMenu();
void print(SeqList sq);
void create(SeqList *sq);
int findPos(SeqList sq,ElemType item);
int insert(SeqList *sq,int i,ElemType item);
int del(SeqList *sq,int i);
int modify(SeqList *sq,int i ,ElemType item);
void sort(SeqList *sq);
void insertSorted(SeqList *sq,ElemType item);
void mergeSorted(SeqList *sq,SeqList s1,SeqList s2);
int main()
{
printMenu();
int choice,p,x;
SeqList sq;
sq.n = 0;
while(~scanf("%d",&choice))
{
switch(choice)
{
case 0:printf("0.输出顺序表\n");
print(sq);
break;
case 1:print("1.创建顺序表\n");
create(&sq);
printf("创建成功,输出顺序表\n");
print(sq);
break;
case 2:printf("2.查找一个元素item在顺序表中的位置\n");
printf("请输入查找的元素:\n");
scanf("%d",&item);
if(findPos(sq,item) == -1)
printf("该元素不存在\n");
else
printf("%d",p);
break;
case 3:printf("3.在顺序表的第i个位置插入一个元素item\n");
printf("请输入插入的位置和元素:\n");
scanf("%d%d",&p,&x);
if(insert(&sq,p,x) == -1)
printf("插入失败\n");
else
print(sq);
break;
case 4:printf("4.删除顺序表第i个位置的元素\n");
printf("请输入删除的位置和元素:\n");
scanf("%d%d",&p,&x);
if(del(&sq,p) == -1)
printf("删除失败\n");
else
print(sq);
break;
case 5:printf("5.修改顺序表第i位置的元素\n");
printf("请输入修改的位置和元素:");
scanf("%d%d",&p,&item);
if(modify(&sq,p,item) == -1)
printf("修改失败\n");
else
print(sq);
break;
case 6:printf("6.对顺序表sq排序\n");
sort(&sq);
printf("排序成功,输出顺序表\n");
print(sq);
case 7:printf("7.在有序的顺序表中插入一个元素item\n");
printf("请输入要插入的元素:\n");
scanf("%d",&item)
insertSorted(&sq,item);
printf("插入成功,输出顺序表\n");
print(sq);
break;
case 8:printf("8.合并有序表\n");
SeqList s1,s2;
printf("请输入2个有序表(务必从小到大排序):\n");
create(&s1);
create(&s2);
mergeSorted(&sq,s1,s2);
printf("合并成功,输出顺序表\n");
print(sq);
break;
case 19:printMenu();
return 0;
case 20:printf("系统即将退出,欢迎再次使用!\n");
break;
default:
printf("你的选择有误,请重新输入!\n");
}
}
return 0;
}
void printMenu()
{
printf("欢迎进入顺序表操作子系统!\n");
printf("------------------------------------------\n");
printf("0.输出顺序表\n") ;
printf("1.创建顺序表\n");
printf("2.查找一个元素item在顺序表的位置\n");
printf("3.在顺序表第i个位置插入一个元素item\n");
printf("4.删除顺序表第i个位置的元素\n");
printf("5.修改顺序表第i个位置的元素\n");
printf("******************************************\n");
printf("6.对顺序表sq排序\n");
printf("7.在有序的顺序表中插入一个元素item\n");
printf("8.合并有序表\n");
printf("******************************************\n");
printf("9.预留功能\n");
printf("******************************************\n");
printf("19.输出系统菜单\n");
printf("20.退出系统");
printf("------------------------------------------\n");
}
void print(SeqList sq)
{
printf("顺序表的长度是:%d\n",sq.n);
for(int i = 0;i < sq.n;i++)
{
printf("%d ",sq.a[i]);
}
printf("\n");
}
void create(SeqList *sq)
{
printf("请输入顺序表的元素(ctrl+z结束输入):\n");
int n = 0,x;
while(~scanf("%d",&x))
{
sq -> a[n] = x;
n++;
}
sq -> n = n;
}
int findPos(SeqList sq,ElemType item)
{
}
int insert(SeqList *sq,int i, ElemType item)
{
if(sq -> n === MaxSize || i < 1 || i > sq -> n+1)
return -1;
for(int j = sq -> n-1;j >= i-1;j--)
{
sq -> a[j+1] = sq -> a[j];
}
sq -> a[i-1] = item;
(sq -> n)++;
return 1;
}
int del(SeqList *sq,int i,ElemType item)
{
}
int modify(SeqList *sq,int i)
{
}
void sort(SeqList *sq)
{
}
void insertSorted(SeqList *sq,ElemType item)
{
}
void mergeSorted(SeqList *sq,SeqList s1,SeqList s2)
{
}