单链表的问题,创建链表有问题
#include<stdio.h>#include<stdlib.h>
typedef struct node
{
char data;
struct node *next;
}linklist;
linklist *creat()//创建链表的函数
{ char ch;
linklist *head,*p,*s;
head=(linklist*)malloc(sizeof(linklist));
p=head;
ch=getchar();
while(ch!='$')//以字符$为结束的标志, ps:在这里,我调用这函数的时候,要输入两次的$字符才可以结束,不明白
{
s=(linklist*)malloc(sizeof(linklist));
s->data=ch;
p->next=s;
p=s;
ch=getchar();
}
p->next=NULL;
return head;
}
linklist *num(linklist *p)
{
int b=0,a;
printf("请输入要查找的结点");//还有,这里的这个语句也会出现两次,不知道为什么,希望各位帮帮手
scanf("%d",&a);
while((p->next!=NULL)&&(b<a))
{
p=p->next;
b++;
}
if(b==a) return p;
else return NULL;
}
int main()
{
linklist *shu,*shuzi;
creat();
shu=creat();
num(shu);
shuzi=num(shu);
printf("%s",shuzi->data);
return 0;
}