为什么长度为4的链表只能储存2个字母
int InsElem(SLink *L,ElemType x,int i)
{
int j=1;
SLink *p=L,*s;
s=(SLink *)malloc(sizeof(SLink));
s->data=x;s->next=NULL;
if (iGetLength(L)+1)
return 0;
while (j {
p=p->next;j++;
}
s->next=p->next;
p->next=s;
return 1;
}
int main()
{
int a,i,k;char l;
SqStack S;
InitStack(S);
SLink *L;
InitList(L);
printf("输入链性表的长度:\n");
scanf("%d",&k);
printf("输入链性表的元素:\n");
for(i=1;i<=k;i++)
{
scanf("%c",&l);
InsElem(L,l,i);
}
compare(L,S);
return(0);
}
SLink怎么定义的,data字段对应的是什么类型?
能不能存更多字符取决于它的实现方式。
另外虽然你SLink分配了内存,但是data数据域并没有。你是不是忘记分配了。