链表方面一直不是特别清楚。自己编了个链表,但却无法正确输出,求大神帮忙
#include
#include
typedef struct lnode Lnode;
struct lnode
{
int data;
Lnode *next;
};
Lnode *makeNode(int data)
{
Lnode *new_node=(Lnode *)malloc(sizeof(Lnode));
if(new_node==NULL)
{ printf("error");
exit(1);
}
else
{ new_node->data=data;
new_node->next=NULL;
}
return(new_node);
}
Lnode *insert(Lnode *new_node,Lnode *head)
{
Lnode *pre_node=NULL;
if(pre_node==NULL)
{
head=new_node;
pre_node=head;
}
else
{
pre_node->next=new_node;
pre_node=pre_node->next;
}
return(head);
}
void printlist(Lnode *head)
{
Lnode *node=head;
while(node!=NULL)
{
printf("%c",node->data);
node = node->next;
}
printf("\n");
}
int main()
{
Lnode *list=NULL;
Lnode *node;
int ch;
while(ch=getchar()!=EOF)
{
if(ch=='\n')
{
printlist(list);
}
else
{
list=insert(makeNode(ch),list);
}
}
return 0;
}