贝尔4567 2022-09-24 13:45 采纳率: 66.7%
浏览 93
已结题

两个顺序表的收尾连接,连接后无序。

两个线性表的连接,例如第一个是1 3 4 5,第二个为4 5 6 7,连接后为1 3 4 5 4 5 6 7。怎么做啊,需要代码

  • 写回答

3条回答 默认 最新

  • 日向晚,声声慢 2022-09-24 14:35
    关注

    顺序表和单链表

    #include<stdio.h>
    
    
    //顺序表
    typedef struct OderList
    {
        int data;
    }List;
    
    void MergeList(int* list1, int n1, int* list2, int n2, List* list, int n)
    {
        int i = 0;
        int j = 0;
        for (; i < n1; i++)
        {
            (list + i)->data = list1[i];
        }
        for (; i < n; i++, j++)
        {
            list[i].data = list2[j];
        }
    }
    
    //展示链表
    ShowList(List* list, int x)
    {
        int i = 0;
        for (; i < x; i++)
        {
            printf("%d ", list[i].data);
        }
        printf("\n");
    }
    
    //初始化
    void InitList(List* list, int x)
    {
        int i = 0;
        printf("输入%d个数据:\n",x);
        for (; i < x; i++)
        {
            scanf("%d", &list[i].data);
        }
    }
    
    int main()
    {
        int n1 = 0;
        printf("输入第一个顺序表的长度:>");
        scanf("%d", &n1);
        List* list1 = (List*)malloc(sizeof(List*) * n1);
        InitList(list1, n1);//初始化
    
        int n2 = 0;
        printf("输入第二个顺序表的长度:>");
        scanf("%d", &n2);
        List* list2 = (List*)malloc(sizeof(List*) * n2);
        InitList(list2, n2);//初始化
    
        //合并后的顺序表长
        int n = n1+n2;
        List* list = (List*)malloc(sizeof(List*) * n);
    
    
    
        //合并
        MergeList(list1, n1, list2, n2, list, n);
        printf("合并后:\n");
        ShowList(list, n);
    
        free(list);
        free(list1);
        free(list2);
        list2 = NULL;
        list1 = NULL;
        list = NULL;
    
        return 0;
    }
    
    
    

    img

    单链表

    #include<stdio.h>
    #include<stdlib.h>
    typedef struct Node
    {
        int data;
        struct Node* next;
    }Node_t;
    
    
    Node_t* AollcNode(int x)
    {
        Node_t* new = (Node_t*)malloc(sizeof(Node_t));//新建一个节点
        //初始化
        new->data = x;
        new->next = NULL;
        return new;
    }
    
    //插入数据
    void InintList(Node_t* head, Node_t** end)
    {
        int i = 0;
        int x = 0;
        Node_t* p = NULL;
        printf("输入链表长度:>");
        int n = 0;
        scanf("%d", &n);
        for (; i < n; i++)
        {
            scanf("%d", &x);
            p = AollcNode(x);
            (*end)->next = p;
            *end = p;
        }
    }
    
    void MergeList(Node_t* head, Node_t* head1, Node_t* head2)
    {
        Node_t* p = head;
        Node_t* p1 = head1->next;//指向第一个节点
        Node_t* p2 = head2->next;//指向第一个节点
        while (p1)
        {
                p->next = p1;
                p = p1;
                p1 = p1->next;
        }
        while (p2)
        {
            p->next = p2;
            p = p2;
            p2 = p2->next;
        }
    
    }
    
    void ShowNode(Node_t* head)
    {
        Node_t* p = head->next;
        while (p)
        {
            printf("%d->", p->data);
            p = p->next;
        }
        printf("NULL\n");
    }
    
    int main()
    {
        Node_t* head1 = AollcNode(0);
        Node_t* head2 = AollcNode(0);
        Node_t* head3 = AollcNode(0);//合并后的tou
        printf("初始化链表1\n");
        Node_t* end1 = head1;
        InintList(head1, &end1);
        ShowNode(head1);
    
        printf("初始化链表2\n");
        Node_t* end2 = head2;
        InintList(head2, &end2);
        ShowNode(head2);
    
        printf("合并后:>");
        MergeList(head3, head1, head2);
        ShowNode(head3);
    
        free(head1);
        free(head2);
        free(head3);
        head1 = NULL;
        head2 = NULL;
        head3 = NULL;
    
    
        return 0;
    }
    
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月25日
  • 已采纳回答 9月24日
  • 修改了问题 9月24日
  • 赞助了问题酬金10元 9月24日
  • 展开全部

悬赏问题

  • ¥15 r语言神经网络自变量重要性分析
  • ¥15 基于双目测规则物体尺寸
  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢