谁帮我指点下这段程序没一句的意思啊 ?

来源:百度知道 编辑:UC知道 时间:2024/06/17 15:23:15
#include "Var_def02.h"

node *merge_list(node *ah,node *bh)
{
node *ch;
node *pa,*pb,*pc;

ch=initiatesl();
if(ah==NULL || bh==NULL) return(ch);
pa=ah->next;
pb=bh->next;
pc=ch;
while(pa!=NULL && pb!=NULL){
if(pa->data<pb->data){
if(pa->data!=pc->data){
pc->next = pa;
pc = pa;
}
pa = pa->next;
}
else if(pa->data>pb->data){
if(pb->data!=pc->data){
pc->next = pb;
pc = pb;
}
pb = pb->next;
}
else{
if(pa->data!=pc->data){
pc->next =pa;
pc=pa;
}
pa=pa->next;
pb=pb->next;
}
}
while(pa!=NULL){
if(pa->data!=pc->data){
pc->next = pa;
pc = pa;
}
pa = pa->next;
}
while(pb!=NULL){
if(pb->data!=pc->d

你那个头文件不是标准的,不过我找到了你的 另一个 问题。。知道了initiatesl是什么 。。否则不可能做。。。。。。。我试试

#include "Var_def02.h" 定义头文件

node *merge_list(node *ah,node *bh)我觉得你的星号打错了 ,如果没有星号表示定义返回值为链表的函数mergelist
{
node *ch; 定义链表指针ch
node *pa,*pb,*pc;

ch=initiatesl(); 初始化cl 使得其不挂空
if(ah==NULL || bh==NULL) return(ch); 如果ah或bh为空,结束函数,返回值ch
pa=ah->next; pa为ah指向地址的下一个地址
pb=bh->next; pb为bh的下一个地址
pc=ch; pc指向ch指向的地址
while(pa!=NULL && pb!=NULL){ 当pa和pb都不指向空时执行实际上就是pa,pb没到ah,bh的链尾
if(pa->data<pb->data){ 如果pa的data域小于,pb的data域 执行
if(pa->data!=pc->data){ 如果pa的data域不等于pc的data域
pc->next = pa; pc的下一个等于pa,这时pa实际上是ch的最后一个节点
pc = pa; pc指向pa所指的单元,实际上pc