logo

Vložení

Funkce Vložit se používá k přidání nového prvku do binárního vyhledávacího stromu na vhodné místo. Funkce Insert má být navržena tak, aby uzel při každé hodnotě porušoval vlastnost binárního vyhledávacího stromu.

  1. Přidělte paměť stromu.
  2. Nastavte datovou část na hodnotu a nastavte levý a pravý ukazatel stromu, přejděte na NULL.
  3. Pokud bude položka, která má být vložena, prvním prvkem stromu, pak bude levá a pravá část tohoto uzlu ukazovat na NULL.
  4. Jinak zkontrolujte, zda je položka menší než kořenový prvek stromu, pokud je to pravda, pak rekurzivně proveďte tuto operaci s levou částí kořene.
  5. Pokud je to nepravda, proveďte tuto operaci rekurzivně s pravým podstromem kořene.

Vložit (STROMEČEK, POLOŽKA)

    Krok 1:POKUD STROM = NULL
    Přidělte paměť pro STROM
    NASTAVIT STROM -> DATA = POLOŽKA
    SET STROM -> LEFT = STROM -> RIGHT = NULL
    JINÝ
    POKUD DATA POLOŽKY
    Vložit (STRM -> VLEVO, POLOŽKA)
    JINÝ
    Vložit (STRM -> VPRAVO, POLOŽKA)
    [KONEC POKUD]
    [KONEC POKUD]Krok 2:KONEC

vložení do binárního vyhledávacího stromu

C Funkce

 #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ýstup

 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