西南科技大学OJ题 单链表的链接0954

单链表的链接

建立长度为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]);
    }
}
*/ 

猜你喜欢

转载自blog.csdn.net/qq_40593308/article/details/82559740
今日推荐