俩个递增有序单链表的合并算法(含头结点)


void  merge(LNode *A,LNode *B,LNode *&C)    //此处C指针为引用型

{  

         LNode *p=A->next;

         LNode  *q=B->next;

         LNode  *r;     //r是尾指针

         C=A;

         C->next=NULL;

          r=C;

          free(B);       //释放B的头结点

          While(p!=NULL&&q!=NULL)

          {

              if(p->data<=q->data)

               {  

                    r->next=p;

                    p->next=p;

                     r->next=r;

                }

                else

               {

                  r->next=q;

                  q->next=q;

                  r->next=r;

                 }

                 if(p!=NULL)

                    r->next=p;

                 if(q!=NULL)

                     r->next=q;

             }

}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM