logo

إدراج

يتم استخدام وظيفة الإدراج لإضافة عنصر جديد في شجرة البحث الثنائية في الموقع المناسب. يجب تصميم وظيفة الإدراج بطريقة تجعل العقدة تنتهك خاصية شجرة البحث الثنائية عند كل قيمة.

  1. تخصيص الذاكرة للشجرة.
  2. قم بتعيين جزء البيانات إلى القيمة وقم بتعيين المؤشر الأيسر والأيمن للشجرة، وأشر إلى NULL.
  3. إذا كان العنصر المراد إدراجه هو العنصر الأول في الشجرة، فسيشير يسار ويمين هذه العقدة إلى NULL.
  4. بخلاف ذلك، تحقق مما إذا كان العنصر أقل من العنصر الجذري للشجرة، وإذا كان هذا صحيحًا، فقم بإجراء هذه العملية بشكل متكرر على يسار الجذر.
  5. إذا كان هذا خطأ، فقم بإجراء هذه العملية بشكل متكرر باستخدام الشجرة الفرعية اليمنى للجذر.

إدراج (شجرة، عنصر)

    الخطوة 1:إذا كانت الشجرة = فارغة
    تخصيص الذاكرة لـ TREE
    شجرة التعيين -> البيانات = العنصر
    مجموعة الشجرة -> اليسار = الشجرة -> اليمين = NULL
    آخر
    إذا كانت بيانات العنصر
    إدراج (شجرة -> يسار، عنصر)
    آخر
    إدراج (شجرة -> يمين، عنصر)
    [نهاية إذا]
    [نهاية إذا]الخطوة 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