第4周项目3(2)

来源:互联网 发布:网络之复仇剑士下载 编辑:程序博客网 时间:2024/06/05 10:03
/* 烟台大学计算机学院  文件名称:xm.cpp  作者:于琛  完成日期:2017年9月24日  问题描述:连接两个链表 输入描述:无 输出描述:L1,L2链接后的链表元素的值用到了前面项目设计的算法库lish.h */ #include <stdio.h>#include "../list.h"//用到了前面项目设计的算法库lish.hvoid 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无关


运行结果:


学习心得:


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


原创粉丝点击