#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
//单链表的定义:
typedef char ElemType; //DataType可以是任何相应的数据类型如int, float或char
typedef struct node //结点类型定义
{ ElemType data; //结点的数据域
struct node *next; //结点的指针域
}Node,*LinkList;
void main()
{
LinkList head;
LinkList CreateListR(void);
void PrintList(LinkList head);
head=CreateListR(); //建立单链表
PrintList(head); //打印单链表
}
//单链表的建立:
LinkList CreateListR(void)
{ char ch;
LinkList head; //头指针
Node *s,*r; //工作指针
head=NULL; //链表开始为空
r=NULL; //链表尾指针开始为空
while ((ch=getchar())!='$')
{ s=(Node *)malloc(sizeof(Node)); //生成新结点
s->data=ch;
if (head==NULL)
head=s; //新结点插入空表
else r->next=s;
r=s;
}
if (r!=NULL)
r->next=NULL; //对于非空表,将尾结点指针域置空
return head; //返回头指针
}
//单链表的打印:
void PrintList(LinkList head)
{
Node *p;
for(p=head;p;p=p->next)
printf("%c",p->data);
printf("\n");
}