第4周项目3(2)

/* 
烟台大学计算机学院 
 
文件名称:xm.cpp 
 
作者:于琛 
 
完成日期:2017年9月24日 
 
问题描述:连接两个链表
 
输入描述:无
 
输出描述:L1,L2链接后的链表元素的值

用到了前面项目设计的算法库lish.h
 
*/ 




#include <stdio.h>
#include "../list.h"//用到了前面项目设计的算法库lish.h

void Link(Linklist *&L1,Linklist *&L2)
{
    Linklist *p,*q;//p,q分别记录L1,L2->next

    p=L1->next;

    q=L2->next;

    L2->next=NULL;

    while(p->next!=NULL)//遍历L1到最后
    {
        p=p->next;


    }
    p->next=q;//L1的尾结点的next指针赋值为L2的首结点

    free(L2);
}//算法复杂度为O(m),只需要由L1的头节点找到其尾节点即可,与L1的长度相关,与L2的长度n无关


int main()
{
    Linklist *A, *B;
    int i;
    ElemType a[]= {1,2,3,4};
    ElemType b[]= {5,6,7,8,9,10};
    initList(A);//初始化A
    for(i=3; i>=0; i--)
        ListInsert(A, 1, a[i]);//插入建立A
    initList(B);//初始化B
    for(i=5; i>=0; i--)
        ListInsert(B, 1, b[i]);//插入建立B
    Link(A, B);//链接A与B
    printf("A:");
    DispList(A);//输出A
    DestroyList(A);//销毁A
    return 0;
}

算法复杂度为O(m),只需要由L1的头节点找到其尾节点,与L1的长度m相关,与L2的长度n无关


运行结果:


学习心得:


学会了如何连接两个单链表


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值