شرح عملية اضافة نوود الى شجرة +مادة هياكل بيانات
Download
Report
Transcript شرح عملية اضافة نوود الى شجرة +مادة هياكل بيانات
بسم هللا الرحمن الرحيم
اخواني الطلبه اليوم راح اشرح لكم عمليه اساسيه تتم في
الشجرة()Tree
الـ Insert
Insert
Insert(Tree*root,Tree*n)
{
Tree*p=root;
if(root not found)
root=n;
Else
{
while(p)
{
if(p->info<n->info)
{
if(p->right)
p=p->right;
else
{
p->right=n;
break;
} }
else
Tree من نوعn وroot هنا قمنا بتعريف
ثم ساويناهTree من نوعp عرفنا مؤشر جديد اسميناه
وذالك الستخدامه في التنقل في الشجرةroot بـ
else
{
if(p->info>n->info)
{
if(p->left)
p=p->left;
else
p->left=n;
break;
}
}
}
}
n->left=n->right=NULL;
}
االن راح اقوم بشرح عمل الخوارزميه بتفصيل
p
الـ nهي عباره عن العدد الذي نريد ادخاله الى الشجرة
ولنفترض باننا نريد ادخال الـ 95الى الشجرة
root
p
50
100
90
95
p
40
20
هذا الشرط يفحص اذا كانت الشجرة موجودة
(تكون الشجرة موجودة عندما يكون الروت موجود)
فاذا تحقق ولم يكن الروت موجود فيقوم بوضع العنصر
موجودهموجود من قبل
اي الروت
NULLكان
روت واذا
نريدpادخال
الذي
ليست بـ
طالما الـ
بالتالي:
يقوم بتنفيذيقوم
الذي يليه
معلومات
معلومات
من من
اصغر
اصغر
النود p
النود p
معلومات
معلومات
هل هل
هل معلومات النود pاصغر من معلومات
يمين النود
الى عن
الىالتي
النود
هل
الشجرة
الشجرة
ادخالها
ادخالها
نريدنريد
التيالتي
ال nال n
30ال nالتي نريد ادخالها الى الشجرة
الـ p
يشير
موجودة50
90
معلوماتها
معلوماتها
اليهاالتي
التي
النود
النود
التيالى
الى
تشير
فإن pال pتشير
فإن ال
نالحظ
نالحظ
كما كما
كما نالحظ فإن ال pتشير الى النود التي معلوماتها 100
يليه
الشرطالذي
بتنفيذ
وبتالييقوم
موجودة
نريدنريداذا
محقق
محقق
الشرط
فإن فإن
وبتالي
95 95
كانت هو
ادخاله
ادخاله هو
الذيالذي
العنصر
العنصر
بينمابينما
بينما العنصر الذي نريد ادخاله هو 95وبتالي فإن الشرط غير محقق
يليهيليه
الذيالذي
بتنفيذ
بتنفيذ
يقوميقوم
ولذالك
ولذالك
ولذالك يقوم بتنفيذ االومر التي بعد else
هنا كما نالحظ بان النود التي على يمين النود
التي يشير اليها الـ pغير موجودة ولذالك سوف
يقوم بتنفيذ االوامر التي تلي elseتبع الشرط
هل معلومات النود pاكبر من معلومات
شمال النود
التي عن
ال nالتي نريدهل
الشجرة
النود الى
ادخالها
موجودة
اليها الـ p
كما نالحظ فإن ال pتشيرالتي
100
معلوماتها
يشير التي
الى النود
الذي يليه
يقومفإنبتنفيذ
موجودة
كانت
بينما العنصر الذي نريد اذا
محقق
الشرط
وبتالي
هو 95
ادخاله
ولذالك يقوم بتنفيذ الذي يليه
يقوم بايقاف الوبloop
)Insert(Tree*root,Tree*n
{
;Tree*p=root
)if(root not found
;root=n
else
{
)while(p
{
)if(p->info<n->info
{
)if(p->right
;p=p->right
else
{
;p->right=n
;break
} }
else
{
)if(p->info>n->info
{
)if(p->left
;p=p->left
else
;p->left=n
;break
} } } }
;n->left=n->right=NULL
}
المصدر
•
•
•
•
•
•
قام بشرح هذا الموضوع :
الطالب:محمد راشد صالح داود.
المجموعة :التاسعه.
هذا الشرح مستنبط من محاضرة الدكتور:فضل باعلوي.
اقدم شكري الخاص وشكر المجموعه التاسعه ومستوى ثاني بشكل عام الى
الدكتور فضل باعلوي .
أي استفسار [email protected]