1.置空表
void SeqLSetNull(SeqList* l)
{
l->last=-1;
}
2.求表的长度
int SeqLLength(SeqList* l)
{
return l->last+1;
}
3.取结点
DataType SeqLGet(SeqList* l,int i){
if(i<1||i>l->last+1){
printf("\t i的位置不正确\n");
return ERROR;
}
return l->data[i-1];
}
4.定位运算
int SeqLLocate(SeqList* l,Datatype x){
int i;
for(i=0;i<=l->last;i++)
if(l->data[i]==x)
return(i+1);
return 0;
}
5.插入运算
int SeqLInsert(SeqList* l,int i,DataType x)
{
int j;
if(l->last>=MAXNUM-1){
printf("\t溢出\n");
return ERROR;
}
if(i<1||i>l->last+2)
{
printf("\t插入位置不正确\n");
return ERROR;
}
else{
for(j=l->last;j>=i-1;j–)
l->data[j+1]=l->data[j];
l->data[i-1]=x;
l->last++;
}
return OK;
}
6.删除运算
int SeqLDelete(SeqList* l,int i)
{
int j;
if(i<1||l->last+1)
{
printf("\t删除位置不正确\n");
return ERROR;
}
else{
for(j=i;j<=l->last;j++)
l->data[j-1]=l->data[j];
l->last–;
}
return OK;
}
7.建立顺序表
void SeqLCreate(SeqList* l){
int i,n;
printf("\t请输入表的长度:");
scanf("%d",&n);
l->last=n-1;
printf("\t依次输入表中的数据元素(整数):\n");
for(i=0;i<n;i++){
printf("\t第%d个元素是:",i+1);
scanf("%d",&l->data[i]);
}
}
8.输入顺序表
void SeqLPrint(SeqList* l){
int j;
if(l->last<0){
printf("\t表空!\n");
exit(0);
}
else{
printf("\n表的数据元素如下:\n(");
for(j=0;j<=l->last;j++)
printf("%5d",l->data[j]);
printf("\b)\n");
}
}