c语言数据结构,新手入门。求大神解释每一行的意思。
发布网友
发布时间:2023-05-03 08:39
我来回答
共1个回答
热心网友
时间:2023-10-19 01:13
void MergeList_L(LinkList &ha, LinkList &hb, LinkList &hc)//合并链表函数,将短链表放到长链表后面
{
LinkList pa, pb;//声明两个链表类型指针
pa = ha;//将ha赋值给pa
pb = hb;//将hb赋值给pb
while (pa->next&&pb->next){//循环,当pa仍有下一个节点,并且pb仍有下一个节点
pa = pa->next;//pa后移一个节点
pb = pb->next;//pb后移一个节点
}
if (!pa->next){//如果pa已经到达末尾
hc = hb;//将hb当前所指向的位置赋值给hc,即头节点
while (pb->next) pb = pb->next;//当pb仍有下一个节点,就后移,直到该链表末尾
pb->next = ha->next;//将ha的下一个节点开始的链表插入到pb的后面
}
else{//如果pa没有到达末尾节点
hc = ha;//将ha赋值给hc,即头节点
while (pa->next) pa = pa->next;//当pa仍有下一个节点,就后移,直到该链表末尾
pa->next = hb->next;//将hb的下一个节点开始的链表插入到pa的后面
}
}
算法的时间复杂度为max(m, n)