• 7-3 两个有序链表序列的交集 (20 分)


    7-3 两个有序链表序列的交集 (20 分)

    已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。

    输入格式:

    输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用1表示序列的结尾(1不属于这个序列)。数字用空格间隔。

    输出格式:

    在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL

    输入样例:

    1 2 5 -1
    2 4 5 8 10 -1
    

      

    输出样例:

    2 5
    

      

    #include<stdio.h>
    #include<stdlib.h>
    typedef struct LNode
    {
        int data;
        struct LNode* next;
    }LNode, *List;
    void CreatList(List &L)//构造链表
    {
        LNode *p, *temp;
        L = (LNode* )malloc(sizeof(LNode));
        p = L;
        int t;
        while(scanf("%d", &t)!=EOF){
            if(t == -1)
                return ;
            temp = (LNode*)malloc(sizeof(LNode));
            temp->next = NULL;
            temp->data = t;
            p->next = temp;
            p = temp;
        }
    }
    List MergeToInter(List L1, List L2)//利用归并排序的思路稍作修改
    {
        List L;
        L = (LNode*)malloc(sizeof(LNode));
        L->next = NULL;
        LNode *p = L;
        L1 = L1->next;
        L2 = L2->next;
        while(L1!=NULL && L2!=NULL){
            if(L1->data < L2->data)//L1后移
                L1 = L1->next;
            else if(L2->data < L1->data)//L2后移
                L2 = L2->next;
            else{//相等则存入
                p->next = L1;
                p = L1;
                L1 = L1->next;
                L2 = L2->next;
            }
        }
    
         return L;
    }
    void CoutList(List L)
    {
        if(L->next == NULL){
            printf("NULL");
            return ;
        }
        L = L->next;
        while(L != NULL){
            if(L->next != NULL)
                printf("%d ", L->data);
            else
                printf("%d", L->data);
            L = L->next;
        }
    }
    int main()
    {
        List L1, L2, L;
        CreatList(L1);
        CreatList(L2);
        L = MergeToInter(L1, L2);
        CoutList(L);
    }
    

      

  • 相关阅读:
    Chapter 14_2 全局变量声明
    chapter 14_1 环境
    chapter 13_4 跟踪table的访问
    Linq to Entity 和 Linq to Object 异同
    ADO.net实体类操作
    XML
    JavaScript
    CSS样式表
    HTML
    java 反射
  • 原文地址:https://www.cnblogs.com/Jie-Fei/p/10135649.html
Copyright © 2020-2023  润新知