logo

Инсертион

Функција Инсерт се користи за додавање новог елемента у бинарно стабло претраге на одговарајућу локацију. Инсерт функција треба да буде дизајнирана на такав начин да чвор мора да наруши својство бинарног стабла претраге на свакој вредности.

  1. Доделите меморију за дрво.
  2. Подесите део података на вредност и поставите леви и десни показивач стабла, покажите на НУЛЛ.
  3. Ако ће ставка која ће бити уметнута бити први елемент стабла, онда ће лево и десно од овог чвора показивати на НУЛЛ.
  4. У супротном, проверите да ли је ставка мања од коренског елемента стабла, ако је то тачно, а затим рекурзивно извршите ову операцију са леве стране корена.
  5. Ако је ово нетачно, извршите ову операцију рекурзивно са десним подстаблом корена.

Убаци (ДРВО, СТАВКА)

    Корак 1:ИФ ТРЕЕ = НУЛЛ
    Додели меморију за ДРВО
    ПОСТАВИ ДРВО -> ПОДАЦИ = СТАВКА
    ПОСТАВИ ДРВО -> ЛЕВО = ДРВО -> ДЕСНО = НУЛЛ
    ЕЛСЕ
    АКО ПОДАЦИ СТАВКЕ
    Убаци (ДРВО -> ЛЕВО, СТАВКА)
    ЕЛСЕ
    Убаци (ДРВО -> ДЕСНО, СТАВКА)
    [КРАЈ АКО]
    [КРАЈ АКО]Корак 2:КРАЈ

уметање у бинарно стабло претраге

Ц Функција

 #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'); } } 

Излаз

 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