#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
typedef struct
{
ElemType date[100];
int length;
}Sqlist;
//创建顺序表 k是下标 因为是从0开始的
void CreateList(Sqlist *&L,ElemType a[],int n)
{ int i=0;int k=0;
L=(Sqlist*)malloc(sizeof(Sqlist));
while(i<n)
{
L->date[k]=a[i];
k++;i++;
}
L->length=k;
}
//打印顺序表
void DispList(Sqlist *L)
{
int i;
for(i=0;i<L->length;i++)
{
printf("%d ",L->date[i]);
}
printf("\n");
}
//插入指定数值e到下标为i的位置上去
bool ListEnter(Sqlist *&L,int e,int i)
{ int j;
if(i<1||i>L->length)
{
printf("插入的位置不合法.\n");
}
for(j=L->length;j>i;j--)
{
L->date[j]=L->date[j-1];
}
L->date[i]=e;
L->length++;
}
//菜单函数
void menu()
{ Sqlist *L;int i;int e;
printf("=======请选择相应功能=======\n");
printf(" 1.打印顺序表√ \n");
printf("2.插入数值√ \n");
printf("3.根据位置删除数值√ \n");
printf("4.查找数值√ \n");
printf("=============================\n") ;
int op;
scanf("%d",&op);
switch(op)
{
case 1:
DispList(L);
break;
case 2:
ListEnter(L,e,i);
break;
case 3:
DestoryList();
break;
false :
break;
}
}
//删除某个位置的数值
void DelElement(Sqlist*L,int i)
{
int j;
if(i<1||i>L->length)
{
printf("删除的位置不合法.\n");
}
for(j=i-1;j<L->length-1;j++)
{
L->date[j]=L->date[j+1];
}
L->length--;
}
// //根据位置查找数值
// void search_loc()
int main(){
Sqlist *L;
int e;int i;int m;
int a[]={0,1,2,3,4,5,6,7,8,9};
//创建顺序表
CreateList(L,a,10);
//打印顺序表
printf("打印顺序表:\n");
DispList(L);
//插入一个数值
printf("请输入要插入的数值:\n");
scanf("%d",&e);
printf("请输入要插入的位置:\n");
scanf("%d",&i);
ListEnter(L,e,i);
//再一次打印顺序表
printf("打印顺序表:\n");
DispList(L);
//删除一个数值
printf("请输入要删除的位置:\n");
scanf("%d",&m);
DelElement(L,m);
//再一次打印顺序表
printf("打印顺序表:\n");
DispList(L);
return 0;
}