logo

הַכנָסָה

פונקציית Insert משמשת להוספת אלמנט חדש בעץ חיפוש בינארי במיקום המתאים. פונקציית Insert אמורה להיות מתוכננת בצורה כזו שהיא חייבת להפר את המאפיין של עץ החיפוש הבינארי בכל ערך.

  1. הקצו את הזיכרון לעץ.
  2. הגדר את חלק הנתונים לערך והגדר את המצביע השמאלי והימני של העץ, הצבע על NULL.
  3. אם הפריט שיוכנס יהיה האלמנט הראשון של העץ, אז השמאל והימין של הצומת הזה יצביעו על NULL.
  4. אחרת, בדוק אם הפריט קטן מאלמנט השורש של העץ, אם זה נכון, בצע פעולה זו באופן רקורסיבי עם שמאל של השורש.
  5. אם זה שקר, אז בצע את הפעולה הזו רקורסיבית עם תת-העץ הימני של השורש.

הוספה (TREE, ITEM)

    שלב 1:IF TREE = NULL
    הקצאת זיכרון עבור TREE
    SET TREE -> DATA = ITEM
    הגדר עץ -> שמאל = עץ -> ימינה = NULL
    אַחֵר
    IF ITEM DATA
    Insert(TREE -> LEFT, ITEM)
    אַחֵר
    Insert(TREE -> RIGHT, ITEM)
    [סוף אם]
    [סוף אם]שלב 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