1.代码段1简介:要求不破坏原有表LA和LB,所以采用复制的方式生成LC,即采用建表方法新建表LC。采用顺序表存放有序表时的二路归并算法。
1.1代码1
'''
void UnionList(SqList * LA, SqList * LB, SqList * &.LC) //1
{ //2
int i=0,j=0,k=0; //i、j分别为LA、LB的下标,k为LC中元素的个数 //3
LC=(SqList * )malloc( sizeof(SqList)); //建立有序顺序表LC //4
while (i
if (LA-> data[i< LB -> data[i]) //6
{ //7
LC- > data[k]= LA-> data[i]; //8
i++ ;k++; //9
} //10
else //LA-> data[i]> LB -> data[j] //11
{ //12
LC-> data[k]= LB -> data[j]; //13
j++;k++ ; //14
} //15
while (i< LA -> length) //LA尚未扫描完,将其余元素插入LC中 //16
{ //17
LC-> data[k]= LA -> data[i]; //18
i++;k++; //19
} //20
while(j
{ //22
LC->data[k]=LB->data[j]; //23
j++;k++; //24
} //25
LC->length=k; //26
} //27
'''
1.2不懂的地方
2.代码段1简介:实现有序链表的删除操作。
2.1代码1
'''
void ListDelete(LinkList &L,ElemType e)//1
{//2
LinkList p=L->next,q=L;//3
while(p!=NULL&&p->data!=e)//4
{//5
q=p;//6
p=p->next;//7
}//8
if(p==NULL)//9
{//10
cout<<e<<"找不到!"<<endl;//11
}//12
else {//13
q->next=p->next;//14
delete p;//15
}//16
}//17
'''
2.2不懂的地方
为什么空链表的样例通不过?
浙公网安备 33010602011771号