logo

Indskud

Indsæt-funktionen bruges til at tilføje et nyt element i et binært søgetræ på et passende sted. Indsæt-funktionen skal designes på en sådan måde, at den skal node krænke egenskaben for binært søgetræ ved hver værdi.

  1. Tildel hukommelsen til træ.
  2. Indstil datadelen til værdien og indstil venstre og højre markør for træet, peg på NULL.
  3. Hvis elementet, der skal indsættes, vil være det første element i træet, vil venstre og højre for denne node pege på NULL.
  4. Ellers skal du kontrollere, om elementet er mindre end rodelementet i træet, hvis dette er sandt, så udfør denne operation rekursivt med venstre for roden.
  5. Hvis dette er falsk, så udfør denne operation rekursivt med det højre undertræ af roden.

Indsæt (TRÆ, VARE)

    Trin 1:HVIS TRÆ = NULL
    Tildel hukommelse til TREE
    SÆT TRÆ -> DATA = VARE
    INDSTIL TRÆ -> VENSTRE = TRÆ -> HØJRE = NULL
    ANDET
    HVIS VAREDATA
    Indsæt (TRÆ -> VENSTRE, ITEM)
    ANDET
    Indsæt (TRÆ -> HØJRE, VARE)
    [SLUT PÅ HVIS]
    [SLUT PÅ HVIS]Trin 2:ENDE

indsættelse i binært søgetræ

C funktion

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

Produktion

 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