关于顺序存储结构线性表的插入与删除

一半自己写一半借鉴别人的写成的。请大家帮我看看哪里有错。
顺便有一些问题:调用的函数里为什么一个返回的是1,一个返回的是y?

#include<stdio.h>

void PrintList(int *L,int n,int i);
int InsertSList(int *L,int n,int i,int x);
ElemType DeleteSList(int *L,int n,int i);

main()
{
int n,temp;
int L[15]=(10,25,52,9,31,88,26,44,50,78);
printf("输出原线性表:%d\n",PrintList(L,10));
L[15]=InsertSList(L,15,3,50)
printf("在第3个位置插入元素50:%d\n",PrintList(L,11));
L[15]=DeleteSList(L,15,3);
printf("删除第3个位置的元素:%d\n",PrintList(L,10));
}

void PrintList(int *L,int n,int i)
{
for(i=0;i<n;i++)
printf("%d ",L[i]);
printf("\n");
}

ElemType InsertSList(int *L,int n,int i,int x)
{/*在顺序存储结构的线性表L中第i个元素之前插人元素x,n为表长*/
int j;
if((i<1)||(i>n+1))
{
printf("参数非法");
return(0);
}
else
{
for(j=n;j>=i;j--)
L[j+1]=L[j];
L[j]=x;
n=n+1;
return(1);
}
}

int DeleteSList(int *L,int n,int i)
{/*在顺序存储结构的线性表L中删除第i个元素*/
int j,y;
if((i<1)||(i>n+1))
{
printf("参数非法");
return(0);
}
else
{
y=L[i];
for(j=i+1;j<n;j++)
L[j-1]=L[j];
n=n-1;
return(y);
}
}

printf("输出原线性表:%d\n",PrintList(L,10)); 错误,PrintList没有返回值(int)

ElemType InsertSList(...)》》》int InsertSList(...)

int DeleteSList(int *L,int n,int i)中
return(y); 》》》return 1;

看看你的定义:
void PrintList(int *L,int n,int i);
int InsertSList(int *L,int n,int i,int x);
ElemType DeleteSList(int *L,int n,int i);
与实现 type 不同....
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-10-14
打错了。。。应该是return 1
相似回答