logo

Vkladanie

Funkcia vložiť sa používa na pridanie nového prvku do binárneho vyhľadávacieho stromu na vhodné miesto. Funkcia Insert má byť navrhnutá tak, aby pri každej hodnote uzol porušoval vlastnosť binárneho vyhľadávacieho stromu.

  1. Prideľte pamäť stromu.
  2. Nastavte dátovú časť na hodnotu a nastavte ľavý a pravý ukazovateľ stromu, ukážte na NULL.
  3. Ak položka, ktorá sa má vložiť, bude prvým prvkom stromu, ľavá a pravá časť tohto uzla bude ukazovať na NULL.
  4. V opačnom prípade skontrolujte, či je položka menšia ako koreňový prvok stromu, ak je to pravda, potom túto operáciu vykonajte rekurzívne s ľavou stranou od koreňa.
  5. Ak je to nepravda, vykonajte túto operáciu rekurzívne s pravým podstromom koreňa.

Vložiť (TREE, ITEM)

    Krok 1:AK STROM = NULL
    Prideľte pamäť pre STROM
    NASTAVIŤ STROM -> ÚDAJE = POLOŽKA
    SET STROM -> LEFT = STROM -> RIGHT = NULL
    ELSE
    AK ÚDAJE POLOŽKY
    Vložiť(STROMEČ -> VĽAVO, POLOŽKA)
    ELSE
    Vložiť(STROMEČ -> VPRAVO, POLOŽKA)
    [KONIEC AK]
    [KONIEC AK]Krok 2:KONIEC

vloženie do binárneho vyhľadávacieho stromu

Funkcia C

 #include #include void insert(int); struct node { int data; struct node *left; struct node *right; }; struct node *root; void main () { int choice,item; do { printf('
Enter the item which you want to insert?
'); scanf('%d',&item); insert(item); printf('
Press 0 to insert more ?
'); scanf('%d',&choice); }while(choice == 0); } void insert(int item) { struct node *ptr, *parentptr , *nodeptr; ptr = (struct node *) malloc(sizeof (struct node)); if(ptr == NULL) { printf('can't insert'); } else { ptr -> data = item; ptr -> left = NULL; ptr -> right = NULL; if(root == NULL) { root = ptr; root -> left = NULL; root -> right = NULL; } else { parentptr = NULL; nodeptr = root; while(nodeptr != NULL) { parentptr = nodeptr; if(item data) { nodeptr = nodeptr -> left; } else { nodeptr = nodeptr -> right; } } if(item data) { parentptr -> left = ptr; } else { parentptr -> right = ptr; } } printf('Node Inserted'); } } 

Výkon

 Enter the item which you want to insert? 12 Node Inserted Press 0 to insert more ? 0 Enter the item which you want to insert? 23 Node Inserted Press 0 to insert more ? 1