单链表的链接
建立长度为n的单链表A和长度为m的单链表B。编程实现将B表链接在A表的尾端,形成一个单链表A。数据类型指定为字符型。
输入
第一行为A表的长度n; 第二行为A表中的数据元素; 第三行为B表的长度m; 第四行为B表中的数据元素。
输出
输出为链接好后的A表中的所有数据元素。
样例输入
4 A B C D 6 1 2 3 4 5 6
样例输出
A B C D 1 2 3 4 5 6
#include<stdio.h>
#include<malloc.h>
struct LinkNode
{
char data;
struct LinkNode *next;
};
struct LinkNode *InitList(int l)
{
char a;
struct LinkNode *p1,*p2,*head;
head=p1=p2=(struct LinkNode *)malloc(sizeof(struct LinkNode));
scanf("%c",&a);
scanf("%c",&p1->data);
if(l!=1)
{
for(int i=1;i<l;i++)
{
p2=(struct LinkNode *)malloc(sizeof(struct LinkNode));
p1->next=p2;
scanf("%c",&a);
if(a!=' '&&a!='\n')
{
p2->data=a;
p1=p2;
}
else
i--;
}
}
p2->next=NULL;
return head;
}
int main()
{
int n,m;
char a;
struct LinkNode *LA,*LB,*p;
scanf("%d",&n);
LA=InitList(n);
scanf("%d",&m);
LB=InitList(m);
p=LA;
while(1)
{
p=p->next;
if(p->next==NULL)
{
p->next=LB;
break;
}
}
p=LA;
while(p!=NULL)
{
printf("%c ",p->data);
p=p->next;
}
}
/*
#include<stdio.h>
int main()
{
char a[100],b[100],k;
int n,m;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%c",&k);
if(k!=' '&&k!='\n')//k!=32&&k!=10
a[i]=k;
else
i--;
}
scanf("%d",&m);
for(int i=0;i<m;i++)
{
scanf("%c",&k);
if(k!=' '&&k!='\n')
b[i]=k;
else
i--;
}
for(int i=0;i<n;i++)
{
printf("%c ",a[i]);
}
for(int i=0;i<m;i++)
{
printf("%c ",b[i]);
}
}
*/