汗,帮一下小弟!这样都会出错
#include<stdio.h>#include<malloc.h>
typedef char elem;
typedef struct list
{
elem data;
struct list *next;
}list_q;
void initlis(list *&s)
{
s=(list *)malloc(sizeof(list));
s-next=NULL;//初始化一个线性表
}
int listleng(list *s)
{
int i=0;
while(s!=NULL)
{
i++;
s=s->next;
}
//长度
return i;
}
void getelem(list *s,int i,elem &date)
{
int j=0;
while(s!=NULL)
{
j++;
s=s->next;
}
if(s==NULL&&j>i)
{
printf("你的线性表有误");
}
else
{
date=s->data;
}
}
void listinsert(list *&s,int i,elem e)
{
int j=0;
list *p;
p=(list *)malloc(sizeof(list));
p->data=e;
while(s!=NULL&&j<i-1)
{ j++;
s=s->next;
}
if(j>i-1)
{
printf("出错");
}
else
{
p->next=s->next; s->next=p; }
}
void listdelete(list *&s,int i,elem e)
{ list *q;
int j=0;
while(s!=NULL&&j<i-1)
{ j++;
s=s->next; /
}
q=s->next;
if(j>i-1)
{
printf("删除出错");
}
else
{
s->next=q->next;
}
free(q); //释放
}
void display(list *s)
{
while(s!=NULL)
{
printf("%c",s->data);
s=s->next;
}
}
int main()
{
char ch[5];
int n;
list *s; //建立一个线性表
initlis(s);//初始化
for(n=0;n<5;n++)
{
printf("输入%d个字符",n+1);
scanf("%c",&ch[n]);
listinsert(s,n,ch[n]);
}
printf("输出的结果:")
display(s);
return 0;
}
帮看一下,那里出错!!!