SlideShare a Scribd company logo
Linked list
‫اعـــداد‬:‫م‬.‫رضــــوان‬ ‫احـمــد‬
2019
‫محاضرة‬)‫الـمـتـصـلــــة‬ ‫القـوائــم‬(
•‫مـقــدمــــة‬
introduction
•‫تمهيد‬
.1‫المتصلة‬ ‫القوائم‬ ‫مفهوم‬
.2‫المتصلة‬ ‫القوائم‬ ‫تعريف‬
.3‫البيانات‬ ‫تمثيل‬
.1‫المتسلسلة‬ ‫القائمة‬
.2‫المتصلة‬ ‫القوائم‬
.3‫العقدة‬
.4‫البيانات‬ ‫حقل‬
.5‫ربط‬ ‫حقل‬)‫المؤشر‬(
.4‫إضافة‬‫في‬ ‫جديدة‬ ‫عقدة‬
‫القائمة‬ ‫بداية‬
.5‫بين‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬
‫عقدتين‬
.6‫عقدة‬ ‫عن‬ ‫البحث‬
.7‫الحذف‬
.8‫القائمة‬ ‫طول‬ ‫إيجاد‬
.9‫القائمة‬ ‫عناصر‬ ‫عرض‬
.7‫الخﻼصة‬
.8‫اسئلة‬
.4‫المتصلة‬ ‫القوائم‬ ‫أنواع‬
.4‫اﻹتجاه‬ ‫احادية‬ ‫القائمة‬
.5‫الدائرية‬ ‫القائمة‬
.6‫اﻹتجاهين‬ ‫ذات‬ ‫القائمة‬
.7‫الراس‬ ‫ذات‬ ‫القائمة‬
.8‫المعممة‬ ‫القائمة‬
.5‫إنشاء‬‫المتصل‬ ‫للقائمة‬ ‫فصيلة‬‫ة‬
.6‫اﻷعضاء‬ ‫الدوال‬ ‫تعريف‬
.1‫المشيد‬
.2‫اﻹضافة‬
.3‫في‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬
‫القائمة‬ ‫نهاية‬
‫الذاكرة‬ ‫شكل‬ ‫هذا‬ ‫ان‬ ‫نفرض‬
‫متغير‬ ‫تعريف‬ ‫حالة‬
‫مصفوفة‬ ‫تعريف‬ ‫حالة‬
‫متصلة‬ ‫قائمة‬ ‫تعريف‬ ‫حالة‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list
‫مصف‬ ‫في‬ ‫جديد‬ ‫عنصر‬ ‫إضافة‬ ‫عملية‬ ‫مثل‬ ‫العيوب‬ ‫بعض‬ ‫على‬ ‫تحتوي‬ ‫المصفوفات‬ ‫ﻻن‬ ً‫ا‬‫نظر‬‫فإننا‬ ‫وفة‬
‫الى‬ ‫يؤدي‬ ‫هذا‬ ‫و‬ ‫العناصر‬ ‫ترتيب‬ ‫إعادة‬ ‫الى‬ ‫بحاجة‬:
•‫التشغيل‬ ‫وقت‬ ‫زيادة‬)runtime(
•‫للذاكرة‬ ‫لمساحة‬ ‫الصحيح‬ ‫غير‬ ‫اﻹستهﻼك‬ ‫او‬ ‫إهدار‬ ‫زيادة‬
‫ميزاتها‬ ‫من‬ ‫ان‬ ‫حيث‬ ‫المتصلة‬ ‫القوائم‬ ‫دور‬ ‫يأتي‬ ‫هنا‬:
•‫التوسع‬ ‫قابلية‬‫التشغيل‬ ‫اثناء‬ ‫التقلص‬ ‫و‬RUN‫القائمة‬ ‫في‬ ‫الموجودة‬ ‫العناصر‬ ‫حسب‬
•‫القائمة‬ ‫عناصر‬ ‫وسط‬ ‫عنصر‬ ‫إدراج‬ ‫قابلية‬)‫الترتيب‬ ‫آلية‬.(
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|2–‫المتصلة‬ ‫القوائمة‬ ‫تعريف‬
‫المتصلة‬ ‫القوائم‬:
‫كل‬ ‫يسمى‬ ‫العناصر‬ ‫مـن‬ ‫مجـمـوعة‬ ‫مـن‬ ‫مـؤلـفـة‬ ‫بـيـانات‬ ‫هـيـاكـل‬ ‫هي‬
‫بـعـقـدة‬ ‫منها‬ ‫عنصر‬)NODE(‫حقلين‬ ‫أو‬ ‫جزئين‬ ‫من‬ ‫عقدة‬ ‫كل‬ ‫تتألف‬ ‫و‬:
•‫اليبانات‬ ‫حقل‬ ‫او‬ ‫جزء‬)DATA(
•‫التالية‬ ‫العقدة‬ ‫الى‬ ‫يشير‬ ‫أكثر‬ ‫المؤشرأو‬ ‫حقل‬ ‫أو‬ ‫جزء‬
)POINTER(
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|2–‫المتصلة‬ ‫القوائمة‬ ‫تعريف‬|‫مكوناتها‬ ‫و‬ ‫الواحدة‬ ‫العقدة‬ ‫شكل‬
2000
‫الذاكرة‬ ‫في‬ ‫العقدة‬ ‫هذه‬ ‫عنوان‬ ‫ان‬ ‫نفرض‬
1000
‫متغير‬ ‫تعريف‬ ‫عند‬ ‫المثال‬ ‫سبيل‬ ‫على‬int a =10
‫التالية‬ ‫العقدة‬ ‫عنوان‬ ‫المؤشر‬ ‫و‬ ‫البيانات‬ ‫بجزئيها‬ ‫العقدة‬ ‫شكل‬
10‫قيمة‬ ‫هي‬a
2000‫مؤشر‬ ‫هي‬
‫التالية‬ ‫العقدة‬ ‫لعنوان‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|‫عقد‬ ‫عدة‬ ‫من‬ ‫المكونة‬ ‫المتصلة‬ ‫القائمة‬ ‫شكل‬
TAIZ A
B
C IBB
HEAD NULL
HEAD‫القائمة‬ ‫راس‬ ‫الى‬ ‫يشير‬ ‫مؤشر‬ ‫هو‬
‫القائمة‬ ‫راس‬ ‫هي‬ ‫القائمة‬ ‫في‬ ‫عقدة‬ ‫اول‬ ‫تعتبر‬ ‫و‬ NULL‫القائمة‬ ‫في‬ ‫عنصر‬ ‫اخر‬ ‫مؤشر‬ ‫من‬ ‫إليه‬ ‫يشار‬ ‫و‬ ‫القائمة‬ ‫نهاية‬ ‫الى‬ ‫يشير‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|3–‫البيانات‬ ‫تمثيل‬|1-3|‫المتسلسلة‬ ‫القائمة‬
‫القوائم‬ ‫من‬ ‫شكلين‬ ‫في‬ ‫البيانات‬ ‫تمثل‬ ‫يتم‬)‫المتسلسلة‬ ‫القوائم‬(‫و‬)‫المتص‬ ‫القوائم‬‫لة‬(
‫المتسلسلة‬ ‫القوائم‬:
•‫عليها‬ ‫مثال‬ ‫خير‬ ‫متفرقة‬ ‫ذاكرة‬ ‫مساحات‬ ‫او‬ ‫مسافات‬ ‫بدون‬ ‫متتالية‬ ‫عناصرها‬ ‫التي‬ ‫هي‬‫هي‬
‫المصفوفات‬.
•‫باﻵتي‬ ‫المتسلسلة‬ ‫القوائم‬ ‫تتميز‬ ‫و‬:
•‫عشوائي‬ ‫بشكل‬ ‫الحذف‬ ‫و‬ ‫اﻹضافة‬ ‫إمكانية‬
•‫التشغيل‬ ‫قبل‬ ‫القائمة‬ ‫حجم‬ ‫تحديد‬ ‫إمكانية‬
•‫عمليتي‬ ‫في‬ ‫العناصر‬ ‫الى‬ ‫الوصول‬ ‫سرعة‬)‫اﻷختيار‬PEEK‫اﻷحﻼل‬ ‫او‬(
TRAVERSING
•‫العناصر‬ ‫ترتيب‬ ‫إعادة‬ ‫مشكلة‬ ‫عنهما‬ ‫تنشأ‬ ‫اﻹضافة‬ ‫و‬ ‫الحذف‬ ‫عمليتي‬ ‫في‬)‫الف‬‫رز‬
SORTING(
•‫وق‬ ‫في‬ ‫زيادتها‬ ‫الى‬ ‫نحتاج‬ ‫حيث‬ ‫للمصفوفة‬ ‫المناسب‬ ‫الحجم‬ ‫تحديد‬ ‫مشكلة‬ ‫تظهر‬‫التشغيل‬ ‫ت‬
‫الحاﻻت‬ ‫بعض‬ ‫في‬.
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|3–‫البيانات‬ ‫تمثيل‬|2-3|‫المتصلة‬ ‫القائمة‬LINKED LISTS
‫المتصلة‬ ‫القوائم‬ ‫في‬ ‫المستخدمة‬ ‫المصطلحات‬ ‫اهم‬:
‫العقدة‬)NODE(
•‫الم‬ ‫الذاكرة‬ ‫من‬ ‫مختلفة‬ ‫وحدات‬ ‫يمثل‬ ‫القائمة‬ ‫في‬ ‫عنصر‬ ‫أو‬ ‫سجل‬ ‫عن‬ ‫عبارة‬‫عنونة‬
‫العق‬ ‫الى‬ ‫يشير‬ ً‫ا‬‫عنوان‬ ‫يحمل‬ ‫اخر‬ ‫جزء‬ ‫و‬ ‫للبيانات‬ ‫جزء‬ ‫على‬ ‫يحتوي‬ ‫و‬‫التالية‬ ‫دة‬
‫القائمة‬ ‫في‬
•‫الذاكرة‬ ‫في‬ ً‫ا‬‫فيزيائي‬ ‫متﻼصقة‬ ‫العقد‬ ‫تكون‬ ‫ان‬ ‫بالضرورة‬ ‫ليس‬.
‫البيانات‬ ‫حقل‬ ‫او‬ ‫جزء‬)DATA(
•‫وبياناته‬ ‫القائمة‬ ‫في‬ ‫الحقيقي‬ ‫العنصر‬ ‫يحمل‬ ‫الذي‬ ‫الجزء‬ ‫هو‬
‫الربط‬ ‫حقل‬ ‫او‬ ‫جزء‬)POINTER(
•‫ف‬ ‫التالي‬ ‫العنصر‬ ‫تخزين‬ ‫موقع‬ ‫تحدد‬ ‫معينة‬ ‫بيانية‬ ‫قيمة‬ ‫على‬ ‫يحتوي‬‫القائمة‬ ‫ي‬
•‫عشري‬ ‫الستة‬ ‫او‬ ‫الثنائي‬ ‫بالنظام‬ ‫مكتوبة‬ ‫تكون‬ ‫ما‬ ‫غالبا‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|3–‫البيانات‬ ‫تمثيل‬|2-3|‫المتصلة‬ ‫القائمة‬LINKED LISTS
‫القعدة‬ ‫تعريف‬ ‫كيفية‬:
Class LinkedList {
Node head; // ‫القائمة‬ ‫راس‬
// ‫القيمة‬ ‫و‬ ‫جديدة‬ ‫نود‬ ‫ﻹنشاء‬ ‫تستخدم‬ ‫البناء‬ ‫دالة‬
// null ‫شيء‬ ‫ﻻ‬ ‫هي‬ ‫لها‬ ‫اﻹفتراضية‬
Class Node
{
int data;
Node next;
Node(int d) { data=d;}
}
}
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|4–‫المتصلة‬ ‫القوائم‬ ‫انواع‬|one way linked list
1-4‫اﻹتجاه‬ ‫أحادية‬ ‫القائمة‬one way linked list‫أو‬single linked list
‫هي‬‫التي‬‫تشير‬‫كل‬‫عقدة‬‫فيها‬‫الى‬‫العقدة‬‫التي‬‫تليها‬‫و‬‫بالتالي‬‫تكون‬‫العناصر‬‫مرتبطة‬‫مع‬‫ب‬‫عضها‬
‫البعض‬‫على‬‫شكل‬‫سﻼسل‬‫و‬‫يوجد‬‫مؤشر‬‫ﻷول‬‫عقدة‬‫في‬‫القائمة‬‫و‬‫العقدة‬‫اﻷخيرة‬‫تؤشر‬‫الى‬‫ﻻ‬‫شيء‬
null
data data
data data
HEAD
NULL
‫مثال‬:‫إذا‬‫كان‬‫لشركة‬‫الطيران‬‫اليمنية‬‫خط‬‫رحﻼت‬‫يبداء‬‫من‬‫تعز‬‫و‬‫ينتهي‬‫في‬‫المكﻼ‬‫بدون‬‫الع‬‫ودة‬.
‫مرورا‬‫بمدينة‬‫الحديدة‬‫و‬‫مدينة‬‫عدن‬.
Taiz Hodeida Aden Almukala
‫الوصول‬‫الى‬‫عنصر‬‫يتم‬‫التحرك‬‫له‬‫من‬‫القيمة‬head‫و‬‫جعلها‬‫تشير‬‫الى‬‫العقدة‬‫اﻻولى‬‫في‬‫القائمة‬‫ثم‬
‫اﻹنتقال‬‫الى‬‫العقدة‬‫التالية‬‫التي‬‫يؤشر‬‫إليها‬‫المؤشر‬‫و‬‫هكذا‬‫الى‬‫أن‬‫نصل‬‫الى‬‫العقدة‬‫المحدد‬‫ة‬.
‫فإذا‬‫اردنا‬‫التحرك‬‫الى‬‫العقدة‬Aden‫يجب‬‫ان‬‫نتحرك‬‫من‬Taiz‫ثم‬Hodeida‫ثم‬‫عدن‬‫بدون‬‫العودة‬
‫للخلف‬
NULL
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|4–‫المتصلة‬ ‫القوائم‬ ‫انواع‬|one way linked list
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|4–‫المتصلة‬ ‫القوائم‬ ‫انواع‬|Circular Linked List
2-4‫الدائرية‬ ‫القائمة‬Circular Linked List
‫هي‬‫قائمة‬‫بسيطة‬‫أو‬‫أحادية‬‫اﻻتجاه‬‫فيها‬‫العقدة‬‫اﻷخيرة‬‫تؤشر‬‫إلى‬‫العقدة‬‫اﻻ‬‫ولى‬ً‫ﻻ‬‫بد‬‫عن‬‫أن‬‫تؤشر‬‫إلى‬‫ﻻ‬‫ش‬‫يء‬null.
‫مثال‬:‫إذا‬‫كان‬‫لشركة‬‫الطيران‬‫اليمنية‬‫خط‬‫رحﻼت‬‫يبداء‬‫من‬‫تعز‬‫و‬‫ينتهي‬‫في‬‫المكﻼ‬‫و‬‫العودة‬‫ت‬‫كون‬
‫لتعز‬.
Taiz Hodeida Aden Almukala
‫القيمة‬ ‫من‬ ‫له‬ ‫التحرك‬ ‫يتم‬ ‫عنصر‬ ‫الى‬ ‫الوصول‬head‫م‬‫ث‬ ‫ة‬‫القائم‬ ‫ي‬‫ف‬ ‫ى‬‫اﻻول‬ ‫العقدة‬ ‫الى‬ ‫تشير‬ ‫جعلها‬ ‫و‬
‫المحدد‬ ‫العقدة‬ ‫الى‬ ‫نصل‬ ‫أن‬ ‫الى‬ ‫هكذا‬ ‫و‬ ‫المؤشر‬ ‫إليها‬ ‫يؤشر‬ ‫التي‬ ‫التالية‬ ‫العقدة‬ ‫الى‬ ‫اﻹنتقال‬‫ة‬.
‫دة‬‫العق‬ ‫الى‬ ‫التحرك‬ ‫اردنا‬ ‫فإذا‬Aden‫ن‬‫م‬ ‫رك‬‫نتح‬ ‫ان‬ ‫ب‬‫يج‬Taiz‫م‬‫ث‬Hodeida‫لنا‬‫وص‬ ‫إذا‬ ‫و‬ ‫دن‬‫ع‬ ‫م‬‫ث‬
‫دائرية‬ ‫حلقة‬ ‫انها‬ ‫حيث‬ ‫اﻻولى‬ ‫العقدة‬ ‫الى‬ ‫سنعود‬ ‫فإننا‬ ‫اﻻخيرة‬ ‫العقدة‬ ‫الى‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|4–‫المتصلة‬ ‫القوائم‬ ‫انواع‬|Circular Linked List
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|4–‫المتصلة‬ ‫القوائم‬ ‫انواع‬|Two way Linked List
3-4‫اﻹتجاهين‬ ‫ذات‬ ‫القائمة‬Two way Linked List‫او‬double linked list
‫هي‬‫قائمة‬‫ذات‬‫مؤشرين‬‫يؤشر‬‫إحداهما‬‫إلي‬‫العقدة‬‫السابقة‬‫في‬‫حين‬‫يؤشر‬‫اﻵخر‬‫إلى‬‫العقدة‬‫التالية‬‫في‬‫القائ‬‫مة‬‫وأحد‬
‫مؤشر‬‫ي‬‫العقدة‬‫اﻹخيرة‬‫يؤشر‬‫إلي‬‫ﻻشيء‬null
‫في‬‫المثال‬‫السابق‬‫يمكن‬‫للرحلة‬‫أن‬‫ترجع‬‫الى‬‫نقطة‬‫سابقة‬‫أو‬‫ان‬‫تواصل‬‫مسي‬‫رها‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫القائمة‬ ‫الى‬ ‫اﻹضافة‬
‫هناك‬3‫حاﻻت‬‫لﻺضافة‬‫الى‬‫القائمة‬:
•‫إضافة‬‫عقدة‬‫جديدة‬‫في‬‫بداية‬‫القائمة‬
•‫إضافة‬‫عقدة‬‫جديدة‬‫في‬‫نهاية‬‫القائمة‬
•‫إضافة‬‫عقدة‬‫جديدة‬‫بين‬‫عقدتين‬‫في‬‫القائمة‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|
‫الخطوات‬:‫الخوارزمية‬
1‫ـ‬‫القائمة‬‫يجب‬‫ان‬‫تكون‬‫موجودة‬
2‫ـ‬‫عقدة‬‫جديدة‬‫تشير‬‫الى‬null
‫إذا‬‫كانت‬head‫تؤشر‬‫الى‬null
‫إجعل‬head‫يؤشر‬‫الى‬‫العقدة‬‫الجديدة‬.
‫وإﻻ‬
‫إجعل‬temp‫يؤشر‬‫الى‬head
‫إجعل‬‫مؤشر‬Head‫يشير‬‫الى‬‫العقدة‬‫الجديدة‬
‫إجعل‬‫مؤشر‬‫يؤشر‬‫الى‬‫العقدة‬‫التالية‬
‫القائمة‬ ‫بداية‬ ‫في‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫القائمة‬ ‫بداية‬ ‫في‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬
B C
A
D
HEAD
NULL
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫القائمة‬ ‫بداية‬ ‫في‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬
start
‫بياناتها‬ ‫إضافة‬ ‫و‬ ‫جديدة‬ ‫عقدة‬ ‫إنشاء‬
New_node
If(head =
null
Head = New_node
end
YES
New_node.next = head
head = new_node
NO
‫ﻻ‬ ‫او‬ ‫فارغ‬ ‫القائمة‬ ‫راس‬ ‫هل‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|
‫الخطوات‬:
1‫ـ‬‫القائمة‬‫يجب‬‫ان‬‫تكون‬‫موجودة‬‫و‬‫تحتوي‬‫على‬‫اكثر‬‫من‬‫عقدة‬
2‫ـ‬‫العقدة‬‫الجديدة‬‫تشير‬‫الى‬null‫ﻻ‬‫شيء‬
3‫ـ‬‫إذا‬‫كان‬first‫يشير‬‫الى‬null)first‫عبارة‬‫عن‬‫مؤشر‬‫مؤقت‬‫لخزن‬‫قيمة‬‫المؤشرات‬‫المطلوبة‬‫لفترة‬(
4‫ـ‬‫إجعل‬first‫يشير‬‫الى‬‫العقدة‬‫الجديدة‬
5‫ـ‬‫و‬‫إﻻ‬
6‫ـ‬‫ابحث‬‫عن‬‫اخر‬‫عقدة‬
7‫ـ‬‫إجعل‬‫مؤشر‬‫آخر‬‫عقدة‬‫يشير‬‫الى‬‫العقدة‬‫الجديدة‬
8‫ـ‬‫ﻻ‬‫يوجد‬‫مخرجات‬)‫ﻻننا‬‫فقط‬‫انشانا‬‫العقدة‬‫و‬‫لم‬‫نطلب‬‫عرضها‬(
10‫ـ‬‫تم‬‫إضافة‬‫عقدة‬‫جديدة‬
‫القائمة‬ ‫نهاية‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|
A B
F
E
HEAD
NULL
‫القائمة‬ ‫نهاية‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫القائمة‬ ‫نهاية‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬
start
‫جديدة‬ ‫عقدة‬ ‫إنشاء‬)new_node(‫بياناتها‬ ‫إدخال‬ ‫و‬
Node new_node = new node(data);
new_node.next – null;
If(list.head
=null)
List.head=new_node
last.next !=null
Last.next=new_node
Last = last.next
end
YESNO
YES
NO
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫القائمة‬ ‫نهاية‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|
‫الخطوات‬:‫إضافة‬‫عقدة‬‫جديدة‬‫بين‬‫عقدتين‬
1‫ـ‬‫القائمة‬‫يجب‬‫ان‬‫تكون‬‫موجودة‬‫و‬‫تحتوي‬‫على‬‫اكثر‬‫من‬‫عقدة‬
2‫ـ‬‫العقدة‬‫الجديدة‬‫تشير‬‫الى‬null‫ﻻ‬‫شيء‬
3‫ـ‬‫إذا‬‫كان‬first‫يشير‬‫الى‬null)‫يعني‬‫ان‬‫العقدة‬‫السابقة‬‫غير‬‫موجودة‬(
4‫ـ‬‫إطبع‬error
5‫ـ‬‫و‬‫إﻻ‬else
6‫ـ‬‫إبحث‬‫عن‬‫العقدة‬‫السابقة‬
7‫ـ‬‫إجعل‬first‫يؤشر‬‫الى‬‫العقدة‬‫الجديد‬.
8‫ـ‬‫إجعل‬‫مؤشر‬‫العقدة‬‫الجديدة‬‫يشير‬‫الى‬‫العقدة‬‫الﻼحقة‬
9‫ـ‬‫ﻻ‬‫يوجد‬‫مخرجات‬)‫حيث‬‫اننا‬‫فقط‬‫انشأنا‬‫عقدة‬‫جديدة‬‫ولم‬‫نعرض‬‫محتوياتها‬(
10‫ـ‬‫تم‬‫إضافة‬‫عقدة‬‫جديدة‬
‫عقدت‬ ‫بين‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬‫ين‬
TAIZ A
B
C IBB
HEAD NULL
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫عقدت‬ ‫بين‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬‫ين‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫المتصلة‬ ‫القائمة‬ ‫من‬ ‫الحذف‬ ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫المتصلة‬ ‫القائمة‬ ‫من‬ ‫الحذف‬
‫هناك‬3‫حاﻻت‬‫للحذف‬‫الى‬‫القائمة‬:
•‫حذف‬‫عقدة‬‫من‬‫بداية‬‫القائمة‬
•‫حذف‬‫عقدة‬‫من‬‫نهاية‬‫القائمة‬
•‫حذف‬‫عقدة‬‫بين‬‫عقدتين‬‫في‬‫القائمة‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|
‫الخطوات‬:‫الخوارزمية‬
1‫ـ‬‫القائمة‬‫يجب‬‫ان‬‫تكون‬‫موجودة‬
2‫ـ‬‫حدد‬‫العقدة‬‫المراد‬‫حذفها‬‫طالما‬‫ان‬‫العقدة‬‫المراد‬‫حذفها‬‫في‬‫اول‬‫القائمة‬‫فإننا‬‫نجعل‬‫المؤشر‬head‫يشير‬‫الى‬‫العقدة‬
‫الجديدة‬.
3‫ـ‬‫إجعل‬‫مؤشر‬Head‫يشير‬‫الى‬‫العقدة‬‫التي‬‫تلي‬‫العقدة‬‫المراد‬‫حذفها‬
‫بداية‬ ‫من‬ ‫عقدة‬ ‫حذف‬‫القائمة‬
B CA D
HEAD
NULL
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫بداية‬ ‫من‬ ‫عقدة‬ ‫حذف‬‫القائمة‬
‫حذفها‬ ‫نريد‬ ‫التي‬ ‫العقدة‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|
‫الخطوات‬:‫الخوارزمية‬
1‫ـ‬‫القائمة‬‫يجب‬‫ان‬‫تكون‬‫موجودة‬
2‫ـ‬‫حدد‬‫العقدة‬‫المراد‬‫حذفها‬‫طالما‬‫ان‬‫العقدة‬‫المراد‬‫حذفها‬‫في‬‫أخر‬‫القائمة‬‫فإن‬‫مؤشرها‬‫يشير‬‫الى‬null
3‫ـ‬‫إجعل‬‫مؤشر‬‫العقدة‬‫التي‬‫قبل‬‫مراد‬‫حذفها‬‫يشير‬‫الى‬null
4‫ـ‬‫إحذف‬‫العقدة‬‫المطلوبة‬
‫نهاية‬ ‫من‬ ‫عقدة‬ ‫حذف‬‫القائمة‬
B CA D
HEAD
NULL
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫من‬ ‫عقدة‬ ‫حذف‬‫نهاية‬‫القائمة‬
‫القائمة‬ ‫نهاية‬ ‫في‬ ‫حذفها‬ ‫نريد‬ ‫التي‬ ‫العقدة‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|
‫الخطوات‬:‫الخوارزمية‬
1‫ـ‬‫القائمة‬‫يجب‬‫ان‬‫تكون‬‫موجودة‬
2‫ـ‬‫حدد‬‫العقدة‬‫المراد‬‫حذفها‬
3‫ـ‬‫إجعل‬‫مؤشر‬‫العقدة‬‫التي‬‫قبل‬‫مراد‬‫حذفها‬‫يشير‬‫الى‬‫العقدة‬‫التي‬‫بعدها‬
4‫ـ‬‫إحذف‬‫العقدة‬‫المطلوبة‬
‫القائمة‬ ‫في‬ ‫عقدتين‬ ‫بين‬ ‫عقدة‬ ‫حذف‬‫القائمة‬ ‫في‬ ‫عقدتين‬ ‫بين‬ ‫عقدة‬ ‫حذف‬
‫القائمة‬ ‫وسط‬ ‫من‬ ‫حذفها‬ ‫تريد‬ ‫التي‬ ‫العقدة‬
B CA D
HEAD
NULL
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫القائمة‬ ‫في‬ ‫عقدتين‬ ‫بين‬ ‫عقدة‬ ‫حذف‬‫القائمة‬ ‫في‬ ‫عقدتين‬ ‫بين‬ ‫عقدة‬ ‫حذف‬
‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫المتصلة‬ ‫القائمة‬ ‫في‬ ‫عقدة‬ ‫عن‬ ‫البحث‬ ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫المتصلة‬ ‫القائمة‬ ‫في‬ ‫عقدة‬ ‫عن‬ ‫البحث‬
‫البحث‬‫عن‬‫عقدة‬‫في‬‫القائمة‬‫المتصلة‬search of the Node

More Related Content

What's hot

AWS設計ガイドラインで取り組むクラウドシフト
AWS設計ガイドラインで取り組むクラウドシフトAWS設計ガイドラインで取り組むクラウドシフト
AWS設計ガイドラインで取り組むクラウドシフトTrainocate Japan, Ltd.
 
المحاضرة الأولى في مصادر المعلومات
المحاضرة الأولى في مصادر المعلوماتالمحاضرة الأولى في مصادر المعلومات
المحاضرة الأولى في مصادر المعلوماتأ.د حسين عبد الباسط
 
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep DiveAmazon Web Services Japan
 
2019年度 若手技術者向け講座 実行計画
2019年度 若手技術者向け講座 実行計画2019年度 若手技術者向け講座 実行計画
2019年度 若手技術者向け講座 実行計画keki3
 
Context free langauges
Context free langaugesContext free langauges
Context free langaugessudhir sharma
 
トランザクションの並行処理制御
トランザクションの並行処理制御トランザクションの並行処理制御
トランザクションの並行処理制御Takashi Hoshino
 
Regular expressions-Theory of computation
Regular expressions-Theory of computationRegular expressions-Theory of computation
Regular expressions-Theory of computationBipul Roy Bpl
 
ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃slankdev
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかShogo Wakayama
 
Itamae-Serverspec入門
Itamae-Serverspec入門Itamae-Serverspec入門
Itamae-Serverspec入門辰徳 斎藤
 
並行実行制御の最適化手法
並行実行制御の最適化手法並行実行制御の最適化手法
並行実行制御の最適化手法Sho Nakazono
 
LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL HOME'SでのSolrの構成と運用の変遷LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL HOME'SでのSolrの構成と運用の変遷LIFULL Co., Ltd.
 
باور سبلاى
باور سبلاىباور سبلاى
باور سبلاىaya gamil
 
الخوارزميات و المخططات الإنسيابية
الخوارزميات و المخططات الإنسيابيةالخوارزميات و المخططات الإنسيابية
الخوارزميات و المخططات الإنسيابيةmohamednacim
 
Regular expression to NFA (Nondeterministic Finite Automata)
Regular expression to NFA (Nondeterministic Finite Automata)Regular expression to NFA (Nondeterministic Finite Automata)
Regular expression to NFA (Nondeterministic Finite Automata)Niloy Biswas
 
القوى تحرك الأشياء
القوى تحرك الأشياءالقوى تحرك الأشياء
القوى تحرك الأشياءnaila600
 
ψηφιακά ηλεκτρονικά κεφ 1
ψηφιακά ηλεκτρονικά κεφ 1ψηφιακά ηλεκτρονικά κεφ 1
ψηφιακά ηλεκτρονικά κεφ 1Theodoros Leftheroudis
 
Aws Batchを用いたサーバレスな競馬スクレイピング環境.pptx
Aws Batchを用いたサーバレスな競馬スクレイピング環境.pptxAws Batchを用いたサーバレスな競馬スクレイピング環境.pptx
Aws Batchを用いたサーバレスな競馬スクレイピング環境.pptxShichijoYuhi
 
負荷分散だけじゃないELBのメリット
負荷分散だけじゃないELBのメリット負荷分散だけじゃないELBのメリット
負荷分散だけじゃないELBのメリットTakashi Toyosaki
 

What's hot (20)

AWS設計ガイドラインで取り組むクラウドシフト
AWS設計ガイドラインで取り組むクラウドシフトAWS設計ガイドラインで取り組むクラウドシフト
AWS設計ガイドラインで取り組むクラウドシフト
 
المحاضرة الأولى في مصادر المعلومات
المحاضرة الأولى في مصادر المعلوماتالمحاضرة الأولى في مصادر المعلومات
المحاضرة الأولى في مصادر المعلومات
 
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
 
2019年度 若手技術者向け講座 実行計画
2019年度 若手技術者向け講座 実行計画2019年度 若手技術者向け講座 実行計画
2019年度 若手技術者向け講座 実行計画
 
Context free langauges
Context free langaugesContext free langauges
Context free langauges
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
トランザクションの並行処理制御
トランザクションの並行処理制御トランザクションの並行処理制御
トランザクションの並行処理制御
 
Regular expressions-Theory of computation
Regular expressions-Theory of computationRegular expressions-Theory of computation
Regular expressions-Theory of computation
 
ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
 
Itamae-Serverspec入門
Itamae-Serverspec入門Itamae-Serverspec入門
Itamae-Serverspec入門
 
並行実行制御の最適化手法
並行実行制御の最適化手法並行実行制御の最適化手法
並行実行制御の最適化手法
 
LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL HOME'SでのSolrの構成と運用の変遷LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL HOME'SでのSolrの構成と運用の変遷
 
باور سبلاى
باور سبلاىباور سبلاى
باور سبلاى
 
الخوارزميات و المخططات الإنسيابية
الخوارزميات و المخططات الإنسيابيةالخوارزميات و المخططات الإنسيابية
الخوارزميات و المخططات الإنسيابية
 
Regular expression to NFA (Nondeterministic Finite Automata)
Regular expression to NFA (Nondeterministic Finite Automata)Regular expression to NFA (Nondeterministic Finite Automata)
Regular expression to NFA (Nondeterministic Finite Automata)
 
القوى تحرك الأشياء
القوى تحرك الأشياءالقوى تحرك الأشياء
القوى تحرك الأشياء
 
ψηφιακά ηλεκτρονικά κεφ 1
ψηφιακά ηλεκτρονικά κεφ 1ψηφιακά ηλεκτρονικά κεφ 1
ψηφιακά ηλεκτρονικά κεφ 1
 
Aws Batchを用いたサーバレスな競馬スクレイピング環境.pptx
Aws Batchを用いたサーバレスな競馬スクレイピング環境.pptxAws Batchを用いたサーバレスな競馬スクレイピング環境.pptx
Aws Batchを用いたサーバレスな競馬スクレイピング環境.pptx
 
負荷分散だけじゃないELBのメリット
負荷分散だけじゃないELBのメリット負荷分散だけじゃないELBのメリット
負荷分散だけじゃないELBのメリット
 

Similar to Linked list

Similar to Linked list (6)

circular linked list
circular linked listcircular linked list
circular linked list
 
6 arrays
6 arrays6 arrays
6 arrays
 
تصنيف البيانات وتبويبها مبادئ الاحصاء
تصنيف البيانات وتبويبها  مبادئ الاحصاءتصنيف البيانات وتبويبها  مبادئ الاحصاء
تصنيف البيانات وتبويبها مبادئ الاحصاء
 
DOUBLE LINKED LIST
DOUBLE LINKED LISTDOUBLE LINKED LIST
DOUBLE LINKED LIST
 
introduction to ds 2-2019 -double linked list
introduction to ds 2-2019 -double linked listintroduction to ds 2-2019 -double linked list
introduction to ds 2-2019 -double linked list
 
مصفوفه
مصفوفهمصفوفه
مصفوفه
 

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
 
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
 
introduction to binary search trees
introduction to binary search treesintroduction to binary search trees
introduction to binary search trees
 

Linked list

  • 2. •‫مـقــدمــــة‬ introduction •‫تمهيد‬ .1‫المتصلة‬ ‫القوائم‬ ‫مفهوم‬ .2‫المتصلة‬ ‫القوائم‬ ‫تعريف‬ .3‫البيانات‬ ‫تمثيل‬ .1‫المتسلسلة‬ ‫القائمة‬ .2‫المتصلة‬ ‫القوائم‬ .3‫العقدة‬ .4‫البيانات‬ ‫حقل‬ .5‫ربط‬ ‫حقل‬)‫المؤشر‬( .4‫إضافة‬‫في‬ ‫جديدة‬ ‫عقدة‬ ‫القائمة‬ ‫بداية‬ .5‫بين‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬ ‫عقدتين‬ .6‫عقدة‬ ‫عن‬ ‫البحث‬ .7‫الحذف‬ .8‫القائمة‬ ‫طول‬ ‫إيجاد‬ .9‫القائمة‬ ‫عناصر‬ ‫عرض‬ .7‫الخﻼصة‬ .8‫اسئلة‬ .4‫المتصلة‬ ‫القوائم‬ ‫أنواع‬ .4‫اﻹتجاه‬ ‫احادية‬ ‫القائمة‬ .5‫الدائرية‬ ‫القائمة‬ .6‫اﻹتجاهين‬ ‫ذات‬ ‫القائمة‬ .7‫الراس‬ ‫ذات‬ ‫القائمة‬ .8‫المعممة‬ ‫القائمة‬ .5‫إنشاء‬‫المتصل‬ ‫للقائمة‬ ‫فصيلة‬‫ة‬ .6‫اﻷعضاء‬ ‫الدوال‬ ‫تعريف‬ .1‫المشيد‬ .2‫اﻹضافة‬ .3‫في‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬ ‫القائمة‬ ‫نهاية‬
  • 3. ‫الذاكرة‬ ‫شكل‬ ‫هذا‬ ‫ان‬ ‫نفرض‬ ‫متغير‬ ‫تعريف‬ ‫حالة‬ ‫مصفوفة‬ ‫تعريف‬ ‫حالة‬ ‫متصلة‬ ‫قائمة‬ ‫تعريف‬ ‫حالة‬
  • 4. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list ‫مصف‬ ‫في‬ ‫جديد‬ ‫عنصر‬ ‫إضافة‬ ‫عملية‬ ‫مثل‬ ‫العيوب‬ ‫بعض‬ ‫على‬ ‫تحتوي‬ ‫المصفوفات‬ ‫ﻻن‬ ً‫ا‬‫نظر‬‫فإننا‬ ‫وفة‬ ‫الى‬ ‫يؤدي‬ ‫هذا‬ ‫و‬ ‫العناصر‬ ‫ترتيب‬ ‫إعادة‬ ‫الى‬ ‫بحاجة‬: •‫التشغيل‬ ‫وقت‬ ‫زيادة‬)runtime( •‫للذاكرة‬ ‫لمساحة‬ ‫الصحيح‬ ‫غير‬ ‫اﻹستهﻼك‬ ‫او‬ ‫إهدار‬ ‫زيادة‬ ‫ميزاتها‬ ‫من‬ ‫ان‬ ‫حيث‬ ‫المتصلة‬ ‫القوائم‬ ‫دور‬ ‫يأتي‬ ‫هنا‬: •‫التوسع‬ ‫قابلية‬‫التشغيل‬ ‫اثناء‬ ‫التقلص‬ ‫و‬RUN‫القائمة‬ ‫في‬ ‫الموجودة‬ ‫العناصر‬ ‫حسب‬ •‫القائمة‬ ‫عناصر‬ ‫وسط‬ ‫عنصر‬ ‫إدراج‬ ‫قابلية‬)‫الترتيب‬ ‫آلية‬.(
  • 5. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|2–‫المتصلة‬ ‫القوائمة‬ ‫تعريف‬ ‫المتصلة‬ ‫القوائم‬: ‫كل‬ ‫يسمى‬ ‫العناصر‬ ‫مـن‬ ‫مجـمـوعة‬ ‫مـن‬ ‫مـؤلـفـة‬ ‫بـيـانات‬ ‫هـيـاكـل‬ ‫هي‬ ‫بـعـقـدة‬ ‫منها‬ ‫عنصر‬)NODE(‫حقلين‬ ‫أو‬ ‫جزئين‬ ‫من‬ ‫عقدة‬ ‫كل‬ ‫تتألف‬ ‫و‬: •‫اليبانات‬ ‫حقل‬ ‫او‬ ‫جزء‬)DATA( •‫التالية‬ ‫العقدة‬ ‫الى‬ ‫يشير‬ ‫أكثر‬ ‫المؤشرأو‬ ‫حقل‬ ‫أو‬ ‫جزء‬ )POINTER(
  • 6. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|2–‫المتصلة‬ ‫القوائمة‬ ‫تعريف‬|‫مكوناتها‬ ‫و‬ ‫الواحدة‬ ‫العقدة‬ ‫شكل‬ 2000 ‫الذاكرة‬ ‫في‬ ‫العقدة‬ ‫هذه‬ ‫عنوان‬ ‫ان‬ ‫نفرض‬ 1000 ‫متغير‬ ‫تعريف‬ ‫عند‬ ‫المثال‬ ‫سبيل‬ ‫على‬int a =10 ‫التالية‬ ‫العقدة‬ ‫عنوان‬ ‫المؤشر‬ ‫و‬ ‫البيانات‬ ‫بجزئيها‬ ‫العقدة‬ ‫شكل‬ 10‫قيمة‬ ‫هي‬a 2000‫مؤشر‬ ‫هي‬ ‫التالية‬ ‫العقدة‬ ‫لعنوان‬
  • 7. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|‫عقد‬ ‫عدة‬ ‫من‬ ‫المكونة‬ ‫المتصلة‬ ‫القائمة‬ ‫شكل‬ TAIZ A B C IBB HEAD NULL HEAD‫القائمة‬ ‫راس‬ ‫الى‬ ‫يشير‬ ‫مؤشر‬ ‫هو‬ ‫القائمة‬ ‫راس‬ ‫هي‬ ‫القائمة‬ ‫في‬ ‫عقدة‬ ‫اول‬ ‫تعتبر‬ ‫و‬ NULL‫القائمة‬ ‫في‬ ‫عنصر‬ ‫اخر‬ ‫مؤشر‬ ‫من‬ ‫إليه‬ ‫يشار‬ ‫و‬ ‫القائمة‬ ‫نهاية‬ ‫الى‬ ‫يشير‬
  • 8. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|3–‫البيانات‬ ‫تمثيل‬|1-3|‫المتسلسلة‬ ‫القائمة‬ ‫القوائم‬ ‫من‬ ‫شكلين‬ ‫في‬ ‫البيانات‬ ‫تمثل‬ ‫يتم‬)‫المتسلسلة‬ ‫القوائم‬(‫و‬)‫المتص‬ ‫القوائم‬‫لة‬( ‫المتسلسلة‬ ‫القوائم‬: •‫عليها‬ ‫مثال‬ ‫خير‬ ‫متفرقة‬ ‫ذاكرة‬ ‫مساحات‬ ‫او‬ ‫مسافات‬ ‫بدون‬ ‫متتالية‬ ‫عناصرها‬ ‫التي‬ ‫هي‬‫هي‬ ‫المصفوفات‬. •‫باﻵتي‬ ‫المتسلسلة‬ ‫القوائم‬ ‫تتميز‬ ‫و‬: •‫عشوائي‬ ‫بشكل‬ ‫الحذف‬ ‫و‬ ‫اﻹضافة‬ ‫إمكانية‬ •‫التشغيل‬ ‫قبل‬ ‫القائمة‬ ‫حجم‬ ‫تحديد‬ ‫إمكانية‬ •‫عمليتي‬ ‫في‬ ‫العناصر‬ ‫الى‬ ‫الوصول‬ ‫سرعة‬)‫اﻷختيار‬PEEK‫اﻷحﻼل‬ ‫او‬( TRAVERSING •‫العناصر‬ ‫ترتيب‬ ‫إعادة‬ ‫مشكلة‬ ‫عنهما‬ ‫تنشأ‬ ‫اﻹضافة‬ ‫و‬ ‫الحذف‬ ‫عمليتي‬ ‫في‬)‫الف‬‫رز‬ SORTING( •‫وق‬ ‫في‬ ‫زيادتها‬ ‫الى‬ ‫نحتاج‬ ‫حيث‬ ‫للمصفوفة‬ ‫المناسب‬ ‫الحجم‬ ‫تحديد‬ ‫مشكلة‬ ‫تظهر‬‫التشغيل‬ ‫ت‬ ‫الحاﻻت‬ ‫بعض‬ ‫في‬.
  • 9. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|3–‫البيانات‬ ‫تمثيل‬|2-3|‫المتصلة‬ ‫القائمة‬LINKED LISTS ‫المتصلة‬ ‫القوائم‬ ‫في‬ ‫المستخدمة‬ ‫المصطلحات‬ ‫اهم‬: ‫العقدة‬)NODE( •‫الم‬ ‫الذاكرة‬ ‫من‬ ‫مختلفة‬ ‫وحدات‬ ‫يمثل‬ ‫القائمة‬ ‫في‬ ‫عنصر‬ ‫أو‬ ‫سجل‬ ‫عن‬ ‫عبارة‬‫عنونة‬ ‫العق‬ ‫الى‬ ‫يشير‬ ً‫ا‬‫عنوان‬ ‫يحمل‬ ‫اخر‬ ‫جزء‬ ‫و‬ ‫للبيانات‬ ‫جزء‬ ‫على‬ ‫يحتوي‬ ‫و‬‫التالية‬ ‫دة‬ ‫القائمة‬ ‫في‬ •‫الذاكرة‬ ‫في‬ ً‫ا‬‫فيزيائي‬ ‫متﻼصقة‬ ‫العقد‬ ‫تكون‬ ‫ان‬ ‫بالضرورة‬ ‫ليس‬. ‫البيانات‬ ‫حقل‬ ‫او‬ ‫جزء‬)DATA( •‫وبياناته‬ ‫القائمة‬ ‫في‬ ‫الحقيقي‬ ‫العنصر‬ ‫يحمل‬ ‫الذي‬ ‫الجزء‬ ‫هو‬ ‫الربط‬ ‫حقل‬ ‫او‬ ‫جزء‬)POINTER( •‫ف‬ ‫التالي‬ ‫العنصر‬ ‫تخزين‬ ‫موقع‬ ‫تحدد‬ ‫معينة‬ ‫بيانية‬ ‫قيمة‬ ‫على‬ ‫يحتوي‬‫القائمة‬ ‫ي‬ •‫عشري‬ ‫الستة‬ ‫او‬ ‫الثنائي‬ ‫بالنظام‬ ‫مكتوبة‬ ‫تكون‬ ‫ما‬ ‫غالبا‬
  • 10. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|3–‫البيانات‬ ‫تمثيل‬|2-3|‫المتصلة‬ ‫القائمة‬LINKED LISTS ‫القعدة‬ ‫تعريف‬ ‫كيفية‬: Class LinkedList { Node head; // ‫القائمة‬ ‫راس‬ // ‫القيمة‬ ‫و‬ ‫جديدة‬ ‫نود‬ ‫ﻹنشاء‬ ‫تستخدم‬ ‫البناء‬ ‫دالة‬ // null ‫شيء‬ ‫ﻻ‬ ‫هي‬ ‫لها‬ ‫اﻹفتراضية‬ Class Node { int data; Node next; Node(int d) { data=d;} } }
  • 11. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|4–‫المتصلة‬ ‫القوائم‬ ‫انواع‬|one way linked list 1-4‫اﻹتجاه‬ ‫أحادية‬ ‫القائمة‬one way linked list‫أو‬single linked list ‫هي‬‫التي‬‫تشير‬‫كل‬‫عقدة‬‫فيها‬‫الى‬‫العقدة‬‫التي‬‫تليها‬‫و‬‫بالتالي‬‫تكون‬‫العناصر‬‫مرتبطة‬‫مع‬‫ب‬‫عضها‬ ‫البعض‬‫على‬‫شكل‬‫سﻼسل‬‫و‬‫يوجد‬‫مؤشر‬‫ﻷول‬‫عقدة‬‫في‬‫القائمة‬‫و‬‫العقدة‬‫اﻷخيرة‬‫تؤشر‬‫الى‬‫ﻻ‬‫شيء‬ null data data data data HEAD NULL
  • 12. ‫مثال‬:‫إذا‬‫كان‬‫لشركة‬‫الطيران‬‫اليمنية‬‫خط‬‫رحﻼت‬‫يبداء‬‫من‬‫تعز‬‫و‬‫ينتهي‬‫في‬‫المكﻼ‬‫بدون‬‫الع‬‫ودة‬. ‫مرورا‬‫بمدينة‬‫الحديدة‬‫و‬‫مدينة‬‫عدن‬. Taiz Hodeida Aden Almukala ‫الوصول‬‫الى‬‫عنصر‬‫يتم‬‫التحرك‬‫له‬‫من‬‫القيمة‬head‫و‬‫جعلها‬‫تشير‬‫الى‬‫العقدة‬‫اﻻولى‬‫في‬‫القائمة‬‫ثم‬ ‫اﻹنتقال‬‫الى‬‫العقدة‬‫التالية‬‫التي‬‫يؤشر‬‫إليها‬‫المؤشر‬‫و‬‫هكذا‬‫الى‬‫أن‬‫نصل‬‫الى‬‫العقدة‬‫المحدد‬‫ة‬. ‫فإذا‬‫اردنا‬‫التحرك‬‫الى‬‫العقدة‬Aden‫يجب‬‫ان‬‫نتحرك‬‫من‬Taiz‫ثم‬Hodeida‫ثم‬‫عدن‬‫بدون‬‫العودة‬ ‫للخلف‬ NULL ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|4–‫المتصلة‬ ‫القوائم‬ ‫انواع‬|one way linked list
  • 13. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|4–‫المتصلة‬ ‫القوائم‬ ‫انواع‬|Circular Linked List 2-4‫الدائرية‬ ‫القائمة‬Circular Linked List ‫هي‬‫قائمة‬‫بسيطة‬‫أو‬‫أحادية‬‫اﻻتجاه‬‫فيها‬‫العقدة‬‫اﻷخيرة‬‫تؤشر‬‫إلى‬‫العقدة‬‫اﻻ‬‫ولى‬ً‫ﻻ‬‫بد‬‫عن‬‫أن‬‫تؤشر‬‫إلى‬‫ﻻ‬‫ش‬‫يء‬null.
  • 14. ‫مثال‬:‫إذا‬‫كان‬‫لشركة‬‫الطيران‬‫اليمنية‬‫خط‬‫رحﻼت‬‫يبداء‬‫من‬‫تعز‬‫و‬‫ينتهي‬‫في‬‫المكﻼ‬‫و‬‫العودة‬‫ت‬‫كون‬ ‫لتعز‬. Taiz Hodeida Aden Almukala ‫القيمة‬ ‫من‬ ‫له‬ ‫التحرك‬ ‫يتم‬ ‫عنصر‬ ‫الى‬ ‫الوصول‬head‫م‬‫ث‬ ‫ة‬‫القائم‬ ‫ي‬‫ف‬ ‫ى‬‫اﻻول‬ ‫العقدة‬ ‫الى‬ ‫تشير‬ ‫جعلها‬ ‫و‬ ‫المحدد‬ ‫العقدة‬ ‫الى‬ ‫نصل‬ ‫أن‬ ‫الى‬ ‫هكذا‬ ‫و‬ ‫المؤشر‬ ‫إليها‬ ‫يؤشر‬ ‫التي‬ ‫التالية‬ ‫العقدة‬ ‫الى‬ ‫اﻹنتقال‬‫ة‬. ‫دة‬‫العق‬ ‫الى‬ ‫التحرك‬ ‫اردنا‬ ‫فإذا‬Aden‫ن‬‫م‬ ‫رك‬‫نتح‬ ‫ان‬ ‫ب‬‫يج‬Taiz‫م‬‫ث‬Hodeida‫لنا‬‫وص‬ ‫إذا‬ ‫و‬ ‫دن‬‫ع‬ ‫م‬‫ث‬ ‫دائرية‬ ‫حلقة‬ ‫انها‬ ‫حيث‬ ‫اﻻولى‬ ‫العقدة‬ ‫الى‬ ‫سنعود‬ ‫فإننا‬ ‫اﻻخيرة‬ ‫العقدة‬ ‫الى‬ ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|4–‫المتصلة‬ ‫القوائم‬ ‫انواع‬|Circular Linked List
  • 15. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|4–‫المتصلة‬ ‫القوائم‬ ‫انواع‬|Two way Linked List 3-4‫اﻹتجاهين‬ ‫ذات‬ ‫القائمة‬Two way Linked List‫او‬double linked list ‫هي‬‫قائمة‬‫ذات‬‫مؤشرين‬‫يؤشر‬‫إحداهما‬‫إلي‬‫العقدة‬‫السابقة‬‫في‬‫حين‬‫يؤشر‬‫اﻵخر‬‫إلى‬‫العقدة‬‫التالية‬‫في‬‫القائ‬‫مة‬‫وأحد‬ ‫مؤشر‬‫ي‬‫العقدة‬‫اﻹخيرة‬‫يؤشر‬‫إلي‬‫ﻻشيء‬null ‫في‬‫المثال‬‫السابق‬‫يمكن‬‫للرحلة‬‫أن‬‫ترجع‬‫الى‬‫نقطة‬‫سابقة‬‫أو‬‫ان‬‫تواصل‬‫مسي‬‫رها‬
  • 16. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫القائمة‬ ‫الى‬ ‫اﻹضافة‬ ‫هناك‬3‫حاﻻت‬‫لﻺضافة‬‫الى‬‫القائمة‬: •‫إضافة‬‫عقدة‬‫جديدة‬‫في‬‫بداية‬‫القائمة‬ •‫إضافة‬‫عقدة‬‫جديدة‬‫في‬‫نهاية‬‫القائمة‬ •‫إضافة‬‫عقدة‬‫جديدة‬‫بين‬‫عقدتين‬‫في‬‫القائمة‬
  • 17. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫الخطوات‬:‫الخوارزمية‬ 1‫ـ‬‫القائمة‬‫يجب‬‫ان‬‫تكون‬‫موجودة‬ 2‫ـ‬‫عقدة‬‫جديدة‬‫تشير‬‫الى‬null ‫إذا‬‫كانت‬head‫تؤشر‬‫الى‬null ‫إجعل‬head‫يؤشر‬‫الى‬‫العقدة‬‫الجديدة‬. ‫وإﻻ‬ ‫إجعل‬temp‫يؤشر‬‫الى‬head ‫إجعل‬‫مؤشر‬Head‫يشير‬‫الى‬‫العقدة‬‫الجديدة‬ ‫إجعل‬‫مؤشر‬‫يؤشر‬‫الى‬‫العقدة‬‫التالية‬ ‫القائمة‬ ‫بداية‬ ‫في‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬
  • 18. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫القائمة‬ ‫بداية‬ ‫في‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬ B C A D HEAD NULL
  • 19. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫القائمة‬ ‫بداية‬ ‫في‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬ start ‫بياناتها‬ ‫إضافة‬ ‫و‬ ‫جديدة‬ ‫عقدة‬ ‫إنشاء‬ New_node If(head = null Head = New_node end YES New_node.next = head head = new_node NO ‫ﻻ‬ ‫او‬ ‫فارغ‬ ‫القائمة‬ ‫راس‬ ‫هل‬
  • 20. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫الخطوات‬: 1‫ـ‬‫القائمة‬‫يجب‬‫ان‬‫تكون‬‫موجودة‬‫و‬‫تحتوي‬‫على‬‫اكثر‬‫من‬‫عقدة‬ 2‫ـ‬‫العقدة‬‫الجديدة‬‫تشير‬‫الى‬null‫ﻻ‬‫شيء‬ 3‫ـ‬‫إذا‬‫كان‬first‫يشير‬‫الى‬null)first‫عبارة‬‫عن‬‫مؤشر‬‫مؤقت‬‫لخزن‬‫قيمة‬‫المؤشرات‬‫المطلوبة‬‫لفترة‬( 4‫ـ‬‫إجعل‬first‫يشير‬‫الى‬‫العقدة‬‫الجديدة‬ 5‫ـ‬‫و‬‫إﻻ‬ 6‫ـ‬‫ابحث‬‫عن‬‫اخر‬‫عقدة‬ 7‫ـ‬‫إجعل‬‫مؤشر‬‫آخر‬‫عقدة‬‫يشير‬‫الى‬‫العقدة‬‫الجديدة‬ 8‫ـ‬‫ﻻ‬‫يوجد‬‫مخرجات‬)‫ﻻننا‬‫فقط‬‫انشانا‬‫العقدة‬‫و‬‫لم‬‫نطلب‬‫عرضها‬( 10‫ـ‬‫تم‬‫إضافة‬‫عقدة‬‫جديدة‬ ‫القائمة‬ ‫نهاية‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬
  • 21. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| A B F E HEAD NULL ‫القائمة‬ ‫نهاية‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬
  • 22. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫القائمة‬ ‫نهاية‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬ start ‫جديدة‬ ‫عقدة‬ ‫إنشاء‬)new_node(‫بياناتها‬ ‫إدخال‬ ‫و‬ Node new_node = new node(data); new_node.next – null; If(list.head =null) List.head=new_node last.next !=null Last.next=new_node Last = last.next end YESNO YES NO
  • 23. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫القائمة‬ ‫نهاية‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬
  • 24. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫الخطوات‬:‫إضافة‬‫عقدة‬‫جديدة‬‫بين‬‫عقدتين‬ 1‫ـ‬‫القائمة‬‫يجب‬‫ان‬‫تكون‬‫موجودة‬‫و‬‫تحتوي‬‫على‬‫اكثر‬‫من‬‫عقدة‬ 2‫ـ‬‫العقدة‬‫الجديدة‬‫تشير‬‫الى‬null‫ﻻ‬‫شيء‬ 3‫ـ‬‫إذا‬‫كان‬first‫يشير‬‫الى‬null)‫يعني‬‫ان‬‫العقدة‬‫السابقة‬‫غير‬‫موجودة‬( 4‫ـ‬‫إطبع‬error 5‫ـ‬‫و‬‫إﻻ‬else 6‫ـ‬‫إبحث‬‫عن‬‫العقدة‬‫السابقة‬ 7‫ـ‬‫إجعل‬first‫يؤشر‬‫الى‬‫العقدة‬‫الجديد‬. 8‫ـ‬‫إجعل‬‫مؤشر‬‫العقدة‬‫الجديدة‬‫يشير‬‫الى‬‫العقدة‬‫الﻼحقة‬ 9‫ـ‬‫ﻻ‬‫يوجد‬‫مخرجات‬)‫حيث‬‫اننا‬‫فقط‬‫انشأنا‬‫عقدة‬‫جديدة‬‫ولم‬‫نعرض‬‫محتوياتها‬( 10‫ـ‬‫تم‬‫إضافة‬‫عقدة‬‫جديدة‬ ‫عقدت‬ ‫بين‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬‫ين‬
  • 25. TAIZ A B C IBB HEAD NULL ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫عقدت‬ ‫بين‬ ‫جديدة‬ ‫عقدة‬ ‫إضافة‬‫ين‬
  • 26. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫المتصلة‬ ‫القائمة‬ ‫من‬ ‫الحذف‬ ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫المتصلة‬ ‫القائمة‬ ‫من‬ ‫الحذف‬ ‫هناك‬3‫حاﻻت‬‫للحذف‬‫الى‬‫القائمة‬: •‫حذف‬‫عقدة‬‫من‬‫بداية‬‫القائمة‬ •‫حذف‬‫عقدة‬‫من‬‫نهاية‬‫القائمة‬ •‫حذف‬‫عقدة‬‫بين‬‫عقدتين‬‫في‬‫القائمة‬
  • 27. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫الخطوات‬:‫الخوارزمية‬ 1‫ـ‬‫القائمة‬‫يجب‬‫ان‬‫تكون‬‫موجودة‬ 2‫ـ‬‫حدد‬‫العقدة‬‫المراد‬‫حذفها‬‫طالما‬‫ان‬‫العقدة‬‫المراد‬‫حذفها‬‫في‬‫اول‬‫القائمة‬‫فإننا‬‫نجعل‬‫المؤشر‬head‫يشير‬‫الى‬‫العقدة‬ ‫الجديدة‬. 3‫ـ‬‫إجعل‬‫مؤشر‬Head‫يشير‬‫الى‬‫العقدة‬‫التي‬‫تلي‬‫العقدة‬‫المراد‬‫حذفها‬ ‫بداية‬ ‫من‬ ‫عقدة‬ ‫حذف‬‫القائمة‬
  • 28. B CA D HEAD NULL ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫بداية‬ ‫من‬ ‫عقدة‬ ‫حذف‬‫القائمة‬ ‫حذفها‬ ‫نريد‬ ‫التي‬ ‫العقدة‬
  • 29. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫الخطوات‬:‫الخوارزمية‬ 1‫ـ‬‫القائمة‬‫يجب‬‫ان‬‫تكون‬‫موجودة‬ 2‫ـ‬‫حدد‬‫العقدة‬‫المراد‬‫حذفها‬‫طالما‬‫ان‬‫العقدة‬‫المراد‬‫حذفها‬‫في‬‫أخر‬‫القائمة‬‫فإن‬‫مؤشرها‬‫يشير‬‫الى‬null 3‫ـ‬‫إجعل‬‫مؤشر‬‫العقدة‬‫التي‬‫قبل‬‫مراد‬‫حذفها‬‫يشير‬‫الى‬null 4‫ـ‬‫إحذف‬‫العقدة‬‫المطلوبة‬ ‫نهاية‬ ‫من‬ ‫عقدة‬ ‫حذف‬‫القائمة‬
  • 30. B CA D HEAD NULL ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫من‬ ‫عقدة‬ ‫حذف‬‫نهاية‬‫القائمة‬ ‫القائمة‬ ‫نهاية‬ ‫في‬ ‫حذفها‬ ‫نريد‬ ‫التي‬ ‫العقدة‬
  • 31. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫الخطوات‬:‫الخوارزمية‬ 1‫ـ‬‫القائمة‬‫يجب‬‫ان‬‫تكون‬‫موجودة‬ 2‫ـ‬‫حدد‬‫العقدة‬‫المراد‬‫حذفها‬ 3‫ـ‬‫إجعل‬‫مؤشر‬‫العقدة‬‫التي‬‫قبل‬‫مراد‬‫حذفها‬‫يشير‬‫الى‬‫العقدة‬‫التي‬‫بعدها‬ 4‫ـ‬‫إحذف‬‫العقدة‬‫المطلوبة‬ ‫القائمة‬ ‫في‬ ‫عقدتين‬ ‫بين‬ ‫عقدة‬ ‫حذف‬‫القائمة‬ ‫في‬ ‫عقدتين‬ ‫بين‬ ‫عقدة‬ ‫حذف‬
  • 32. ‫القائمة‬ ‫وسط‬ ‫من‬ ‫حذفها‬ ‫تريد‬ ‫التي‬ ‫العقدة‬ B CA D HEAD NULL ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬| ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫القائمة‬ ‫في‬ ‫عقدتين‬ ‫بين‬ ‫عقدة‬ ‫حذف‬‫القائمة‬ ‫في‬ ‫عقدتين‬ ‫بين‬ ‫عقدة‬ ‫حذف‬
  • 33. ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫المتصلة‬ ‫القائمة‬ ‫في‬ ‫عقدة‬ ‫عن‬ ‫البحث‬ ‫البيانات‬ ‫هياكل‬ ‫أنواع‬|linked list|5–‫المتصلة‬ ‫القوائم‬ ‫إنشاء‬|‫المتصلة‬ ‫القائمة‬ ‫في‬ ‫عقدة‬ ‫عن‬ ‫البحث‬ ‫البحث‬‫عن‬‫عقدة‬‫في‬‫القائمة‬‫المتصلة‬search of the Node