写正确函数需要注意的地方:两个非降序链表的并集,1>2>3和2>3>5合并为1>2>3>5。

来源:互联网 发布:单片机基础知识 编辑:程序博客网 时间:2024/06/04 23:29
int OutCombine(Node* p1, Node* p2){while(p1!=NULL && p2!=NULL){if(p1->value>p2->value){cout<<p2->value<<" ";p2=p2->pNext;}else if(p1->value<p2->value){cout<<p1->value<<" ";p1=p1->pNext;}else{cout<<p1->value<<" ";p1=p1->pNext;p2=p2->pNext;}}if(p1!=NULL)//剩余的部分直接添加到末尾。 {while(p1!=NULL){cout<<p1->value<<" ";p1=p1->pNext;}cout<<endl;}else if(p2!=NULL){while(p2!=NULL){cout<<p2->value<<" ";p2=p2->pNext;}cout<<endl;}return 0;}int _tmain(int argc, _TCHAR* argv[]){srand(time(0));int plength1=rand()%10;int plength2=rand()%10;Node* p1=NULL;Node* p2=NULL;int startvaluep1=0;int startvaluep2=0;for(int i=0;i<plength1;++i)addEnd(startvaluep1=rand()%3+startvaluep1,p1);for(int i=0;i<plength2;++i)addEnd(startvaluep2=rand()%3+startvaluep2,p2);print(p1);print(p2);OutCombine(p1,p2);getchar();return 0;}