Advertisement
Guest User

Untitled

a guest
Nov 30th, 2015
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.07 KB | None | 0 0
  1. bool CListePalindrome::Inserer(CPalindrome * pUnPalindrome)
  2. {
  3.     CNoeudPalindrome * pUnNoeud = new CNoeudPalindrome(pUnPalindrome);
  4.     bool bInsertion = false;
  5.     bool bSontEgaux = false;
  6.  
  7.     if (m_pLePremier == 0)
  8.     {
  9.         m_pLePremier = pUnNoeud;
  10.         bInsertion = true;
  11.     }
  12.     else
  13.     {
  14.         CNoeudPalindrome * pActuel = m_pLePremier;
  15.         // Cas particulier: si l'on insère devant l'item en première position
  16.         if (pUnNoeud->m_pLeElement < pActuel->m_pLeElement)
  17.         {
  18.             m_pLePremier = pUnNoeud;
  19.             pUnNoeud->m_pLeSuivant = pActuel;
  20.             bInsertion = true;
  21.         }
  22.  
  23.  
  24.         while ((pActuel->m_pLeSuivant != 0) && (!bInsertion) && (!bSontEgaux))
  25.         {
  26.             if (pUnNoeud->m_pLeElement > pActuel->m_pLeSuivant->m_pLeElement)
  27.             {
  28.                 pActuel = pActuel->m_pLeSuivant;
  29.             }
  30.             else if (pUnNoeud->m_pLeElement < pActuel->m_pLeSuivant->m_pLeElement)
  31.             {
  32.                 pUnNoeud->m_pLeSuivant = pActuel->m_pLeSuivant;
  33.                 pActuel->m_pLeSuivant = pUnNoeud;
  34.                 bInsertion = true;
  35.             }
  36.             else
  37.             {
  38.                 bSontEgaux = true;
  39.                 m_pfncCallBack(pUnNoeud->m_pLeElement);
  40.             }
  41.         }
  42.     }
  43.  
  44.  
  45.     return bInsertion;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement