文件名称:链表的合并过程-复高斯分布的数学基础理论
文件大小:6.48MB
文件格式:PDF
更新时间:2024-06-28 07:07:18
嵌入式 Linux C
图 8.5 链表的合并过程 该合并过程的代码如下所示: void MergeList(LinkList La,LinkList Lb,LinkList *Lc) { /*合并单链表 La 和 Lb 到 Lc 中*/ LinkList pa,pb,pc; /*初始化 pa、pb,指向链表的第一个元素*/ pa=La->next;pb=Lb->next; *Lc=pc=La; /*判断两个链表是否到达末尾*/ while(pa && pb) { /*判断链表中的元素大小*/ /*若链表 La 的元素小于链表 Lb 的元素,则把链表 La 的元素插入到 Lc 中*/ if(Less_EqualList(&pa->data,&pb->data)) { pc->next=pa;pc=pa;pa=pa->next; } /*若链表 La 的元素大于链表 Lb 的元素,则把链表 Lb 的元素插入到 Lc 中*/ else { pc->next=pb;pc=pb;pb=pb->next; } } /*将还未到达末尾的链表连入 Lc 中,若两个链表都到达末尾,pc->next 为 NULL*/ pc->next = pa?pa:pb; free(Lb); } /*该函数用于比较两个链表元素的大小*/ int Less_EqualList(ElemType *e1,ElemType *e2) { if(strcmp(e1->name,e2->name)<=0) return 1; else return 0; } 下面的这个 main 主函数调用了以上所述的各个函数,它完整地显示出链表的构建、插 入和合并过程,希望读者能实际动手操作,查看该函数的运行结果。