#include<stdio.h> #include<stdlib.h> #include<list.h> struct linked_list
{ char data; struct linked_list *next ; }; struct linked_list *createlink() { struct linked_list *head,*p; char ch; head=NULL; p=head; while(ch=getchar()!='/0') { p=(struct linked_list *)malloc(sizeof(struct linked_list)); p->data=ch; p->next=head; head=p; } return(head);
}
main() { int t,s; struct linked_list *head[1]; for(t=0;t<2;t++) { head[t]=createlink(); s=count(head[t]); printf("count=%d/n",s); print_list(head[t]); printf("/n"); } concatenate(head[0],head[1]); s=count(head[0]); printf("count=%d/n",s); print_list(head[0]); exit(0); } concatenate(a,b) struct link_list *a,*b; { if(a->next==NULL) a->next=b; else concatenate(a->next,b); }
void print_list(struct linked_list *head) { struct link_list *q; q=head; while(q!=NULL) { printf("%c",q->data); q=q->next; } } void count(struct linked_list *head) { struct linked_list *p; int k=0; p=head; while(p!=NULL) { k++; p=p->next; } return(k); }