演算法刪除單連結串列中重複的元素

dongyu2013發表於2014-04-15

點選(此處)摺疊或開啟

  1. void pur_LinkList ( LinkList H )
  2. {
  3.     LNode *p,*q,*r;
  4.     p=H->next; /*p指向第一個結點*/
  5.     if ( p==NULL ) return;
  6.     while ( p->next )
  7.     {
  8.         q=p;
  9.         while ( q->next ) /**p的後繼開始找重複結點*/
  10.         {
  11.             if( q->next->data==p->data )
  12.             {
  13.                 r=q->next; /*找到重複結點,用r指向,刪除*r */
  14.                 q->next=r->next;
  15.                 free ( r );
  16.             } /*if*/
  17.             else
  18.                 q=q->next;
  19.         } /*while(q->next)*/
  20.        p=p->next; /*p指向下一個,繼續*/
  21.     } /*while(p->next)*/

  22. }

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29012686/viewspace-1142683/,如需轉載,請註明出處,否則將追究法律責任。

相關文章