#include <stdio.h>
#include <stdlib.h>
typedef char datatype;
typedef struct node {
datatype data;
struct node *next;
} linklist;
linklist *CreateListF();
void PrintList(linklist *head);
int main() {
printf("输入字母(中间不用空格),以Enter键结束\n");
linklist *L_F = CreateListF();
printf("采用带头结点的头插法建立单链表:\n");
PrintList(L_F);
return 0;
}
linklist *CreateListF() {
linklist *head;
linklist *p;
char ch;
head = (linklist *)malloc(sizeof(linklist));
head->next = NULL;
while ((ch = getchar()) != '\n') {
p = (linklist *)malloc(sizeof(linklist));
p->data = ch;
p->next = head->next;
head->next = p;
}
return head;
}
void PrintList(linklist *head) {
linklist *p = head;
p = p->next;
while (1) {
if (p == NULL) {
printf("\n");
return;
}
printf("%5c", p->data);
p = p->next;
}
}