C语言数据结构线性表插入出错

#include<stdio.h>
#include<malloc.h>

#define LISTSIZE 100
#define INCREMENT 10

typedef int ElemType;
typedef struct
{
ElemType *data;
int Nlength; //当前列表长度
int Tlength; //列表总长度
}SqList;

int ListInit(SqList *L)//列表初始化
{
L->data=(ElemType*)malloc(LISTSIZE*sizeof(ElemType));
if(!L->data) return 0;
L->Nlength=0;
L->Tlength=LISTSIZE;
return 1;
}

int ListInsert(SqList L,int i,ElemType x)//列表插入
{
int j;
if(i<1||i>L->Nlength+1) return 0;
for(j=L->Nlength;j>=i;j--)
{
L->data[j]=L->data[j-1];
L->data[j-1]=x;
L->Nlength++;
return 1;

}
}

int ListPrint(SqList *L)//列表输出
{
int k;
for(k=1;k<=L->Nlength;K++)
{
printf("%d\t",L->data[k-1]);
}
return 1;
}

void main()
{
SqList *L;
int i,num;
ElemType x;
ListInit(*L);

printf("请输入元素个数:");
scanf("%d",&num);
for(i=1;i<=num;i++)
{
printf("请输入第%d个元素:\n",i);
scanf("%d",&x);
ListInsert(*L,i,x);
}

ListPrint(*L);

}

这是自己编的一个线性表的插入与输出,由于是新手,不知道哪里错了,请大神指导下!!!
(PS:可能略微有点凌乱...)

问题挺多,帮你改了点

你之前的代码有很多异常点没考虑

#include<stdio.h>
#include<malloc.h>
#include <stdlib.h>

#define LISTSIZE 100
#define INCREMENT 10

typedef int ElemType;
typedef struct
{
ElemType *data;
int Nlength;
int Tlength;
}SqList;

int ListInit(SqList *L)//init
{
L->data=(ElemType*)malloc(LISTSIZE*sizeof(ElemType));
if(!L->data) return 0;
L->Nlength=0;
L->Tlength=LISTSIZE;
return 1;
}

int ListInsert(SqList *L,int i,ElemType x)
{
int j;
if(i<0||i>L->Nlength+1)
{
return 0;
}
if(0 == L->Nlength || i == L->Nlength)
{
L->data[L->Nlength]=x;
L->Nlength++;
}
else
{
for(j=L->Nlength;j>=i;j--)
{
L->data[j]=L->data[j-1];
}

L->data[i]=x;
L->Nlength++;
}

return 1;

}

int ListPrint(SqList *L)
{
int k;
for(k=1;k<=L->Nlength;k++)
{
printf("%d\t",L->data[k-1]);
}

return 1;
}

int main()
{
SqList L;
int i,num;
ElemType x;
ListInit(&L);

printf("please into the num of yushu:");
scanf("%d",&num);
if(num > LISTSIZE)
{
printf("beyond the array size, please checked!");
return -1;
}
for(i=1;i<=num;i++)
{
printf("the i %d is:\n",i);
scanf("%d",&x);
ListInsert(&L,i-1,x);
}

ListPrint(&L);

system("pause");

return 1;
}
温馨提示:答案为网友推荐,仅供参考
相似回答