#include typedef struct node {
char ch;
struct node *next;
}*LinkList,*pNode;
LinkList GetEmptyList() {
LinkList head = (pNode)malloc(sizeof(struct node));
head->next = NULL;
head->ch = 0;
return head;
}
LinkList CString2LinkList(char str[]) { // 字符串转换为链表
LinkList head = GetEmptyList();
pNode p = head;
int i = 0;
while(str[i]) {
p->next = (pNode)malloc(sizeof(struct node));
p->next->ch = str[i];
++i;
p = p->next;
}
p->next = NULL;
return head;
}
char *LinkList2CString(LinkList head,char str[]) {
pNode p = head->next;
int i = 0;
while(p) {
str[i] = p->ch;
++i;
p = p->next;
}
str[i] = 0;
return str;
}
void Show(LinkList head) {
pNode p = head->next;
while(p) {
printf("%c ",p->ch);
p = p->next;
}
putchar('\n');
}
int main() {
char s[61],t[61];
printf("请输入字符串:");
fgets(s,60,stdin);
LinkList head = CString2LinkList(s);
printf("链表内容:\n");
Show(head);
printf("\n字符串内容:\n");
printf("%s\n",LinkList2CString(head,t));
return 0;
}