编了个顺序表的初始化,新建,插入,删除,查询,输出,可是好多错,求指导
#include<stdlib.h>#include<stdio.h>
#define maxsize 1024
typedef int T
typedef struct List 结构类型
{ int size,maxlist;
T element[maxsize];
}list;
void creatlist(list *1st,int maxsize) 初始化
{ 1st->size=0;
1st->maxlist=maxsize;
}
bool isempty(list 1st)
{ return 1st.size==0;
}
bool isfull(list 1st)
{ return 1st.size==1st.maxlist;
}
void clear(list *1st)
{ 1st->size=0;
}
void initlist(list *1st) 新建
{ int i;
for (i=0;i<maxsize;1st->size++,i++)
scanf("%d",&(1st->element[i]));
}
bool output(list *1st) 输出
{ int i;
for (i=0;i<1st->size;i++)
printf("%d",1st->element[i]);
printf("\n");
}
bool locatelem(list *1st,T x) 查寻
{ int i;
for (i=0;i<=1st->size;i++)
if(1st->element[i]==x)
return i+1;
return 0;
}
bool insert(list *1st,int pos,T x) 插入
{ int i;
if(isfull(*1st))
{printf("overflow");return false;
}
if(pos<0||pos>1st->size)
{ printf("out of bounds");
return false;
}
for (i=1st->size-1;i>=pos;i--)
1st->element[i+1]=1st->element[i];
1st->element[pos]=x;
1st->size++;
return ture;
}
bool remove(list *1st,int pos, T*x) 删除
{ int i;
if(isempty(*1st))
{ printf("underflow");return false;
}
*x=1st->element[pos];
for(i=pos+1;i<1st->size;i++)
1st->element[i-1]=1st->element[i];
1st->size--;
return ture;
}
void main() 主函数
{
int n,i,k=1,m,x;
list l;
createlist(l);
while(k)
{ printf("请选择 0--5: ")
scanf("%d",&m);
getchar();
switch(m)
{
case 0:return;
case 1:{ printf("输入元素值,构建顺序表:\n");
printf("请输入顺序元素的个数: ");
scanf("%d",&n);
creatlist(l,n);
Output(l);
break;}
case 2:Output(l);printf("\n");break;
case 3:{ Printf("请输入要查找的元素值: ");
scanf("%d",&x);
k=locatelem(l,x);
Printf("要查找的元素的定位:%d\n",k);
printf("\n");
break;}
case 4:{ printf("输入要插入元素的位置及他的值:");
scanf("%d",&i);
scanf("%d",&x);
insert(l,x,i);
Output(l);
printf("\n");
break;}
case 5:{ printf("输入要删除元素的位置:");
scanf("%d",&i);
Output(l);
printf("\n");
break;}
printf("继续运行吗Y(1)/N(0): ");
scanf("%d",&k);
if(!k) return;
}
}