Professional Documents
Culture Documents
4 5845878178404371413
4 5845878178404371413
حل دورات
ر
𝟖𝟏𝟎𝟐 𝟐𝟎𝟏𝟗/الفصل األول
السؤال األول:
.1بفرض لدينا الشجرة الثنائية التالية والمطلوب:
اكتب صيغة كل من العبور الملحق 𝒓𝒆𝒅𝒓𝒐𝒕𝒔𝒐𝑷 ،والعبور المسبق 𝒓𝒆𝒅𝒓𝒐𝒆𝒓𝑷 ،والعبور
الوسطي 𝒓𝒆𝒅𝒓𝒐𝒏𝒊 لهذه الشجرة
𝐩
𝑭
𝑺
𝑾
الحل:
العبور المسبق 𝒓𝒆𝒅𝒓𝒐𝒆𝒓𝑷: -
)1زيارة العقدة.
)2استدعاء نفسها لعبور الشجرة الثانوية اليسرى للعقدة.
)3استدعاء نفسها لعبور الشجرة الثانوية اليمنى للعقدة.
1
خوارزميات 2
حل دورات
ر
{)𝒕𝒐𝒐𝑹𝒍𝒂𝒄𝒐𝒍 𝒆𝒅𝒐𝑵(𝒓𝒆𝒅𝒓𝑶𝒏𝒊 𝒅𝒊𝒐𝒗 𝒆𝒕𝒂𝒗𝒊𝒓𝒑
{)𝒍𝒍𝒖𝒏 = ! 𝒕𝒐𝒐𝑹𝒍𝒂𝒄𝒐𝒍(𝒇𝒊
;)𝒅𝒍𝒊𝒉𝑪𝒕𝒇𝒆𝒍 𝒊𝒏𝑶𝒓𝒅𝒆𝒓(𝒍𝒐𝒄𝒂𝒍𝑹𝒐𝒐𝒕.
;)" " 𝒔𝒚𝒔𝒕𝒆𝒎. 𝒐𝒖𝒕. 𝒑𝒓𝒊𝒏𝒕(𝒍𝒐𝒄𝒂𝒍𝑹𝒐𝒐𝒕. 𝒊𝑫𝒂𝒕𝒂 +
;)𝒅𝒍𝒊𝒉𝑪𝒕𝒉𝒈𝒊𝒓 𝒊𝒏𝑶𝒓𝒅𝒆𝒓(𝒍𝒐𝒄𝒂𝒍𝑹𝒐𝒐𝒕.
}
}
. 𝑻. 𝑾. 𝑫. 𝑭. 𝑮. 𝑯. 𝑷. 𝑹. 𝑺. 𝒀. 𝒁. الخرج :
.2قارن الزمن 𝒐 𝒈𝒊𝑩 لعملية اإلدخال وعملية البحث بين األشجار والمصفوفات المرتبة واللوائح
المترابطة وفق الجدول التالي:
الحل:
2
خوارزميات 2
حل دورات
ر
.3بفرض أن متحوالت العقدة ضمن الشجرة الثنائية يمكن تمثيلها بالصنف 𝒆𝒅𝒐𝑵 𝒔𝒔𝒂𝒍𝒄
{𝒆𝒅𝒐𝑵 𝒔𝒔𝒂𝒍𝑪
𝒆𝒖𝒍𝒂𝒗 𝒚𝒆𝒌 𝒔𝒂 𝒅𝒆𝒔𝒖 𝒂𝒕𝒂𝒅𝒊𝒏𝒕 𝒊𝑫𝒂𝒕𝒂; //
𝒂𝒕𝒂𝒅 𝒓𝒆𝒉𝒕𝒐𝒅𝒐𝒖𝒃𝒍𝒆 𝒇𝑫𝒂𝒕𝒂 ; //
𝒅𝒍𝒊𝒉𝒄 𝒕𝒇𝒆𝒍 𝒔𝑵𝒐𝒅𝒆 𝒍𝒆𝒇𝒕𝑪𝒉𝒊𝒍𝒅; //𝒕𝒉𝒊𝒔 𝒊𝒔 𝒕𝒉𝒆 𝒏𝒐𝒅𝒆′
𝒅𝒍𝒊𝒉𝒄 𝒕𝒉𝒈𝒊𝒓 𝒔𝑵𝒐𝒅𝒆 𝒓𝒊𝒈𝒉𝒕𝑪𝒉𝒊𝒍𝒅; //𝒕𝒉𝒊𝒔 𝒊𝒔 𝒕𝒉𝒆 𝒏𝒐𝒅𝒆′
}
المطلوب:
ً
(مستخدما االستدعاء التعاودي) طريقة اسمها 𝒓𝒐𝒓𝒓𝒊𝒎 (معكوس الشجرة) إذ اكتب بلغة الجافا
يتم التمرير لهذه الطريقة عنوان جذر الطريقة األصلية لتقوم طريقة 𝒓𝒐𝒓𝒓𝒊𝒎 بعكس الشجرة
ومن ثم إعادة عنوان جذر الشجرة المعكوسة للشجرة األصلية.
مثال :الشجرة )𝒂( األصلية والشجرة )𝒃( هي معكوس الشجرة األصلية.
𝟏 𝟏
𝟐 𝟑 𝟑 𝟐
𝟕 𝟔
𝟔 𝟕
)𝒂( )𝒃(
الحل:
{)𝒕𝒐𝒐𝒓 𝒆𝒅𝒐𝑵(𝒓𝒐𝒓𝒓𝒊𝒎 𝒆𝒅𝒐𝑵 𝒄𝒊𝒍𝒃𝒖𝒑
)𝒍𝒍𝒖𝒏 == 𝒕𝒐𝒐𝒓(𝒇𝒊
;𝒕𝒐𝒐𝒓 𝒏𝒓𝒖𝒕𝒆𝒓
{𝒆𝒔𝒍𝒆
;𝒅𝒍𝒊𝒉𝑪𝒕𝒇𝒆𝒍 𝑵𝒐𝒅𝒆 𝒕𝒆𝒎𝒑 = 𝒓𝒐𝒐𝒕.
𝒅𝒍𝒊𝒉𝑪𝒕𝒉𝒈𝒊𝒓 𝒓𝒐𝒐𝒕. 𝒍𝒆𝒇𝒕𝑪𝒉𝒊𝒍𝒅 = 𝒓𝒐𝒐𝒕.
;𝒑𝒎𝒆𝒕 = 𝒅𝒍𝒊𝒉𝑪𝒕𝒉𝒈𝒊𝒓 𝒓𝒐𝒐𝒕.
;)𝒅𝒍𝒊𝒉𝑪𝒕𝒇𝒆𝒍 𝒎𝒊𝒓𝒓𝒐𝒓(𝒓𝒐𝒐𝒕.
;)𝒅𝒍𝒊𝒉𝑪𝒕𝒉𝒈𝒊𝒓 𝒎𝒊𝒓𝒓𝒐𝒓(𝒓𝒐𝒐𝒕.
;𝒕𝒐𝒐𝒓 𝒏𝒓𝒖𝒕𝒆𝒓
}
}
3
خوارزميات 2
حل دورات
ر
السؤال الثاني:
ً
جدوال تبين فيه تغير .1اكتب بلغة جافا طريقة انشطار عقدة في الشجرة 𝟒 𝟐 − 𝟑 −ثم اكتب
المتحوالت من أجل إدخال عقدة ذات المفتاح 𝟓𝟗 في شجرة 𝟒 𝟐 − 𝟑 −التالية وارسم الشكل
الجديد.
𝟎𝟑 𝟎𝟓
𝟎𝟒
الحل:
{)𝒆𝒅𝒐𝑵𝒔𝒊𝒉𝒕 𝒆𝒅𝒐𝑵( 𝒕𝒊𝒍𝒑𝒔 𝒅𝒊𝒐𝒗 𝒄𝒊𝒍𝒃𝒖𝒑
;𝑪𝒎𝒆𝒕𝒊 𝑫𝒂𝒕𝒂 𝒊𝒕𝒆𝒎𝑩,
;𝟑𝒅𝒍𝒊𝒉𝒄 𝑵𝒐𝒅𝒆 𝒑𝒂𝒓𝒆𝒏𝒕, 𝒄𝒉𝒊𝒍𝒅𝟐,
;𝒙𝒆𝒅𝒏𝑰𝒎𝒆𝒕𝒊 𝒕𝒏𝒊
;)(𝒎𝒆𝒕𝑰𝒆𝒗𝒐𝒎𝒆𝒓 𝒊𝒕𝒆𝒎𝑪 = 𝒕𝒉𝒊𝒔𝑵𝒐𝒅𝒆.
;)(𝒎𝒆𝒕𝑰𝒆𝒗𝒐𝒎𝒆𝒓 𝒊𝒕𝒆𝒎𝑩 = 𝒕𝒉𝒊𝒔𝑵𝒐𝒅𝒆.
;)𝟐(𝒅𝒍𝒊𝒉𝒄𝒕𝒄𝒆𝒏𝒏𝒐𝒄𝒔𝒊𝒅 𝒄𝒉𝒊𝒍𝒅𝟐 = 𝒕𝒉𝒊𝒔𝑵𝒐𝒅𝒆.
;)𝟑(𝒅𝒍𝒊𝒉𝒄𝒕𝒄𝒆𝒏𝒏𝒐𝒄𝒔𝒊𝒅 𝒄𝒉𝒊𝒍𝒅𝟑 = 𝒕𝒉𝒊𝒔𝑵𝒐𝒅𝒆.
;)(𝒆𝒅𝒐𝑵 𝒘𝒆𝒏 = 𝒕𝒉𝒈𝒊𝑹𝒘𝒆𝒏 𝒆𝒅𝒐𝑵
{)𝒕𝒐𝒐𝒓 == 𝒆𝒅𝒐𝑵𝒔𝒊𝒉𝒕(𝒇𝒊
;)(𝒆𝒅𝒐𝑵 𝒘𝒆𝒏 = 𝒕𝒐𝒐𝒓
;𝒕𝒐𝒐𝒓 = 𝒕𝒏𝒆𝒓𝒂𝒑
;)𝒆𝒅𝒐𝑵𝒔𝒊𝒉𝒕 𝒓𝒐𝒐𝒕. 𝒄𝒐𝒏𝒏𝒆𝒄𝒕𝒄𝒉𝒊𝒍𝒅(𝟎,
}
𝒆𝒔𝒍𝒆
;)(𝒕𝒏𝒆𝒓𝒂𝑷𝒕𝒆𝒈 𝒑𝒂𝒓𝒆𝒏𝒕 = 𝒕𝒉𝒊𝒔𝑵𝒐𝒅𝒆.
;)𝑩𝒎𝒆𝒕𝒊(𝒔𝒎𝒆𝒕𝑰𝒕𝒓𝒆𝒔𝒏𝒊 𝒊𝒕𝒆𝒎𝑰𝒏𝒅𝒆𝒙 = 𝒑𝒂𝒓𝒆𝒏𝒕.
;)(𝒔𝒎𝒆𝒕𝑰𝒎𝒖𝑵𝒕𝒆𝒈 𝒊𝒏𝒕 𝒏 = 𝒑𝒂𝒓𝒆𝒏𝒕.
)𝒇𝒐𝒓(𝒊𝒏𝒕 𝒋 = 𝒏 − 𝟏; 𝒋 > 𝒊𝒕𝒆𝒎𝑰𝒏𝒅𝒆𝒙; 𝒋 − −
{
;)𝒋(𝒅𝒍𝒊𝒉𝒄𝒕𝒄𝒆𝒏𝒏𝒐𝒄𝒔𝒊𝒅 𝑵𝒐𝒅𝒆 𝒕𝒆𝒎𝒑 = 𝒑𝒂𝒓𝒆𝒏𝒕.
;)𝒑𝒎𝒆𝒕 𝒑𝒂𝒓𝒆𝒏𝒕. 𝒄𝒐𝒏𝒏𝒆𝒄𝒕𝒄𝒉𝒊𝒍𝒅(𝒋 + 𝟏,
}
;)𝒕𝒉𝒈𝒊𝑹𝒘𝒆𝒏 𝒑𝒂𝒓𝒆𝒏𝒕. 𝒄𝒐𝒏𝒏𝒆𝒄𝒕𝒄𝒉𝒊𝒍𝒅(𝒊𝒕𝒆𝒎𝑰𝒏𝒅𝒆𝒙 + 𝟏,
;)𝑪𝒎𝒆𝒕𝒊(𝒎𝒆𝒕𝑰𝒕𝒓𝒆𝒔𝒏𝒊 𝒏𝒆𝒘𝑹𝒊𝒈𝒉𝒕.
;)𝟐𝒅𝒍𝒊𝒉𝒄 𝒏𝒆𝒘𝑹𝒊𝒈𝒉𝒕. 𝒄𝒐𝒏𝒏𝒆𝒄𝒕𝒄𝒉𝒊𝒍𝒅(𝟎,
;)𝟑𝒅𝒍𝒊𝒉𝒄 𝒏𝒆𝒘𝑹𝒊𝒈𝒉𝒕. 𝒄𝒐𝒏𝒏𝒆𝒄𝒕𝒄𝒉𝒊𝒍𝒅(𝟏,
}
4
خوارزميات 2
حل دورات
ر
في التابع 𝑡𝑟𝑒𝑠𝑛𝑖 في التابع 𝑡𝑖𝑙𝑝𝑠 في التابع 𝑡𝑖𝑙𝑝𝑠 في التابع 𝑡𝑖𝑙𝑝𝑠 في التابع 𝑡𝑖𝑙𝑝𝑠 في التابع 𝑡𝑟𝑒𝑠𝑛𝑖
𝟎𝟑 𝟎𝟓
𝟎𝟒
95
33 33
5
خوارزميات 2
حل دورات
ر
-2تحويل أي عقدة 𝑒𝑑𝑜𝑛 3 −في شجرة 2 − 3 − 4الى عقدة ولد وعقدة والد في شجرة أحمر
_ أسود حيث تمتلك عقدة الولد عقدتي أوالد خاصة بها.
55 27
27 55
𝑌 𝑊
27 55
𝑊 𝑋 𝑌
-3تحويل أي عقدة 𝑒𝑑𝑜𝑛 4 −في شجرة 2 − 3 − 4الى ولدين وعقدة والد في شجرة أحمر _
أسود حيث تلون األوالد باللون األحمر والوالد باألسود.
42
.3طبق القواعد التحويل السابقة في تحويل الشجرة 𝒆𝒅𝒐𝒏_𝟑 التالية إلى شجرة أحمر-أسود
متوازنة في حالة جذر الشجرة هو العدد .82
𝟎𝟕 𝟐𝟖
𝟓𝟕
6
خوارزميات 2
حل دورات
ر
الحل:
82
70 92
السؤال الثالث:
ارسم التغيرات من أجل بناء شجرة هوفمان واستنتج الشيفرة من أجل جدول التواتر التالي:
الحل:
.1
𝟏 𝟏 𝟐 𝟑
𝐁 𝐃 𝐂 𝑨
.2
𝟐
𝟐 𝟑
.3
𝟑 𝟒
𝑨
𝟐 𝟐
𝐂
𝐁 𝟏 𝐃 𝟏
7
خوارزميات 2
حل دورات
ر
.4
7
𝟎 𝟏
𝟑 𝟒
𝟎=𝑨
𝟏𝟏 = 𝑪 𝑨
𝟎𝟎𝟏 = 𝑩 𝟎 𝟏
𝟏𝟎𝟏 = 𝑫
𝟐 𝟐
𝐂
𝟎 𝟏
𝐁 𝟏 𝐃 𝟏
السؤال الرابع:
.1اكتب بلغة 𝑨𝑽𝑨𝑱 طريقة الفرز السريع التعاودية 𝒕𝒓𝒐𝑺𝒌𝒄𝒊𝒖𝑸𝒄𝒆𝒓 في حالة تقسيم وسط
الثالثة.
8
خوارزميات 2
حل دورات
ر
)𝒓𝒕𝑷𝒕𝒉𝒈𝒊𝒓 => 𝒓𝒕𝑷𝒕𝒇𝒆𝒍(𝒇𝒊
;𝒌𝒂𝒆𝒓𝒃
;)𝒓𝒕𝑷𝒕𝒉𝒈𝒊𝒓 𝒆𝒍𝒔𝒆 𝒔𝒘𝒂𝒑(𝒍𝒆𝒇𝒕𝑷𝒕𝒓,
}
;)𝟏 𝒔𝒘𝒂𝒑(𝒍𝒆𝒇𝒕𝑷𝒕𝒓, 𝒓𝒊𝒈𝒉𝒕 −
;𝒓𝒕𝑷𝒕𝒇𝒆𝒍 𝒏𝒓𝒖𝒕𝒆𝒓
}
9
خوارزميات 2
حل دورات
ر
𝟖𝟏𝟎𝟐 𝟐𝟎𝟏𝟗/الدورة الثالثة
السؤال األول:
.1اكتب بلغة 𝒂𝒗𝒂𝒋 طريقة فرز شل 𝒕𝒓𝒐𝑺𝒍𝒍𝒆𝒉𝒔 والتي تقوم بفرز المصفوفة العددية 𝒚𝒂𝒓𝒓𝑨𝒆𝒉𝑻.
𝟕 𝟎𝟏 𝟏 𝟗 𝟐 𝟓 𝟖 𝟔 𝟒 𝟑
الحل:
𝟕 𝟎𝟏 𝟏 𝟗 𝟐 𝟓 𝟖 𝟔 𝟒 𝟑
𝟎 𝟏 𝟐 𝟑 𝟒 𝟓 𝟔 𝟕 𝟖 𝟗
𝟐 𝟎𝟏 𝟏 𝟗 𝟒 𝟓 𝟖 𝟔 𝟕 𝟑
𝟎 𝟏 𝟐 𝟑 𝟒 𝟓 𝟔 𝟕 𝟖 𝟗
10
خوارزميات 2
حل دورات
ر
𝟐 𝟑 𝟏 𝟗 𝟒 𝟓 𝟖 𝟔 𝟕 𝟎𝟏
𝟎 𝟏 𝟐 𝟑 𝟒 𝟓 𝟔 𝟕 𝟖 𝟗
𝟐 𝟑 𝟏 𝟗 𝟒 𝟓 𝟖 𝟔 𝟕 𝟎𝟏
𝟎 𝟏 𝟐 𝟑 𝟒 𝟓 𝟔 𝟕 𝟖 𝟗
𝟐 𝟑 𝟏 𝟔 𝟒 𝟓 𝟖 𝟗 𝟕 𝟎𝟏
𝟎 𝟏 𝟐 𝟑 𝟒 𝟓 𝟔 𝟕 𝟖 𝟗
السؤال الثاني:
قارن بين خوارزميات الفرز الداخلي وفق الجدول اآلتي:
الفرز الفقاعي
الفرز باالختيار
الفرز بالضم
الحل:
11
خوارزميات 2
حل دورات
ر
السؤال الثالث:
بفرض لدينا الشجرة اآلتية من النوع 𝟑 𝟐 −والمطلوب:
وضح بالرسم كيف يتم إدخال عنصر جديد وليكن العدد 𝟒𝟐 في هذه الشجرة.
𝟎𝟓 𝟓𝟖
𝟏𝟐 𝟓𝟐
𝟓𝟕 𝟓
𝟎𝟐 𝟎𝟗
𝟎𝟕 𝟎𝟖
𝟐𝟐 𝟑𝟐 𝟎𝟎𝟏
𝟎𝟑
𝟒𝟐
الحل:
)a
𝟎𝟓
𝟎𝟐 𝟓𝟗
𝟓𝟕
𝟎𝟑
𝟐𝟐 𝟑𝟐
𝟎𝟗
𝟎𝟕
𝟎𝟖 𝟎𝟎𝟏
12
خوارزميات 2
حل دورات
ر
𝟎𝟓 )b
𝟑𝟐 𝟓𝟖
𝟓𝟕
𝟎𝟐 𝟒𝟐
𝟎𝟗
𝟐𝟐 𝟎𝟑 𝟎𝟕 𝟎𝟎𝟏
𝟎𝟖
السؤال الرابع:
بفرض لدينا الصنف 𝒆𝒆𝒓𝑻 𝒔𝒔𝒂𝒍𝒄 والذي يمثل الشجرة الثنائية ،حيث يحتوي على متحول وحيد هو
𝒕𝒐𝒐𝒓من نوع 𝒆𝒅𝒐𝑵 (عقدة) أما الصنف 𝒆𝒅𝒐𝑵 𝒔𝒔𝒂𝒍𝒄 والذي يمثل عقد الشجرة الثنائية ،فهو
يحتوي على أربع متحوالت هي:
{𝒆𝒅𝒐𝑵 𝒔𝒔𝒂𝒍𝑪
)𝒚𝒆𝒌( 𝒎𝒆𝒕𝒊 𝒂𝒕𝒂𝒅𝒑𝒖𝒃𝒍𝒊𝒄 𝒊𝒏𝒕 𝒊𝑫𝒂𝒕𝒂; //
𝒂𝒕𝒂𝒅 𝒓𝒆𝒉𝒕𝒐𝒑𝒖𝒃𝒍𝒊𝒄 𝒅𝒐𝒖𝒃𝒍𝒆 𝒅𝑫𝒂𝒕𝒂 ; //
𝒅𝒍𝒊𝒉𝒄 𝒕𝒇𝒆𝒍 𝒔𝒑𝒖𝒃𝒍𝒊𝒄 𝑵𝒐𝒅𝒆 𝒍𝒆𝒇𝒕𝑪𝒉𝒊𝒍𝒅; //𝒕𝒉𝒊𝒔 𝒊𝒔 𝒕𝒉𝒆 𝒏𝒐𝒅𝒆′
𝒅𝒍𝒊𝒉𝒄 𝒕𝒉𝒈𝒊𝒓 𝒔𝒑𝒖𝒃𝒍𝒊𝒄 𝑵𝒐𝒅𝒆 𝒓𝒊𝒈𝒉𝒕𝑪𝒉𝒊𝒍𝒅; //𝒕𝒉𝒊𝒔 𝒊𝒔 𝒕𝒉𝒆 𝒏𝒐𝒅𝒆′
}
والمطلوب :اكتب بلغة 𝒂𝒗𝒂𝒋 الطرق التالية
.1طريقة إضافة عقدة للشجرة الثنائية
)𝒅𝒅 𝒆𝒍𝒃𝒖𝒐𝒅 𝒑𝒖𝒃𝒍𝒊𝒄 𝒗𝒐𝒊𝒅 𝒊𝒏𝒔𝒆𝒓𝒕(𝒊𝒏𝒕 𝒊𝒅,
.2طريقة البحث عن عقدة ضمن الشجرة الثنائية
)𝒚𝒆𝒌 𝒕𝒏𝒊(𝒅𝒏𝒊𝒇 𝒆𝒅𝒐𝑵 𝒄𝒊𝒍𝒃𝒖𝒑
الحل:
.1
{)𝒅𝒅 𝒆𝒍𝒃𝒖𝒐𝒅 𝒑𝒖𝒃𝒍𝒊𝒄 𝒗𝒐𝒊𝒅 𝒊𝒏𝒔𝒆𝒓𝒕(𝒊𝒏𝒕 𝒊𝒅,
𝑵𝒐𝒅𝒆 𝒏𝒆𝒘𝑵𝒐𝒅𝒆 = 𝒏𝒆𝒘𝑵𝒐𝒅𝒆():
;𝒅𝒊 = 𝒂𝒕𝒂𝑫𝒊 𝒏𝒆𝒘𝑵𝒐𝒅𝒆.
;𝒅𝒅 = 𝒂𝒕𝒂𝑫𝒅 𝒏𝒆𝒘𝑵𝒐𝒅𝒆.
)𝒍𝒍𝒖𝒏 == 𝒕𝒐𝒐𝒓(𝒇𝒊
{
;𝒆𝒅𝒐𝑵𝒘𝒆𝒏 = 𝒕𝒐𝒐𝒓
}
13
خوارزميات 2
حل دورات
{𝒆𝒔𝒍𝒆
ر
;𝒕𝒐𝒐𝒓 = 𝒕𝒏𝒆𝒓𝒓𝒖𝒄 𝒆𝒅𝒐𝑵
;𝒕𝒏𝒆𝒓𝒂𝒑 𝒆𝒅𝒐𝑵
{)𝒆𝒖𝒓𝒕(𝒆𝒍𝒊𝒉𝒘
;𝒕𝒏𝒆𝒓𝒓𝒖𝒄 = 𝒕𝒏𝒆𝒓𝒂𝒑
{)𝒂𝒕𝒂𝑫𝒊 𝒊𝒇(𝒊𝒅 < 𝒄𝒖𝒓𝒓𝒆𝒏𝒕.
;𝒅𝒍𝒊𝒉𝑪𝒕𝒇𝒆𝒍 𝒄𝒖𝒓𝒓𝒆𝒏𝒕 = 𝒄𝒖𝒓𝒓𝒆𝒏𝒕.
{)𝒍𝒍𝒖𝒏 == 𝒕𝒏𝒆𝒓𝒓𝒖𝒄(𝒇𝒊
;𝒆𝒅𝒐𝑵𝒘𝒆𝒏 = 𝒅𝒍𝒊𝒉𝑪𝒕𝒇𝒆𝒍 𝒑𝒂𝒓𝒆𝒏𝒕.
;𝒏𝒓𝒖𝒕𝒆𝒓
}
}
{𝒆𝒔𝒍𝒆
;𝒅𝒍𝒊𝒉𝑪𝒕𝒉𝒈𝒊𝒓 𝒄𝒖𝒓𝒓𝒆𝒏𝒕 = 𝒄𝒖𝒓𝒓𝒆𝒏𝒕.
{)𝒍𝒍𝒖𝒏 == 𝒕𝒏𝒆𝒓𝒓𝒖𝒄(𝒇𝒊
;𝒆𝒅𝒐𝑵𝒘𝒆𝒏 = 𝒅𝒍𝒊𝒉𝑪𝒕𝒉𝒈𝒊𝒓 𝒑𝒂𝒓𝒆𝒏𝒕.
;𝒏𝒓𝒖𝒕𝒆𝒓
}
}
}
}
}
.2
{)𝒚𝒆𝒌 𝒕𝒏𝒊(𝒅𝒏𝒊𝒇 𝒆𝒅𝒐𝑵 𝒄𝒊𝒍𝒃𝒖𝒑
;𝒕𝒐𝒐𝒓 = 𝒕𝒏𝒆𝒓𝒓𝒖𝒄 𝒆𝒅𝒐𝑵
{)𝒚𝒆𝒌 = !𝒂𝒕𝒂𝑫𝒊 𝒘𝒉𝒊𝒍𝒆(𝒄𝒖𝒓𝒓𝒆𝒏𝒕.
)𝒂𝒕𝒂𝑫𝒊 𝒊𝒇(𝒌𝒆𝒚 < 𝒄𝒖𝒓𝒓𝒆𝒏𝒕.
;𝒅𝒍𝒊𝒉𝑪𝒕𝒇𝒆𝒍 𝒄𝒖𝒓𝒓𝒆𝒏𝒕 = 𝒄𝒖𝒓𝒓𝒆𝒏𝒕.
𝒆𝒔𝒍𝒆
;𝒅𝒍𝒊𝒉𝑪𝒕𝒉𝒈𝒊𝒓 𝒄𝒖𝒓𝒓𝒆𝒏𝒕 = 𝒄𝒖𝒓𝒓𝒆𝒏𝒕.
)𝒍𝒍𝒖𝒏 == 𝒕𝒏𝒆𝒓𝒓𝒖𝒄(𝒇𝒊
;𝒍𝒍𝒖𝒏 𝒏𝒓𝒖𝒕𝒆𝒓
}
;𝒕𝒏𝒆𝒓𝒓𝒖𝒄 𝒏𝒖𝒓𝒕𝒆𝒓
}
14
خوارزميات 2
حل دورات
ر
15 0