SlideShare a Scribd company logo
1 of 61
Download to read offline
‫الخوارزميات‬ ‫و‬ ‫البيانات‬ ‫هياكل‬ ‫عن‬ ‫مقدمة‬
Introduction to data structure and algorithms
‫اعـــداد‬:‫م‬.‫رضــــوان‬ ‫احـمــد‬
2019
‫محاضرة‬)١(
.1‫مـقــدمــــة‬introduction
•‫البيانات‬ ‫هيكلة‬ ‫معنى‬ ‫ما‬
•‫البيان‬ ‫قوعد‬ ‫و‬ ‫البيانات‬ ‫هياكل‬ ‫بين‬ ‫الفرق‬ ‫ما‬‫ات‬
•‫من‬ ‫الفائدة‬ ‫ماهي‬ ‫او‬ ‫البيانات‬ ‫هياكل‬ ‫تأثر‬ ‫هو‬ ‫ما‬
‫البيانات‬ ‫هياكل‬
•‫البيانات‬)DATA(‫المعلومات‬ ‫و‬
)INFORMATION(
•‫البيانات‬ ‫انواع‬)DATA TYPES(
•‫البيانات‬ ‫لمعالجة‬ ‫المستخدمة‬ ‫العمليات‬ ‫اهم‬
.2‫البيانات‬ ‫هياكل‬
)DATA STRUCTURES(
•‫البيانات‬ ‫هياكل‬ ‫تعريف‬
•‫امثلة‬
•‫هياكل‬ ‫انواع‬‫تقسيماتها‬ ‫و‬ ‫البيانات‬
•‫اهمية‬‫البيانات‬ ‫هياكل‬
•‫معالج‬ ‫في‬ ‫تنفيذها‬ ‫يمكن‬ ‫التي‬ ‫العمليات‬‫هياكل‬ ‫ة‬
‫البيانات‬
•‫هياكل‬ ‫تمثل‬‫البيانات‬
)logical structure(‫و‬)physical
structure(
•‫البيانات‬ ‫معالجة‬ ‫سرعة‬ ‫عوامل‬
.3‫المؤشرات‬pointers
.4‫الخوازميات‬)algorithms(
•‫الخوازميات‬ ‫تعريف‬
•‫مثال‬
‫مـقـدمــــة‬|‫الـبـيــانــــات‬ ‫هـيـكـلـــة‬ ‫هــي‬ ‫مـا‬
‫هي‬‫طريقة‬‫خاصة‬‫لتخزين‬‫وتنظيم‬‫البيانات‬‫في‬‫ذ‬‫اكرة‬
‫الحاسوب‬‫بحيث‬‫يمكن‬‫استخدامها‬‫بكفاءة‬‫و‬‫هذا‬‫يأث‬‫ر‬
‫بشكل‬‫إيجابي‬‫في‬:
•‫سرعة‬‫معالجة‬‫البيانات‬‫وإسترجاعها‬
•‫اﻻستغﻼل‬‫اﻻمثل‬‫للذاكرة‬
‫مـقـدمــــة‬|‫الـبـيـانـات‬ ‫هـيـاكــل‬ ‫بــيـن‬ ‫الـفــرق‬ ‫مـا‬‫و‬‫الـبـيـانـــات‬ ‫قــوعــد‬
‫قواعد‬‫البيانات‬)DATA BASES(:‫هي‬‫عبارة‬‫عن‬
‫مخازن‬‫بيانات‬،‫بمعنى‬‫اخر‬‫يمكن‬‫ان‬‫تحفظ‬‫بيانات‬‫ك‬‫في‬
‫ملف‬‫قاعدة‬‫البيانات‬‫و‬‫يمكن‬‫ان‬‫تصل‬‫إليها‬‫في‬‫اي‬‫و‬‫قت‬
‫حتى‬‫بعد‬‫إغﻼق‬‫الحاسوب‬.
‫هياكل‬‫البيانات‬)DATA STRUCTURES(:‫هي‬‫عبارة‬
‫عن‬‫طرق‬‫لتخزين‬‫البيانات‬‫في‬‫الذاكرة‬.‫لجعل‬‫أداء‬‫و‬
‫كفاءة‬‫البرامج‬‫عالية‬‫في‬‫وقت‬‫التنفيذ‬)runtime(
‫مـقـدمــــة‬|‫البيانات‬ ‫هياكل‬ ‫من‬ ‫الفائدة‬ ‫ماهي‬ ‫او‬ ‫البيانات‬ ‫هياكل‬ ‫تأثر‬ ‫هو‬ ‫ما‬
‫تتلخص‬‫الفائدة‬‫من‬‫هياكل‬‫البيانات‬‫بأنها‬:
‫تساهم‬‫في‬‫اﻹستغﻼل‬‫اﻻمثل‬‫للذاكرة‬‫من‬‫حيث‬‫ترتيب‬
‫البيانات‬‫داخلها‬.‫مما‬‫يساعد‬‫في‬‫زيادة‬‫سرعة‬‫معالجة‬‫و‬
‫إسترجاع‬‫البيانات‬.
‫مـقـدمــــة‬|‫الـبـيــانــات‬)DATA(‫الـمـعـلـومـــات‬ ‫و‬)INFORMATION(
•‫مجموعة‬‫من‬‫النصوص‬‫والصور‬‫و‬‫اﻻشكال‬
‫تشكل‬‫البيانات‬
•‫البيانات‬‫غالبا‬‫ليست‬‫ذات‬‫معنى‬‫واضح‬
)‫ارقام‬‫و‬‫حروف‬(
•‫جمع‬ُ‫ت‬‫البيانات‬‫من‬‫مصادر‬‫مختلفة‬
•‫البيانات‬‫مجموعة‬‫من‬‫المعطيات‬‫القديمة‬
‫تساعدنا‬‫في‬‫إتخاذ‬‫القرار‬
‫البيانات‬‫هي‬‫مجموعة‬‫من‬‫الحقائق‬‫التي‬‫يمكن‬‫معالجتها‬‫و‬‫تعتبر‬‫المادة‬‫الخام‬‫للمعلومات‬
•‫بيانات‬‫ذات‬‫معنى‬‫وضح‬‫و‬‫محدد‬
•‫بيانات‬‫تمت‬‫معالجتها‬‫و‬‫لها‬‫محتوى‬‫واضح‬
)‫بيانات‬‫الطالب‬(
DATA ‫البيانات‬INFORMATION ‫المعلومات‬
‫البيانات‬ ‫انواع‬
‫الحرفية‬
CHARCTERS
‫المنطقية‬
LOGICAL
‫الحقيقية‬
REAL
‫الصحيحة‬
INTEGERS
‫مـقـدمــــة‬|‫الـبـيـانــات‬ ‫انـواع‬
‫مـقـدمــــة‬|‫الـبـيـانـــات‬ ‫لـمـعــالـجــة‬ ‫الـمـسـتـخــدمــة‬ ‫الـعـمـلـيــات‬ ‫اهـم‬
•‫مصادرها‬ ‫من‬ ‫البيانات‬ ‫تجميع‬
•‫البيانات‬ ‫صحة‬ ‫من‬ ‫التحقق‬
•‫البيانات‬ ‫انواع‬ ‫تحديد‬
•‫بيانات‬ ‫هيكل‬ ‫في‬ ‫تنظيمها‬
•‫عليها‬ ‫المنطقية‬ ‫و‬ ‫الحسابية‬ ‫العمليات‬ ‫إجراء‬
•‫الدمج‬ ‫و‬ ‫الفرز‬
•‫التقارير‬ ‫استصدار‬
2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫الـبـيـانـــات‬ ‫لـمـعــالـجــة‬ ‫الـمـسـتـخــدمــة‬ ‫الـعـمـلـيــات‬ ‫اهـم‬ 2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫الـبـيـانـــات‬ ‫لـمـعــالـجــة‬ ‫الـمـسـتـخــدمــة‬ ‫الـعـمـلـيــات‬ ‫اهـم‬
•‫هياكل‬‫البيانات‬‫هي‬‫طريقة‬‫لجمع‬‫البيانات‬‫وتنظيمها‬‫بط‬‫ريقة‬
‫تمكننا‬‫من‬‫إجراء‬‫عمليات‬‫على‬‫هذه‬‫البيانات‬‫بطريقة‬‫فعا‬‫لة‬.
•‫هياكل‬‫البيانات‬‫تعتمد‬‫على‬‫تصميم‬‫عملية‬‫التخزين‬‫ف‬‫ى‬
‫الحاسب‬‫بطريقة‬‫فعالة‬‫وغير‬‫معقد‬‫ليدعم‬‫نوع‬‫البيانات‬‫المراد‬
‫تخزينها‬‫ليعمل‬‫الكود‬‫او‬‫الخوارزمية‬‫بطريقة‬‫اسرع‬‫واكث‬‫ر‬
‫كفاءة‬.
•‫هي‬‫اسلوب‬‫تنظيم‬‫لمجموعة‬‫من‬‫البيانات‬‫تشترك‬‫بصفة‬
‫أوأكثر‬‫و‬‫تؤدي‬‫غرض‬‫محدد‬‫حول‬‫شيء‬‫او‬‫مجموعة‬‫من‬
‫اﻻشياء‬
2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫الـبـيـانــات‬ ‫هـيـكـلــة‬ ‫و‬ ‫تـنـظـيــم‬ ‫عـلــى‬ ‫أمـثـلــة‬ 2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫الـبـيـانــات‬ ‫هـيـكـلــة‬ ‫و‬ ‫تـنـظـيــم‬ ‫عـلــى‬ ‫أمـثـلــة‬
‫شجرة‬ ‫بشكل‬ ‫العائلة‬ ‫اسماء‬ ‫تنظيم‬‫جدول‬ ‫بشكل‬ ‫الرحاﻻت‬ ‫مواعيد‬ ‫تنظيم‬
2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫الـبـيــانــات‬ ‫هـيــاكـــل‬ ‫انــواع‬ 2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫الـبـيــانــات‬ ‫هـيــاكـــل‬ ‫انــواع‬
•‫شيئين‬ ‫على‬ ‫البيانات‬ ‫هياكل‬ ‫أنوع‬ ‫تصنف‬‫هما‬
‫الشكل‬)STRUCTURE(‫طريقة‬ ‫على‬ ‫او‬
‫الذاكرة‬ ‫في‬ ‫البيانات‬ ‫تخزين‬)MEMORY
ALLOCATION(
DATA
STRUCTURE
STRUCTURE
LINEAR
NON-
LINEAR
MEMORY
ALLOCATION
STATIC
DYNAMIC
2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫الـبـيــانــات‬ ‫هـيــاكـــل‬ ‫انــواع‬|STRUCTURE 2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫الـبـيــانــات‬ ‫هـيــاكـــل‬ ‫انــواع‬|STRUCTURE
•LINEAR‫المصفو‬ ‫مثل‬ ‫هي‬ ‫و‬ ‫رأسي‬ ‫او‬ ‫افقي‬ ‫اما‬ ‫متتالي‬ ‫بشكل‬ ‫البيانات‬ ‫فيها‬ ‫تخزن‬ ‫و‬‫فات‬
)ARRAYES(‫الطابور‬ ‫و‬)QUEUE(‫المكدس‬ ‫و‬)STACKS(
•NON-LINEAR‫اﻻشجار‬ ‫مثل‬ ‫المتالية‬ ‫غير‬ ‫اﻻخرى‬ ‫اﻻشكال‬ ‫هي‬)TREES(‫و‬)GRAPH(
2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫الـبـيــانــات‬ ‫هـيــاكـــل‬ ‫انــواع‬|MEMORY ALLOCATION
|‫الذاكرة‬ ‫في‬ ‫الـتـخـزيـن‬ ‫طريـقـة‬
2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫الـبـيــانــات‬ ‫هـيــاكـــل‬ ‫انــواع‬|MEMORY ALLOCATION
|‫الذاكرة‬ ‫في‬ ‫الـتـخـزيـن‬ ‫طريـقـة‬
•STATIC‫الثابت‬:
‫يجب‬‫تحديد‬‫حجمها‬‫قبل‬‫بدء‬‫تنفيذ‬‫البرنامج‬)RUN(‫حيث‬‫ﻻ‬‫يمكن‬‫التعديل‬‫في‬
‫حجم‬‫هذا‬‫النوع‬‫من‬‫هياكل‬‫البيانات‬‫بعد‬‫تنفيذ‬‫البرنامج‬.‫و‬‫من‬‫امثلته‬
)ARRAYS(.
‫خصائص‬)STATIC(
•‫يحتوي‬‫على‬‫عناصر‬‫محددة‬
•‫يجب‬‫توفير‬‫العدد‬‫لﻼزم‬‫و‬‫المتتابع‬‫له‬‫من‬‫مواقع‬‫التخزين‬‫في‬‫الذاكر‬‫ة‬
2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫الـبـيــانــات‬ ‫هـيــاكـــل‬ ‫انــواع‬|MEMORY ALLOCATION
|‫الذاكرة‬ ‫في‬ ‫الـتـخـزيـن‬ ‫طريـقـة‬
2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫الـبـيــانــات‬ ‫هـيــاكـــل‬ ‫انــواع‬|MEMORY ALLOCATION
|‫الذاكرة‬ ‫في‬ ‫الـتـخـزيـن‬ ‫طريـقـة‬
•DYNAMIC‫متـغــير‬:
‫يمكن‬‫تغيير‬‫حجمها‬‫وقت‬‫تنفيذ‬‫البرنامج‬)RUN(‫و‬‫من‬‫امثلته‬)LINED LIST(‫و‬)queues(‫و‬
)STACK(
‫خصائص‬)DYNAMIC(:
‫يتغير‬‫حجمها‬‫وقت‬‫تنفيذ‬‫البرنامج‬)RUN(‫مما‬‫يسهل‬‫عملية‬‫اﻹضافة‬‫و‬‫الحذف‬‫منها‬
‫يساعد‬‫في‬‫إستغﻼل‬‫الذاكرة‬‫بشكل‬‫أفضل‬.
‫يساعد‬‫في‬‫زيادة‬‫سرعة‬‫المعالجة‬.
2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫الـبـيــانـــات‬ ‫هـيـاكــل‬ ‫أهـمـيــة‬ 2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫الـبـيــانـــات‬ ‫هـيـاكــل‬ ‫أهـمـيــة‬
•‫تناسب‬‫أنواع‬‫مختلفة‬‫من‬‫هياكل‬‫البيانات‬‫أنواع‬‫مختلفة‬‫من‬،‫التطبيقات‬‫وبعضها‬‫يكون‬‫ل‬‫درجة‬
‫عالية‬‫من‬‫التخصص‬‫لمهام‬‫محددة‬.‫على‬‫سبيل‬،‫المثال‬‫تكون‬‫الشجرة‬‫الثنائيه‬)B-Tree(‫مناسبة‬
‫تماما‬‫لتنفيذ‬‫قواعد‬،‫البيانات‬‫في‬‫حين‬‫تطبيقات‬‫المترجم‬)Compiler(‫عادة‬‫ما‬‫يستخدم‬‫جداول‬
‫التجزئة‬)HASH TABLES(‫للبحث‬‫عن‬‫المعرفات‬.
•‫هياكل‬‫البيانات‬‫توفر‬‫وسيلة‬‫ﻹدارة‬‫كميات‬‫ضخمة‬‫من‬‫البيانات‬،‫بكفاءة‬‫مثل‬‫قواعد‬‫البيانا‬‫ت‬‫الكبيرة‬
‫وخدمات‬‫الفهرسة‬‫اﻻنترنت‬.‫وعادة‬‫ما‬‫تكون‬‫كفاءة‬‫هياكل‬‫البيانات‬‫هي‬‫مفتاح‬‫لتصميم‬‫خوار‬‫زميات‬
‫فعالة‬.
•‫بعض‬‫طرق‬‫التصميم‬‫الرسمية‬‫ولغات‬‫البرمجة‬‫تعتمد‬‫على‬‫هياكل‬،‫البيانات‬‫بدﻻ‬‫من‬‫الخوار‬،‫زميات‬
‫وبذلك‬‫تصبح‬‫عامﻼ‬‫رئيسيا‬‫في‬‫تنظيم‬‫و‬‫تصميم‬‫البرمجيات‬
2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫البيانات‬ ‫هياكل‬ ‫معالجة‬ ‫في‬ ‫تنفيذها‬ ‫يمكن‬ ‫التي‬ ‫العمليات‬ 2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫البيانات‬ ‫هياكل‬ ‫معالجة‬ ‫في‬ ‫تنفيذها‬ ‫يمكن‬ ‫التي‬ ‫العمليات‬
•‫البسيطة‬ ‫العمليات‬)basic operations(:
•‫الوصول‬ ‫او‬ ‫العبور‬)Traversing: (‫هيكل‬ ‫عناصر‬ ‫من‬ ‫عنصر‬ ‫كل‬ ‫الى‬ ‫الوصول‬ ‫او‬ ‫العبور‬
‫البيانات‬.
•‫اﻹضافة‬)Inserting(‫جديد‬ ‫عنصر‬ ‫إضافة‬
•‫الحذف‬)Deleting(‫مسباقا‬ ‫موجود‬ ‫عنصر‬ ‫حذف‬
•‫البحث‬)Searching(‫البحث‬‫هياكل‬ ‫داخل‬ ‫عنصر‬ ‫عن‬‫البيانات‬
•‫التحديث‬)updating(‫ﻹجراء‬‫هياكل‬ ‫عناصر‬ ‫بقيم‬ ‫تغيير‬‫البيانات‬
•‫الخاصة‬ ‫العمليات‬)special operations(:
•‫الدمج‬)Merging: (‫جديد‬ ‫بيانات‬ ‫هيكل‬ ‫لتكوين‬ ‫أخر‬ ‫مع‬ ‫بيانات‬ ‫هيكل‬ ‫دمج‬
•‫الترتيب‬)Sorting: (‫البيانات‬ ‫هيكل‬ ‫عناصر‬ ‫ترتيب‬
2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫البيانات‬ ‫معالجة‬ ‫سرعة‬ ‫عوامل‬ 2‫هياكل‬ ‫ـ‬‫البيانات‬)DATA STRUCTURES(|‫البيانات‬ ‫معالجة‬ ‫سرعة‬ ‫عوامل‬
•‫زمن‬‫المعالجة‬‫لهيكل‬‫البيانات‬
•‫الوصول‬‫الى‬‫البيانات‬‫الموجودة‬‫في‬‫وحدات‬‫التخزين‬‫ونقلها‬‫الى‬‫الذاكرة‬)‫الذاكرة‬‫تقوم‬‫بقر‬‫اءة‬
block‫في‬‫كل‬‫مرة‬‫من‬‫وحدات‬‫التخزين‬
•‫الوصول‬‫الى‬‫وحدات‬‫اﻹدخال‬
3‫ـ‬‫الـمـؤشــرات‬POINTERS| 3‫ـ‬‫الـمـؤشــرات‬POINTERS|
0 1 2 3
10 11 7 8
Pointer
value
3‫ـ‬‫الـمـؤشــرات‬POINTERS| 3‫ـ‬‫الـمـؤشــرات‬POINTERS|
‫التالية‬ ‫الحقائق‬ ‫نسترجع‬ ‫للمؤشرات‬ ‫نمهد‬ ‫حتى‬:
‫أن‬‫عنوان‬ ‫له‬ ‫موقع‬ ‫في‬ ‫يخزن‬ ‫بيان‬ ‫عنصر‬ ‫كل‬.
‫أنه‬‫عنوانه‬ ‫معرفة‬ ‫يجب‬ ‫بيان‬ ‫أي‬ ‫ﻻستعادة‬.
‫أن‬‫المؤشر‬ ‫يسمى‬ ‫بالذاكرة‬ ‫آخر‬ ‫موقع‬ ‫في‬ ‫يخزن‬ ‫اﻵخرـ‬ ‫هو‬ ‫ـ‬ ‫العنوان‬.
‫تتم‬‫إلى‬ ‫نصل‬ ‫ومنه‬ ‫البيان‬ ‫عنوان‬ ‫إلى‬ ‫بالوصول‬ ‫البيان‬ ‫استعادة‬‫البيان‬.
‫تستخدم‬‫المتغيرة‬ ‫البيانات‬ ‫هياكل‬ ‫في‬ ‫المؤشرات‬)‫البرمجة‬ ‫لغات‬ ‫بواسطة‬(
‫يحدد‬‫هيكل‬ ‫عناصر‬ ‫احد‬ ‫بيانات‬ ‫يحتوي‬ ‫الذي‬ ‫الذاكرة‬ ‫موقع‬ ‫المؤشر‬‫البيانات‬
‫يجب‬‫نفس‬ ‫من‬ ‫إليه‬ ‫يشير‬ ‫الذي‬ ‫العنصر‬ ‫و‬ ‫المؤشر‬ ‫يكون‬ ‫أن‬‫النوع‬
‫يمكن‬‫ع‬ ‫تنفذ‬ ‫كما‬ ً‫ا‬‫تمام‬ ‫المؤشرات‬ ‫على‬ ‫المختلفة‬ ‫الحسابية‬ ‫العمليات‬ ‫تنفيذ‬‫لى‬
‫المتغيرات‬
4‫ـ‬‫الـخــوازمـيـــات‬ALGORITHMS| 4‫ـ‬‫الـخــوازمـيـــات‬ALGORITHMS|
‫اول‬‫من‬‫ابتكر‬‫الخوازميات‬‫هو‬‫محمد‬‫بن‬‫موسى‬‫الخوارزمي‬.‫عاش‬
‫الخوارزمي‬‫في‬‫مدينة‬‫بغداد‬‫بين‬‫عامي‬780-847،‫م‬‫وكان‬‫ذلك‬‫في‬‫عهد‬
‫الخليفة‬،‫المأمون‬‫وقد‬‫برز‬‫في‬‫الرياضيات‬،‫والفلك‬‫ومن‬ّ‫م‬‫أه‬‫إنجاز‬‫اته‬
‫الرياضية‬‫وضعه‬‫لمبادئ‬‫علم‬،‫الجبر‬‫وتأليف‬‫كتابه‬‫الشهير‬‫الجب‬‫ر‬،‫والمقابلة‬
‫ومنه‬‫ذت‬ ِ‫خ‬ُ‫أ‬‫كلمة‬‫الجبر‬‫م‬َ‫ج‬‫ر‬َ‫ت‬ُ‫ت‬‫ل‬‫إلى‬‫جميع‬‫لغات‬،‫العالم‬‫كما‬‫ق‬‫ّم‬‫د‬ً‫ا‬‫كتاب‬‫آخر‬
‫في‬،‫الحساب‬‫ل‬ِ‫ق‬ُ‫ن‬‫إلى‬‫اللغة‬‫الﻼتينية‬‫بعنوان‬Algoritmide
‫في‬‫الحاسوب‬‫يمكن‬‫حل‬‫المشكلة‬‫بأكثر‬‫من‬‫طريقة‬‫لذلك‬‫دائما‬‫ما‬‫يب‬‫حث‬
‫المبرمجين‬‫و‬‫المهندسين‬‫عن‬‫الطرق‬‫اﻻفضل‬‫للحل‬‫تسمى‬‫طرق‬‫الحل‬
‫بالخوازميات‬.
‫ولذلك‬‫تعتبر‬‫الخوازميات‬‫اساس‬‫علم‬‫الحاسوب‬.
4‫ـ‬‫الـخــوازمـيـــات‬ALGORITHMS| 4‫ـ‬‫الـخــوازمـيـــات‬ALGORITHMS|
‫تعريف‬‫الخوازمية‬:
‫هي‬‫مجموعة‬‫محددة‬‫من‬‫التعليمات‬)‫خطوات‬‫الحل‬(‫التي‬‫تؤدي‬‫الى‬‫إنجاز‬‫مهمة‬‫معينة‬.
‫شروط‬‫الخوارزمية‬:
•‫المدخﻼت‬Input
‫يجب‬‫أن‬‫تكون‬‫المدخﻼت‬،ً‫ا‬‫صفر‬‫أو‬‫أكثر‬‫من‬‫ذلك‬.
•‫المخرجات‬outputs
‫يجب‬‫ان‬‫تكون‬‫قيمة‬‫على‬‫اﻻق‬
•‫الوضوح‬Definiteness
‫فمثﻼ‬ ‫واضحة‬ ‫العبارات‬ ‫تكون‬ ‫ان‬ ‫يجب‬:
)add 6 or 7 to k(‫الخوازميات‬ ‫عبارات‬ ‫شروط‬ ‫تستوفي‬ ‫وﻻ‬ ‫واضحة‬ ‫غير‬ ‫العبارة‬ ‫هذه‬
•‫المحدودية‬Finiteness
•ّ‫ل‬‫ح‬‫التالية‬ ‫العبارة‬ ً‫ﻼ‬‫فمث‬ ،‫معين‬ ‫وزمن‬ ‫بوقت‬ ‫الخوارزمية‬ ‫خطوات‬ ‫من‬ ‫خطوة‬ ‫كل‬) :‫الرقم‬ ‫قسمة‬10‫الرقم‬ ‫على‬3
‫عالية‬ ‫بدقة‬(‫البرنامج‬ ‫في‬ ‫وجودها‬ ‫يسمح‬ ‫وﻻ‬ ‫الخوارزمية‬ ‫شروط‬ ‫تستوفي‬ ‫ﻻ‬ ‫فهي‬ ‫وبهذا‬ ، ‫محدودة‬ ‫غير‬ ‫تعد‬ ،.
•‫المحلولية‬Effectiveness
‫جب‬‫التالية‬ ‫العبارة‬ ‫تعد‬ ‫المثال‬ ‫سبيل‬ ‫فعلى‬ ،‫الحل‬ ‫ممكنة‬ ‫خطوة‬ ‫كل‬ ‫تكون‬ ‫أن‬) :3/0(‫ﻷنها‬ ،‫الحل‬ ‫مستحيلة‬ ‫عبارة‬
‫قيمة‬‫غير‬‫معرفة‬.
4‫ـ‬‫الـخــوازمـيـــات‬ALGORITHMS|‫مـثــــال‬ 4‫ـ‬‫الـخــوازمـيـــات‬ALGORITHMS|‫مـثــــال‬
‫بمقياسين‬ ‫الخوازمية‬ ‫كفاءة‬ ‫تحدد‬:
.1‫الفراغ‬ ‫تعقيدات‬ ‫مقياس‬Space Complexity
‫هو‬‫البرنامج‬ ‫يحتاجها‬ ‫التي‬ ‫الذاكرة‬ ‫كمية‬ ‫عن‬ ‫عبارة‬)‫إكماله‬ ‫حين‬ ‫إلى‬ ‫تشغيله‬ ‫من‬(،
‫ينى‬ُ‫ي‬‫و‬‫هما‬ ،‫قسمين‬ ‫على‬ ‫النوع‬ ‫هذا‬:
‫القسم‬‫الثابت‬:‫وا‬ ،‫والمركبة‬ ‫البسيطة‬ ‫للمتغيرات‬ ‫المخصص‬ ‫المستقل‬ ‫القسم‬ ‫هو‬‫لثوابت‬
‫والتعليمات‬.
‫القسم‬‫المتغير‬:‫المتغيرا‬ ‫من‬ ‫البرنامج‬ ‫يحتاجه‬ ‫الذي‬ ‫الفراغ‬ ‫من‬ ‫القسم‬ ‫هذا‬ ‫يتكون‬‫ت‬
‫المركبة‬‫حلها‬ ‫راد‬ُ‫ي‬ ‫التي‬ ‫المسألة‬ ‫على‬ ‫حجمها‬ ‫يعتمد‬ ‫التي‬.
4‫ـ‬‫الـخــوازمـيـــات‬ALGORITHMS|‫مـثــــال‬ 4‫ـ‬‫الـخــوازمـيـــات‬ALGORITHMS|‫مـثــــال‬
‫بمقياسين‬ ‫الخوازمية‬ ‫كفاءة‬ ‫تحدد‬:
.2‫الوقت‬ ‫تعقيدات‬Time complexity
‫هي‬‫ويتكون‬ ،‫انتهائه‬ ‫لحين‬ ‫برنامج‬ ‫وتشكيل‬ ‫لتكوين‬ ‫الﻼزم‬ ‫الزمن‬ ‫كمية‬ ‫عن‬ ‫عبارة‬‫من‬:
T(P)= Const +tp
‫حيث‬‫الرمز‬ ّ‫إن‬tp‫يمثل‬‫تشغيل‬ ‫وقت‬‫البرنامج‬
‫والرمز‬Const‫التأليف‬ ‫يوقت‬ ‫ثابت‬.
4‫ـ‬‫الـخــوازمـيـــات‬ALGORITHMS|‫مـثــــال‬ 4‫ـ‬‫الـخــوازمـيـــات‬ALGORITHMS|‫مـثــــال‬
‫خوارزمية‬‫ح‬ ‫إلى‬ ‫النوم‬ ‫من‬ ‫اﻻستيقاظ‬ ‫لحظة‬ ‫من‬ ‫الخطوات‬ ‫تبين‬ ‫التي‬ ‫اﻻستيقاظ‬‫الذهاب‬ ‫ين‬
‫إلى‬‫العمل‬
‫البداية‬
‫الفراش‬ ‫من‬ ‫النهوض‬.
‫خلع‬‫النوم‬ ‫مﻼبس‬.
‫اﻻستحمام‬.
‫تجفيف‬‫الماء‬ ‫من‬ ‫الجسم‬.
‫ارتداء‬‫نظيفة‬ ‫مﻼبس‬.
‫تناول‬‫الفطور‬ ‫وجبة‬.
‫الذهاب‬‫العمل‬ ‫إلى‬.
‫النهاية‬.
‫ظ‬َ‫ح‬‫ﻼ‬ُ‫ي‬‫م‬ ‫أمر‬ ‫خطوة‬ ‫أي‬ ‫عن‬ ‫اﻻستغناء‬ ‫وعدم‬ ‫الخطوات‬ ‫ترتيب‬ ّ‫أن‬ ‫المثال‬ ‫هذا‬ ‫في‬‫لتنفيذ‬ ّ‫م‬‫ه‬
‫وإتمامها‬ ‫الخوارزمية‬.
‫البيانات‬ ‫هياكل‬ ‫أنواع‬‫البيانات‬ ‫هياكل‬ ‫أنواع‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬‫البيانات‬ ‫هياكل‬ ‫أنواع‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|‫الــمـصـفــوفـــــات‬Arrays ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|‫الــمـصـفــوفـــــات‬Arrays
‫معين‬ ‫إسم‬ ‫تحت‬ ‫ممتالي‬ ‫بشكل‬ ‫المحجوزة‬ ‫و‬ ‫الذاكرة‬ ‫في‬ ‫المواقع‬ ‫من‬ ‫مجموعة‬ ‫هي‬
‫لقيمة‬ ‫واحد‬ ‫مكان‬ ‫بحجز‬ ‫نقوم‬ ‫فإننا‬ ‫متغير‬ ‫في‬ ‫قيمة‬ ‫حفظ‬ ‫عند‬ ‫الطبيعي‬ ‫الوضع‬ ‫في‬
‫مثال‬ ‫واحدة‬
X=10;
Y=11;
Z=20;
‫الجافا‬ ‫مثل‬ ‫لغة‬ ‫في‬ ‫تعريفها‬ ‫عند‬ ‫و‬:
Int x=10;
Int y=11;
Int z=20;
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|‫الــمـصـفــوفـــــات‬Arrays ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|‫الــمـصـفــوفـــــات‬Arrays
Int data[]={10,11,12,4,5}
10 11 12 4 5
Data[0] Data[1] Data[2] Data[3] Data[4]
value
index
value‫المصفوفة‬ ‫في‬ ‫معينة‬ ‫خلية‬ ‫أو‬ ‫خانة‬ ‫داخل‬ ‫المخزنة‬ ‫القيمة‬ ‫هي‬
index‫بـ‬ ‫الترقيم‬ ‫يبداء‬ ‫و‬ ‫المصفوفة‬ ‫خانات‬ ‫أو‬ ‫لخﻼيا‬ ‫الفهرس‬ ‫رقم‬ ‫هو‬0.
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|‫الــمـصـفــوفـــــات‬Arrays ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|‫الــمـصـفــوفـــــات‬Arrays
Int data[]={10,11,12,4,5}
10 11 12 4 5
Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] Data[6] Data[7]
value
index
‫البرنامج‬ ‫تنفيذ‬ ‫قبل‬ ‫مسبقا‬ ‫تعرف‬ ‫و‬ ‫ثابتة‬ ‫احجامها‬ ‫ان‬ ‫المصفوفات‬ ‫خصائص‬ ‫من‬
‫الخوارزميات‬ ‫و‬ ‫البيانات‬ ‫هياكل‬ ‫عن‬ ‫مقدمة‬
Introduction to data structure and algorithms
‫اعـــداد‬:‫م‬.‫رضــــوان‬ ‫احـمــد‬
2019
‫محاضرة‬)2(
.2‫مـقــدمــــة‬introduction
•‫هو‬ ‫ما‬STACK
•‫على‬ ‫العمليات‬STACK
•‫استخدامات‬ ‫على‬ ‫امثلة‬STACK
.3‫مــقـــدمــــة‬
•‫هو‬ ‫ما‬QUEUE
•‫على‬ ‫العمليات‬QUEUE
•‫استخدامات‬ ‫على‬ ‫امثلة‬QUEUE
.1‫المصفوفات‬ARRAYS
•‫تعريف‬ARRAYES
•‫على‬ ‫العمليات‬ARRAYS
•‫إستخداماتها‬
‫جافا‬ ‫في‬ ‫المصفوفات‬
•‫ما‬‫انواعها‬ ‫هي‬ ‫وما‬ ‫المصفوفات‬ ‫هي‬.
•‫المصفوفات‬‫الواحد‬ ‫البعد‬ ‫ذات‬:
•‫اﻻعﻼن‬‫بعد‬ ‫ذات‬ ‫مصفوفة‬ ‫عن‬‫واحد‬
•‫الواحد‬ ‫البعد‬ ‫ذات‬ ‫للمصفوفة‬ ‫القيم‬ ‫تخصيص‬.
•‫قراءة‬‫واحد‬ ‫بعد‬ ‫ذات‬ ‫مصفوفة‬ ‫عناصر‬ ‫وطباعة‬.
•‫امثلة‬‫الواحد‬ ‫البعد‬ ‫ذات‬ ‫المصفوفات‬ ‫عن‬.
‫جافا‬ ‫في‬ ‫المصفوفات‬
‫المصفوفات‬ ‫من‬ ‫نوعان‬ ‫هناك‬:
•‫الواحد‬ ‫البعد‬ ‫ذات‬one – dimension array
•‫البعدين‬ ‫ذات‬two – dimension arrays
‫جافا‬ ‫في‬ ‫المصفوفات‬
‫الشكل‬ ‫في‬ ‫كما‬ ‫يمثل‬ ‫ان‬ ‫يمكن‬ ‫البيانات‬ ‫من‬ ‫مجموعة‬ ‫يحتوي‬ ‫واحد‬ ‫عمود‬ ‫او‬ ‫صف‬ ‫من‬ ‫تتكون‬ ‫الواحد‬ ‫البعد‬ ‫ذات‬ ‫المصفوفة‬
‫جافا‬ ‫في‬ ‫المصفوفات‬
int[] anArray;
‫الجافا‬ ‫في‬ ‫واحد‬ ‫بعد‬ ‫ذات‬ ‫مصفوفة‬ ‫عن‬ ‫لﻺعﻼن‬
int[]:‫المصفوفة‬ ‫نوع‬ ‫الى‬ ‫ويشير‬
anArray;‫المصفوفة‬ ‫اسم‬ ‫الى‬ ‫يشير‬ ‫و‬
‫ي‬ ‫كما‬ ‫السطر‬ ‫بنفس‬ ‫حجمها‬ ‫تحديد‬ ‫كذلك‬ ‫و‬ ‫المصفوفة‬ ‫تعريف‬ ‫يمكن‬‫لي‬
int anArray[]= new int[5];
‫جافا‬ ‫في‬ ‫المصفوفات‬
byte[] anArrayOfBytes;
short[] anArrayOfShorts;
long[] anArrayOfLongs;
float[] anArrayOfFloats;
double[] anArrayOfDoubles;
boolean[] anArrayOfBooleans;
char[] anArrayOfChars;
String[] anArrayOfStrings;
‫جافا‬ ‫في‬ ‫المصفوفات‬
‫فقط‬ ‫قيم‬ ‫بخمسة‬ ‫واحد‬ ‫بعد‬ ‫ذات‬ ‫مصفوفة‬ ‫بعمل‬ ‫نقوم‬ ‫المثال‬ ‫هذا‬ ‫في‬
public static void main(String[] args) {
int anArray[]= new int[5];
anArray[0]=100;
anArray[1]=200;
anArray[2]=300;
anArray[3]=400;
anArray[4]=500;
System.out.println("Element at index 0 = " + anArray[0]);
System.out.println("Element at index 0 = " + anArray[1]);
System.out.println("Element at index 0 = " + anArray[2]);
System.out.println("Element at index 0 = " + anArray[3]);
System.out.println("Element at index 0 = " + anArray[4]);
System.out.println("Element at index 0 = " + anArray[5]);
}
}
‫جافا‬ ‫في‬ ‫المصفوفات‬package arrytst;
import java.util.Scanner;
public class Arrytst {
public static void main(String[] args) {
int anArray[]= new int[5];
anArray[0]=100;
anArray[1]=200;
anArray[2]=300;
anArray[3]=400;
anArray[4]=500;
for(int i=0;i<anArray.length;i++)
System.out.println(anArray[i]); } }
‫جافا‬ ‫في‬ ‫المصفوفات‬import java.util.Scanner;
public class Arrytst {
public static void main(String[] args) {
int anArray[]= new int[5];
Scanner input = new Scanner(System.in);
anArray[0]= input.nextInt();
anArray[1]= input.nextInt();
anArray[2]= input.nextInt();
anArray[3]= input.nextInt();
anArray[4]= input.nextInt();
for(int i=0;i<anArray.length;i++)
System.out.println(anArray[i]); } }
‫جافا‬ ‫في‬ ‫المصفوفات‬package arrytst;
import java.util.Scanner;
public class Arrytst {
public static void main(String[] args) {
int anArray[]= new int[5];
Scanner input = new Scanner(System.in);
for(int k =0;k<anArray.length;k++)
anArray[k]= input.nextInt();
for(int i=0;i<anArray.length;i++)
System.out.println(anArray[i]);
}
}
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK
‫نظر‬ ‫و‬ ، ‫فقط‬ ‫واحد‬ ‫طرف‬ ‫او‬ ‫جهة‬ ‫من‬ ‫حذفها‬ ‫و‬ ‫العناصر‬ ‫بإضافة‬ ‫يسمح‬ ‫البيانات‬ ‫هياكل‬ ‫من‬ ‫نوع‬ ‫هو‬‫ا‬
‫التطبيقات‬ ‫من‬ ‫كثير‬ ‫في‬ ‫متعددة‬ ‫إستخدامات‬ ‫له‬ ‫لذلك‬
‫تعريف‬STACK:
‫الو‬ ‫يمكن‬ ‫التي‬ ‫و‬ ‫البيانات‬ ‫عناصر‬ ‫من‬ ‫مجموعة‬ ‫من‬ ‫يتألف‬ ‫اليبانات‬ ‫هياكل‬ ‫من‬ ‫نوع‬ ‫هو‬‫صول‬
‫قمة‬ ‫الى‬ ً‫ا‬‫دائم‬ ‫يشير‬ ‫مؤشر‬ ‫طريق‬ ‫عن‬ ‫إليها‬STACK
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK
‫بيانات‬ ‫عنصر‬ ‫إضافة‬ ‫بيانات‬ ‫عنصر‬ ‫حذف‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK
‫يسمى‬ ‫واحد‬ ‫طرف‬ ‫من‬ ‫اسحب‬ ‫و‬ ‫اﻹضافة‬ ‫تتم‬TOP‫الحزمة‬ ‫قمة‬ ‫او‬
‫تستخدم‬STACKً‫ا‬‫أخير‬ ‫خارج‬ ‫اوﻻ‬ ‫الداخل‬ ‫آلية‬)FIFO()FIRST IN LAST OUT(
‫على‬ ‫الرئيسية‬ ‫العمليات‬STACK:
•‫اﻹضافة‬)PUSH(
•‫الحذف‬ ‫أو‬ ‫السحب‬)POP(
•‫البحث‬SEARCH‫او‬Peek
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK
‫اﻹضافة‬ ‫عملية‬PUSH
4
23
TOP
5
4
23
TOP
8
5
4
23
TOP
9
8
5
4
23
TOP
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK
‫الحذف‬ ‫او‬ ‫السحب‬ ‫عملية‬POP
4
23
TOP
5
4
23
TOP
8
5
4
23
TOP
9
8
5
4
23
TOP
23TOP
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK
‫الـ‬ ‫تمثل‬ ‫ان‬ ‫يمكن‬STACK‫من‬ ‫كل‬ ‫بإستخدام‬:
•‫المصفوفات‬ ‫مفهوم‬ARRAYS
•‫المتصلة‬ ‫القوائم‬ ‫مفهوم‬LINKED LISTES‫هنا‬ ‫و‬
‫يطل‬‫ق‬‫على‬STACK‫اسم‬LINKED STACK
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK
‫تمثيل‬STACK‫المصفوفات‬ ‫بإستخدام‬
•‫العناصر‬ ‫من‬ ‫مجموعة‬ ‫من‬ ‫المصفوفة‬ ‫تتألف‬)‫ال‬ ‫في‬ ‫مواقع‬ ‫تخصيص‬ ‫يتم‬‫لها‬ ‫ذاكرة‬
ً‫ا‬‫محدود‬ ‫العناصر‬ ‫هذه‬ ‫عدد‬ ‫يكون‬ ‫و‬(
•‫ل‬‫يسمى‬ ‫ذلك‬STACK‫بيانات‬ ‫هيكل‬ ‫مصفوفة‬ ‫في‬ ‫الممثل‬STATIC
•‫نستخدم‬ ‫ان‬ ‫نريد‬ ‫اننا‬ ‫حالة‬ ‫في‬STACK‫نمثله‬ ‫ان‬ ‫ونريد‬ ‫العناصر‬ ‫محدود‬ ‫غير‬
‫الدينميكية‬ ‫المصفوفات‬ ‫إستخدام‬ ‫فيمكن‬ ‫بمصفوفة‬DYNAMIC ARRAYS
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK
•Int arr[5]‫بعدد‬ ‫و‬ ‫المصفوفة‬ ‫تعريف‬
‫محدد‬ ‫عناصر‬
•Int top=-1‫و‬ ‫لﻺضافة‬ ‫متغير‬ ‫تعريف‬
‫الحذف‬‫فارغة‬ ‫قيمته‬ ‫له‬ ‫وجعل‬)-1(
•‫لﻺضافة‬pushً‫ﻻ‬‫او‬‫قيمة‬ ‫تزيد‬top‫بمقدار‬
1‫الى‬ ‫الجديد‬ ‫العنصر‬ ‫إضافة‬ ‫يتم‬ ‫ثم‬top
•‫يكون‬STACK‫ممتلئ‬)FULL(‫قيمة‬ ‫كانت‬ ‫إذا‬
TOP‫تساوي‬ ‫ﻻ‬)-1(
•‫تكون‬STACK‫فارغ‬)EMPTY(‫كان‬ ‫إذا‬
TOP = -1
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK
6 1 7 8
0 1 2 3 4 5
index of top is
current size – 1
//Java Code
Stack st = new Stack();
st.push(6); //top = 0
st.push(1); //top = 1
st.push(7); //top = 2
st.push(8); //top = 3
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK
6 1 7
0 1 2 3 4 5
index of top is
current size – 1
//Java Code
Stack st = new Stack();
st.push(6); //top = 0
st.push(1); //top = 1
st.push(7); //top = 2
st.push(8); //top = 3
st.pop(); //top = 2
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK
(1)
package source;
{
maxSize; // ‫العناصر‬ ‫عدد‬ ‫او‬ ‫الحجم‬
top // ‫القمة‬ ‫عنصر‬
String arr[];
public Stack(int n) // ‫تحديد‬ ‫الكﻼس‬ ‫لمستخدم‬ ‫يمكن‬ ‫هنا‬
‫الحزمة‬ ‫عناصر‬ ‫عدد‬
{
maxSize=n;
arr = new String[maxSize];
top = 0; // ‫ﻻنها‬ ‫بصفر‬ ‫القمة‬ ‫قيمة‬ ‫نجعل‬ ‫هنا‬
‫فيه‬ ‫نخزن‬ ‫ان‬ ‫نستطيع‬ ‫المصفوفة‬ ‫في‬ ‫رقم‬ ‫اول‬ ‫تعتبر‬‫بيانا‬‫ت‬
{
(2)
public boolean empty ()
{
if(top == 0)
{
return true;
}
else
{
return false;
}
}
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK
(3)
public void push(Stirng str)
{
if(top < maxSize) // ‫الشرط‬ ‫نستخدم‬
‫اوﻻ‬ ‫ممتلئة‬ ‫الحزمة‬ ‫كانت‬ ‫ما‬ ‫إذا‬ ‫لفحص‬
}
arr[top] = str;
top++;
}
else
{
System.out.println("stack over flow..");
}
}
(4)
public String pop()
{
if(!this. Empty())
{
String temp = this. Peek();
arr[top-1] = null;
top--;
return temp;
}
else
{
return null;
}
}
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK
(5)
public string peek()
{
if(top > 0) // ‫فارغة‬ ‫غير‬ ‫الحزمة‬ ‫ان‬ ‫من‬ ‫للتاكد‬ ‫تستخدم‬
}
return arr[top-1];// ‫اخر‬ ‫قيمة‬ ‫ﻹعادة‬ ‫الدالة‬ ‫تستخدم‬
‫القمة‬ ‫قيمة‬ ‫وهي‬ ‫الحزمة‬ ‫في‬ ‫عنصر‬
{
else
{
return null;
}
}
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|STACK
package source;
public class Main{
public static void main(String[] args)
{
Stack myStack = new Stack(4);
// System.out.println(myStack.empty());
myStack.push("1");
// System.out.println(myStack.empty());
System.out.println(mySack.peek());
//System.out.println(myStack.pop());
myStack.push("2");
System.out.println(myStack.peek());
myStack.push("3");
System.out.println(myStack.peek());
myStack.push("4");
System.out.println(myStack.peek());
myStack.push("5");
System.out.println(myStack.peek());
}
}
CLASS‫ﻹنشاء‬ ‫منفصل‬OBJECT‫الحزمة‬ ‫من‬
‫دوالها‬ ‫تجربة‬ ‫و‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|QUEUE
‫الـ‬ ‫يشابه‬Queue‫الــ‬Stack‫الـ‬ ‫ان‬ ‫الرئيسي‬ ‫الفرق‬ ‫يعتبر‬ ‫و‬queue‫طرفين‬ ‫يمتلك‬
‫لﻺضافة‬ ‫آخر‬ ‫و‬ ‫للحذف‬ ‫طرف‬.‫معينة‬ ‫لمهمة‬ ‫مخصص‬ ‫يكون‬ ‫طرف‬ ‫كل‬ ‫فإن‬ ‫لذلك‬ ‫و‬
‫اﻹضافة‬ ‫طرف‬:‫الـ‬ ‫يسمى‬FRONT
‫الحذف‬ ‫طرف‬:‫ويسمى‬REAR
‫يعتمد‬QUEUE‫طريقة‬ ‫على‬)ً‫ﻻ‬‫أو‬ ‫يخرج‬ ً‫ﻻ‬‫او‬ ‫الداخل‬(FIFO)FIRST IN FIRST OUT(
‫من‬ ‫نوعان‬ ‫هناك‬QUEUE:
‫الخطي‬ ‫الطابور‬LINEAR QUEUE
‫الدائري‬ ‫الطابور‬CIRCLAR QUEUE
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|QUEUE
‫أمثلة‬‫على‬‫استخدامات‬‫الطابور‬QUEUE:
•‫اوامر‬‫الطباعة‬‫عندما‬‫تكون‬‫الطابعة‬‫على‬‫الشبكة‬
•‫عند‬‫النقر‬‫الى‬‫الماوس‬‫ﻻكثرمن‬‫مرة‬‫لتنفيذ‬‫اكثر‬‫من‬‫أمر‬
•‫عندما‬‫تكون‬‫بعض‬‫اﻻجهزة‬‫المتصلة‬‫سريعة‬‫و‬‫اخرى‬‫بطيئة‬‫مثل‬‫أجهزة‬‫اﻹدخال‬+‫المعالجة‬
•‫انظمة‬‫شبكات‬‫الهاتف‬
•‫على‬‫اﻹنترنت‬)ROUTERS(
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|QUEUE
LINEAR QUEUES) :‫الخطية‬ ‫الطوابير‬(
‫ثابتة‬ ‫كمصفوفة‬ ‫يمثل‬)STATIC ARRAY(‫موصولة‬ ‫كقائمة‬ ‫تمثيله‬ ‫يمكن‬ ‫كذلك‬ ‫و‬)LINED LIST(
1 2 3 4 5
FRONT=1
REAR=1
FRONT=2 FRONT=3 FRONT=4 FRONT=5
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|QUEUE
Dequeue‫الـ‬ ‫من‬ ‫عنصر‬ ‫سحب‬ ‫او‬ ‫حذف‬queue
10
FRONT=1
REAR=1
12
FRONT=2
5
FRONT=3
8
FRONT=4
2
FRONT=5
1
FRONT=6
REAR=2 REAR=3 REAR=4 REAR=5 REAR=6
AssignmentAssignment
‫أسئلة‬‫السبت‬16-02-2019‫للتسليم‬ ‫موعد‬ ‫أخر‬)‫الخميس‬21/02/2019:(
‫مثال‬ ‫مع‬ ‫بعدين‬ ‫ذات‬ ‫المصفوفة‬ ‫عن‬ ‫تحدث‬)‫أختياري‬(‫؟‬
‫هو‬ ‫ما‬queue‫آليته‬ ، ‫تعريفه‬ ‫؟‬)‫مجرد‬ ‫بشكل‬ ‫استخدامه‬ ‫طريقة‬(،
‫العمليات‬)‫ورقة‬ ‫في‬ ‫اﻻجابة‬4A‫فقط‬ ‫وجهين‬(
‫هو‬ ‫ما‬top‫في‬ ‫المستخدم‬Stack‫؟‬ ‫منه‬ ‫الفائدة‬ ‫ما‬ ‫و‬
‫الـ‬ ‫تمثيل‬ ‫يمكن‬stack‫؟‬ ‫إذكرهما‬ ‫طريقتين‬ ‫بإستخدام‬
‫الـ‬ ‫بين‬ ‫الفرق‬ ‫ما‬stack‫و‬Queue‫؟‬)‫في‬ ‫اﻻسئلة‬ ‫الثﻼثة‬A4‫فقط‬ ‫واحدة‬(

More Related Content

What's hot

QGIS Training.pptx
QGIS Training.pptxQGIS Training.pptx
QGIS Training.pptxSeemaAjay7
 
Getting Started with NuoDB Community Edition
Getting Started with NuoDB Community Edition Getting Started with NuoDB Community Edition
Getting Started with NuoDB Community Edition NuoDB
 
WMS Performance Shootout 2010
WMS Performance Shootout 2010WMS Performance Shootout 2010
WMS Performance Shootout 2010Jeff McKenna
 
Software design principles
Software design principlesSoftware design principles
Software design principlesRitesh Singh
 
Advance Software Engineering
Advance Software EngineeringAdvance Software Engineering
Advance Software EngineeringMasud Parves
 
How to Comply with NIST 800-171
How to Comply with NIST 800-171How to Comply with NIST 800-171
How to Comply with NIST 800-171Corserva
 
Stakeholders, viewpoints and concerns
Stakeholders, viewpoints and concernsStakeholders, viewpoints and concerns
Stakeholders, viewpoints and concernssommerville-videos
 
Makalah Aplikasi Data Penjualan Menggunakan Visual Basic 6.0
Makalah Aplikasi Data Penjualan Menggunakan Visual Basic 6.0Makalah Aplikasi Data Penjualan Menggunakan Visual Basic 6.0
Makalah Aplikasi Data Penjualan Menggunakan Visual Basic 6.0Marlinda
 
ENISA - EU strategies for cyber incident response
ENISA - EU strategies for cyber incident responseENISA - EU strategies for cyber incident response
ENISA - EU strategies for cyber incident responseKevin Duffey
 
Distributed database system
Distributed database systemDistributed database system
Distributed database systemM. Ahmad Mahmood
 
Introduction of Database Design and Development
Introduction of Database Design and DevelopmentIntroduction of Database Design and Development
Introduction of Database Design and DevelopmentEr. Nawaraj Bhandari
 

What's hot (20)

QGIS Training.pptx
QGIS Training.pptxQGIS Training.pptx
QGIS Training.pptx
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
Getting Started with NuoDB Community Edition
Getting Started with NuoDB Community Edition Getting Started with NuoDB Community Edition
Getting Started with NuoDB Community Edition
 
WMS Performance Shootout 2010
WMS Performance Shootout 2010WMS Performance Shootout 2010
WMS Performance Shootout 2010
 
Software design principles
Software design principlesSoftware design principles
Software design principles
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Shlaer mellor-method
Shlaer mellor-methodShlaer mellor-method
Shlaer mellor-method
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Advance Software Engineering
Advance Software EngineeringAdvance Software Engineering
Advance Software Engineering
 
How to Comply with NIST 800-171
How to Comply with NIST 800-171How to Comply with NIST 800-171
How to Comply with NIST 800-171
 
Software design
Software designSoftware design
Software design
 
Class notes
Class notesClass notes
Class notes
 
Stakeholders, viewpoints and concerns
Stakeholders, viewpoints and concernsStakeholders, viewpoints and concerns
Stakeholders, viewpoints and concerns
 
Makalah Aplikasi Data Penjualan Menggunakan Visual Basic 6.0
Makalah Aplikasi Data Penjualan Menggunakan Visual Basic 6.0Makalah Aplikasi Data Penjualan Menggunakan Visual Basic 6.0
Makalah Aplikasi Data Penjualan Menggunakan Visual Basic 6.0
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
ENISA - EU strategies for cyber incident response
ENISA - EU strategies for cyber incident responseENISA - EU strategies for cyber incident response
ENISA - EU strategies for cyber incident response
 
System Programming
System ProgrammingSystem Programming
System Programming
 
Distributed database system
Distributed database systemDistributed database system
Distributed database system
 
Lecture 05 dblc
Lecture 05 dblcLecture 05 dblc
Lecture 05 dblc
 
Introduction of Database Design and Development
Introduction of Database Design and DevelopmentIntroduction of Database Design and Development
Introduction of Database Design and Development
 

Similar to 1 introdcution to ds 2-2019 abstract stack and queue

نظم المعلومات الجغرافية
نظم المعلومات الجغرافيةنظم المعلومات الجغرافية
نظم المعلومات الجغرافيةgegemohamed
 
1366136913.9485 نظم ادارة قواعد البيانات 2
1366136913.9485 نظم ادارة  قواعد البيانات 21366136913.9485 نظم ادارة  قواعد البيانات 2
1366136913.9485 نظم ادارة قواعد البيانات 2mh ED
 
System Analysis and Design (Lect 1)
System Analysis and Design (Lect 1)System Analysis and Design (Lect 1)
System Analysis and Design (Lect 1)University of Gezira
 
تصميمات قواعد البيانات
تصميمات قواعد البيانات تصميمات قواعد البيانات
تصميمات قواعد البيانات hendgamagmail
 
أنظمة ادارة قواعد البيانات
أنظمة ادارة قواعد البياناتأنظمة ادارة قواعد البيانات
أنظمة ادارة قواعد البياناتMahmoud Almadhoun
 
مقدمة في قواعد البيانات
مقدمة في قواعد البياناتمقدمة في قواعد البيانات
مقدمة في قواعد البياناتMahmoud Almadhoun
 
Databases قواعد البيانات
Databases قواعد البيانات  Databases قواعد البيانات
Databases قواعد البيانات Mohamed Reda
 
منهاج تحليل و تصميم نظم المعلومات
منهاج تحليل و تصميم نظم المعلوماتمنهاج تحليل و تصميم نظم المعلومات
منهاج تحليل و تصميم نظم المعلوماتDrMohammed Qassim
 
تواصل_تطوير المحاضرة رقم 190 المهندس / أشرف نصير عنوان المحاضرة "إستراتيجيات...
تواصل_تطوير المحاضرة رقم 190 المهندس / أشرف نصير  عنوان المحاضرة "إستراتيجيات...تواصل_تطوير المحاضرة رقم 190 المهندس / أشرف نصير  عنوان المحاضرة "إستراتيجيات...
تواصل_تطوير المحاضرة رقم 190 المهندس / أشرف نصير عنوان المحاضرة "إستراتيجيات...Egyptian Engineers Association
 
مقدمة في قواعد البيانات
مقدمة في قواعد البياناتمقدمة في قواعد البيانات
مقدمة في قواعد البياناتDrMohammed Qassim
 
ادارة قواعد البيانات.pptx
ادارة قواعد البيانات.pptxادارة قواعد البيانات.pptx
ادارة قواعد البيانات.pptxAhmedOthman511332
 
Www.kutub.info 5727
Www.kutub.info 5727Www.kutub.info 5727
Www.kutub.info 5727Adel Totott
 
Database concepts
Database conceptsDatabase concepts
Database conceptsFataho Ali
 
قواعد البيانات
قواعد البياناتقواعد البيانات
قواعد البياناتMoselhy Hussein
 
نظم قواعد البيانات
نظم قواعد البياناتنظم قواعد البيانات
نظم قواعد البياناتFida Kadun
 
School database - Abdullatif Tarakji - www.abdtarakji.com
School database - Abdullatif Tarakji - www.abdtarakji.comSchool database - Abdullatif Tarakji - www.abdtarakji.com
School database - Abdullatif Tarakji - www.abdtarakji.comAbdullatif Tarakji
 

Similar to 1 introdcution to ds 2-2019 abstract stack and queue (20)

نظم المعلومات الجغرافية
نظم المعلومات الجغرافيةنظم المعلومات الجغرافية
نظم المعلومات الجغرافية
 
1366136913.9485 نظم ادارة قواعد البيانات 2
1366136913.9485 نظم ادارة  قواعد البيانات 21366136913.9485 نظم ادارة  قواعد البيانات 2
1366136913.9485 نظم ادارة قواعد البيانات 2
 
System Analysis and Design (Lect 1)
System Analysis and Design (Lect 1)System Analysis and Design (Lect 1)
System Analysis and Design (Lect 1)
 
تصميمات قواعد البيانات
تصميمات قواعد البيانات تصميمات قواعد البيانات
تصميمات قواعد البيانات
 
أنظمة ادارة قواعد البيانات
أنظمة ادارة قواعد البياناتأنظمة ادارة قواعد البيانات
أنظمة ادارة قواعد البيانات
 
الأوراكل
الأوراكلالأوراكل
الأوراكل
 
مقدمة في قواعد البيانات
مقدمة في قواعد البياناتمقدمة في قواعد البيانات
مقدمة في قواعد البيانات
 
Databases قواعد البيانات
Databases قواعد البيانات  Databases قواعد البيانات
Databases قواعد البيانات
 
منهاج تحليل و تصميم نظم المعلومات
منهاج تحليل و تصميم نظم المعلوماتمنهاج تحليل و تصميم نظم المعلومات
منهاج تحليل و تصميم نظم المعلومات
 
GIS.pdf
GIS.pdfGIS.pdf
GIS.pdf
 
تواصل_تطوير المحاضرة رقم 190 المهندس / أشرف نصير عنوان المحاضرة "إستراتيجيات...
تواصل_تطوير المحاضرة رقم 190 المهندس / أشرف نصير  عنوان المحاضرة "إستراتيجيات...تواصل_تطوير المحاضرة رقم 190 المهندس / أشرف نصير  عنوان المحاضرة "إستراتيجيات...
تواصل_تطوير المحاضرة رقم 190 المهندس / أشرف نصير عنوان المحاضرة "إستراتيجيات...
 
مقدمة في قواعد البيانات
مقدمة في قواعد البياناتمقدمة في قواعد البيانات
مقدمة في قواعد البيانات
 
ادارة قواعد البيانات.pptx
ادارة قواعد البيانات.pptxادارة قواعد البيانات.pptx
ادارة قواعد البيانات.pptx
 
Www.kutub.info 5727
Www.kutub.info 5727Www.kutub.info 5727
Www.kutub.info 5727
 
Database concepts
Database conceptsDatabase concepts
Database concepts
 
قواعد البيانات
قواعد البياناتقواعد البيانات
قواعد البيانات
 
عرض قواعد البيانات 01
عرض قواعد البيانات 01عرض قواعد البيانات 01
عرض قواعد البيانات 01
 
نظم قواعد البيانات
نظم قواعد البياناتنظم قواعد البيانات
نظم قواعد البيانات
 
School database - Abdullatif Tarakji - www.abdtarakji.com
School database - Abdullatif Tarakji - www.abdtarakji.comSchool database - Abdullatif Tarakji - www.abdtarakji.com
School database - Abdullatif Tarakji - www.abdtarakji.com
 
School database
School databaseSchool database
School database
 

More from ِِِAhmed R. A. Shamsan

شرح تفصيلي لهندسة YOLOv8 - انهيار كامل.pptx
شرح تفصيلي لهندسة YOLOv8 - انهيار كامل.pptxشرح تفصيلي لهندسة YOLOv8 - انهيار كامل.pptx
شرح تفصيلي لهندسة YOLOv8 - انهيار كامل.pptxِِِAhmed R. A. Shamsan
 
image processing EdgeDetection Luc03 part 01.pdf
image processing EdgeDetection Luc03 part 01.pdfimage processing EdgeDetection Luc03 part 01.pdf
image processing EdgeDetection Luc03 part 01.pdfِِِAhmed R. A. Shamsan
 
digital image enhancement techniques and applcations.pdf
digital image enhancement techniques and applcations.pdfdigital image enhancement techniques and applcations.pdf
digital image enhancement techniques and applcations.pdfِِِAhmed R. A. Shamsan
 
Image Edge Detection Operators in Digital Image Processing _ L1.pdf
Image Edge Detection Operators in Digital Image Processing _ L1.pdfImage Edge Detection Operators in Digital Image Processing _ L1.pdf
Image Edge Detection Operators in Digital Image Processing _ L1.pdfِِِAhmed R. A. Shamsan
 
Ms powerpoint بالعربي شرح ميكروسوفت باوربويت العرض التقديمي
Ms powerpoint بالعربي شرح ميكروسوفت باوربويت العرض التقديميMs powerpoint بالعربي شرح ميكروسوفت باوربويت العرض التقديمي
Ms powerpoint بالعربي شرح ميكروسوفت باوربويت العرض التقديميِِِAhmed R. A. Shamsan
 

More from ِِِAhmed R. A. Shamsan (20)

شرح تفصيلي لهندسة YOLOv8 - انهيار كامل.pptx
شرح تفصيلي لهندسة YOLOv8 - انهيار كامل.pptxشرح تفصيلي لهندسة YOLOv8 - انهيار كامل.pptx
شرح تفصيلي لهندسة YOLOv8 - انهيار كامل.pptx
 
image processing EdgeDetection Luc03 part 01.pdf
image processing EdgeDetection Luc03 part 01.pdfimage processing EdgeDetection Luc03 part 01.pdf
image processing EdgeDetection Luc03 part 01.pdf
 
image processing_ Edge Detection Luc02.pdf
image processing_ Edge Detection Luc02.pdfimage processing_ Edge Detection Luc02.pdf
image processing_ Edge Detection Luc02.pdf
 
image processing _Edge Detection Luc01.pdf
image processing _Edge Detection Luc01.pdfimage processing _Edge Detection Luc01.pdf
image processing _Edge Detection Luc01.pdf
 
digital image enhancement techniques and applcations.pdf
digital image enhancement techniques and applcations.pdfdigital image enhancement techniques and applcations.pdf
digital image enhancement techniques and applcations.pdf
 
Image Edge Detection Operators in Digital Image Processing _ L1.pdf
Image Edge Detection Operators in Digital Image Processing _ L1.pdfImage Edge Detection Operators in Digital Image Processing _ L1.pdf
Image Edge Detection Operators in Digital Image Processing _ L1.pdf
 
Intorduction to databases 2021
Intorduction to databases 2021Intorduction to databases 2021
Intorduction to databases 2021
 
5 sql language
5   sql language5   sql language
5 sql language
 
4 sql language
4   sql language4   sql language
4 sql language
 
Computer skills 2019 last edition a
Computer skills 2019 last edition aComputer skills 2019 last edition a
Computer skills 2019 last edition a
 
Ms powerpoint بالعربي شرح ميكروسوفت باوربويت العرض التقديمي
Ms powerpoint بالعربي شرح ميكروسوفت باوربويت العرض التقديميMs powerpoint بالعربي شرح ميكروسوفت باوربويت العرض التقديمي
Ms powerpoint بالعربي شرح ميكروسوفت باوربويت العرض التقديمي
 
Ms excel
Ms excel  Ms excel
Ms excel
 
Ms word
Ms word Ms word
Ms word
 
Ms windows 7
Ms windows 7Ms windows 7
Ms windows 7
 
Internet basices
Internet basices Internet basices
Internet basices
 
dos fundamentals
dos fundamentalsdos fundamentals
dos fundamentals
 
Queues and linked lists
Queues and linked listsQueues and linked lists
Queues and linked lists
 
Linked list
Linked listLinked list
Linked list
 
10 introduction to ds 2-2019 - heap
10   introduction to ds 2-2019 - heap10   introduction to ds 2-2019 - heap
10 introduction to ds 2-2019 - heap
 
introduction to ds 2-2019 - complete tree
 introduction to ds 2-2019 - complete tree introduction to ds 2-2019 - complete tree
introduction to ds 2-2019 - complete tree
 

1 introdcution to ds 2-2019 abstract stack and queue