Advertisement
IvoB1n

Untitled

Nov 15th, 2020
652
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. void BTInsert (tBTNodePtr *RootPtr, int Content) {
  2. /*   --------
  3. ** Vloží do stromu nový uzel s hodnotou Content.
  4. **
  5. ** Z pohledu vkládání chápejte vytvářený strom jako binární vyhledávací strom,
  6. ** kde uzly s hodnotou menší než má otec leží v levém podstromu a uzly větší
  7. ** leží vpravo. Pokud vkládaný uzel již existuje, neprovádí se nic (daná hodnota
  8. ** se ve stromu může vyskytnout nejvýše jednou). Pokud se vytváří nový uzel,
  9. ** vzniká vždy jako list stromu. Funkci implementujte nerekurzivně.
  10. **/
  11.     tBTNodePtr tmp_node = *RootPtr;
  12.  
  13.     while (tmp_node != NULL) {
  14.         if (tmp_node->Cont > Content) {
  15.             tmp_node = tmp_node->LPtr;
  16.         } else if (tmp_node->Cont < Content) {
  17.             tmp_node = tmp_node->RPtr;
  18.         } else if (tmp_node->Cont == Content) {
  19.             return;
  20.         }
  21.     }
  22.  
  23.         tBTNodePtr new_node = malloc(sizeof(struct tBTNode));
  24.         if (new_node == NULL) {
  25.             return;
  26.         }
  27.  
  28.         new_node->Cont = Content;
  29.         new_node->LPtr = NULL;
  30.         new_node->RPtr = NULL;
  31.  
  32.         tmp_node = new_node;
  33. }
Advertisement
RAW Paste Data Copied
Advertisement