#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
#define ElemType int
typedef struct{
ElemType Data[MAXSIZE];
int length;
}seqList;
void initList(seqList *L){
L->length = 0;
}
int insertList(seqList *L,int pos,ElemType ele){
int i;
if(pos<0||pos>=MAXSIZE){
return 0;
}
else{
for(i=L->length;i>=pos;i--){
L->Data[i+1]=L->Data[i];
}
L->Data[pos] = ele;
L->length++;
return 1;
}
}
int getElem(seqList L,int pos){
int i;
if(pos<0||pos>=L.length){
return 0;
}
else{
return L.Data[pos];
}
}
int DeleteList(seqList *L,int pos){
int i;
if(pos<0||pos>=MAXSIZE){
return 0;
}
else{
for(i=pos;i<L->length;i++){
L->Data[i-1] = L->Data[i];
}
L->length--;
return 1;
}
}
int isEmpty(seqList L){
if(L.length==0){
return 1;
}
else{
return 0;
}
}
int LocateElem(seqList *L,ElemType ele){
int i;
for(i=0;i<L->length;i++){
if(L->Data[i]==ele)
return i;
}
return -1;
}
int printList(seqList *L){
int i;
for(i=0;i<L->length;i++){
printf("%d ",L->Data[i]);
}
}
int main(){
seqList L;
char c;
printf("===========请输入您的选择=============\n");
printf("1.初始化顺序表\t\t 2.添加元素\t\t 3.删除元素\n");
printf("4.打印元素\t\t 5.查询元素位置\t\t #.退出\n");
while(scanf("%c",&c)!='#'){
getchar();
if(c=='1'){
initList(&L);
printf("初始化成功\n");
}
else if(c=='2'){
int ele;
char d;
int i=0;
printf("请输入您要添加的元素:\n");
scanf("%d",&ele);
insertList(&L,i,ele);
i++;
printf("是否停止添加元素n/y:\n");
getchar();
d=getchar();
while(d=='n'){
scanf("%d",&ele);
getchar();
insertList(&L,i,ele);
i++;
printf("是否停止添加元素n/y:\n");
d=getchar();
}
getchar();
}
else if(c=='3'){
int pos;
char d;
printf("请输入您要删除的位置:\n");
scanf("%d",&pos);
DeleteList(&L,pos);
printf("是否停止删除N/Y:\n");
getchar();
while(scanf("%c",&d)=='n'){
getchar();
scanf("%d",&pos);
DeleteList(&L,pos);
printf("是否停止删除n/y:\n");
}
getchar();
printf("请输入您的选择:\n");
}
else if(c=='4'){
printList(&L);
getchar();
}
else if(c=='5'){
int quele;
printf("请输入您要查询的元素:\n");
scanf("%d",&quele);
int a = LocateElem(&L,quele);
printf("%d\n",a);
getchar();
}
else if(c=='#'){
break;
}
else{
printf("请输入合法的选择:\n");
getchar();
}
}
}
网友评论