#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <math.h>
typedef char datatype;
typedef struct node{
datatype data;
struct node *next;
} listnode;
typedef listnode *linklist;
listnode *p;
linklist createlist(void)
{
char ch;
linklist head;
listnode *p;
head=NULL;/*初始化为空*/
ch=getchar( );
while (ch!='\n'){
p=(listnode*)malloc(sizeof(listnode));/*分配空间*/
p->data=ch;/*数据域赋值*/
p->next=head;/*指定后继指针*/
head=p;/*head指针指定到新插入的结点上*/
ch=getchar( );
}
return (head);
}
linklist concatenate(linklist list1,linklist list2)
{
listnode *temp;
if (list1==NULL)
return list2;
else {
if (list2!=NULL) {
for ( temp =list1; temp->next; temp = temp->next )
; /*遍历到list1的末尾*/
temp->next=list2;/*将list2链接到list1末尾*/
}
}
return list1;
}
main(){
linklist list1,list2,list3;
list1=createlist();
list2=createlist();
list3=concatenate(list1,list2);
do
{
printf("%c",list3->data);
list3=list3->next;
}while(list3!=NULL);
printf("\n");
}