logo

Вмъкване

Функцията Insert се използва за добавяне на нов елемент в дърво за двоично търсене на подходящо място. Функцията за вмъкване трябва да бъде проектирана по такъв начин, че възелът да нарушава свойството на дървото за двоично търсене при всяка стойност.

  1. Разпределете паметта за дърво.
  2. Задайте частта с данни на стойността и задайте левия и десния показалец на дървото, посочете NULL.
  3. Ако елементът, който ще бъде вмъкнат, ще бъде първият елемент на дървото, тогава отляво и отдясно на този възел ще сочат към NULL.
  4. В противен случай проверете дали елементът е по-малък от коренния елемент на дървото, ако това е вярно, тогава рекурсивно изпълнете тази операция с лявата част на корена.
  5. Ако това е невярно, изпълнете тази операция рекурсивно с дясното поддърво на корена.

Вмъкване (ДЪРВО, ЕЛЕМЕНТ)

    Етап 1:IF TREE = NULL
    Разпределете памет за ДЪРВО
    ЗАДАВАНЕ НА ДЪРВО -> ДАННИ = ЕЛЕМЕНТ
    SET TREE -> LEFT = TREE -> RIGHT = NULL
    ДРУГО
    АКО ДАННИ ЗА АРТИКУЛА
    Вмъкване (ДЪРВО -> НАЛЯВО, ЕЛЕМЕНТ)
    ДРУГО
    Вмъкване (ДЪРВО -> ДЯСНО, ЕЛЕМЕНТ)
    [КРАЙ НА АКО]
    [КРАЙ НА АКО]Стъпка 2:КРАЙ

вмъкване в двоично дърво за търсене

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

Изход

 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