logo

Įdėjimas

Funkcija Įterpti naudojama naujam elementui įtraukti į dvejetainį paieškos medį atitinkamoje vietoje. Įterpimo funkcija turi būti suprojektuota taip, kad kiekvienoje reikšmėje ji turi pažeisti dvejetainio paieškos medžio savybę.

  1. Paskirkite atmintį medžiui.
  2. Nustatykite duomenų dalį į vertę ir kairįjį bei dešinįjį medžio žymeklį, nukreipkite į NULL.
  3. Jei elementas, kurį reikia įterpti, bus pirmasis medžio elementas, tada šio mazgo kairėje ir dešinėje pusėje bus nurodyta NULL.
  4. Kitu atveju patikrinkite, ar elementas yra mažesnis už šakninį medžio elementą, jei tai tiesa, tada rekursyviai atlikite šią operaciją su šaknies kairiąja puse.
  5. Jei tai klaidinga, atlikite šią operaciją rekursyviai su dešiniuoju šaknies medžiu.

Įterpti (MEDIS, ITEM)

    1 žingsnis:JEI MEDIS = NULIS
    Paskirstykite atmintį TREE
    NUSTATYTI MEDĮ -> DUOMENYS = PREKĖS
    NUSTATYTI MEDĮ -> KAIRĖ = MEDIS -> DEŠINĖ = NULL
    KITAS
    JEI PREKĖS DUOMENYS
    Įterpti (MEDIS -> KAIRĖ, PRIEMONĖ)
    KITAS
    Įterpti (MEDŽIS -> DEŠINĖJIS, PRIEMONĖ)
    [JEI PABAIGA]
    [JEI PABAIGA]2 žingsnis:GALAS

įterpimas į dvejetainį paieškos medį

C Funkcija

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

Išvestis

 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