الفصل الرابع عشر


هياكل البيانات

 

14-1 مقدمة
14-2 تعريف هياكل البيانات
14-3 هياكل البيانات الخطية
  14-3-1 المصفوفة
 

14-3-2 السلاسل الهجائية والرقمية

  14-3-3 السجلات
  14-3-4 القوائم
  14-3-5 الكومة
  14-3-6  قوائم الانتظار
14-4 هياكل البيانات الشجرية
14-5 هياكل البيانات الشبكية



مقدمة في الحاسوب

14-1 مقدمة:

  تستخدم كلمة هيكل وهيكلية في مجالات عديدة لتوصيف أغراض كبيرة تم بنائها من وحدات بنائية صغيرة بأسلوب تكراري، وهياكل البيانات هي كتلة منطقية نجمت عن تكرارية عناصر البيانات وفق ترتيب محدد وعلاقات، وتعتبر هياكل البيانات مرحلة وسيطة بين الملفات على وسائط التخزين وبين برامج التطبيقات فيما يوضحه الشكل 14-1.
 

أضغط لتكبير الشكل

الشكل 14-1

14-2 تعريف هياكل البيانات:

 

تعرف على أنها بناء منطقي كبير من عناصر البيانات أو مجموعات منظمة من عناصر البيانات تعامل كوحدة واحدة، مثل المصفوفات أو السجلات.
ويمكن أن تعرف أيضاً أنها مجموعة من عناصر البيانات المنظمة وفق أسلوب يوحي بكيفية تخزينها واسترجاعها كعناصر بيانات مستقلة.
والتعريف الأخير ليس على إطلاقه ففي استرجاع البيانات من جداول قواعد البيانات العلاقية لا يستطيع المستخدم
 غير المتخصص تحديد أسلوب الاسترجاع، لكن في بعض هياكل البيانات مثل المصفوفات يجب على المستخدم فهم طبيعة المصفوفة وكتابة البرامج اللازمة والمحققة لأهدافه مما يستدعي فهم هيكل البيانات ومناظرة الشكل المنطقي بالوضع التخزيني للبيانات داخل الذاكرة الأساسية.

أنواع هياكل البيانات:
تقسم هياكل البيانات إلى عدة أنواع يناظر كل منها أسلوباً خاصاً في تصميم البرامج والمعالجة الالكترونية ويمكن إدراجها تحت ثلاثة أنواع:

1. هياكل بيانات خطية
2. هياكل بيانات شجرية
3.هياكل بيانات شبكية

14-3 هياكل البيانات الخطية:

  أي ترص البيانات داخل الذاكرة على خط واحد وتشمل:
المصفوفة ARRAY.
سلسلة الحروف STRING (السلاسل(.
السجلات RECORDS والملفات (الجداول).
 القوائم LISTS.
 الكومةSTACK .
 قوائم الانتظارQUE .

14-3-1 المصفوفة:

 

سوف نتفهم طبيعة المصفوفة من المثال التالي، إذا كانت درجات مادة قواعد البيانات لفئة من الطلبة على النحو(45،  15 ،30 ،32 ،48 ،55 ،12) فإنه يمكن القول أن درجة الطالب الأول تساوي45 ، ودرجة الثاني 15والثالث30 وهكذا ،فإذا رمزنا لعنصر  البيانات بالرمز (ع) فإن(ع)=45 ،ع(2)=15، ع(3)=30، ع(7)=12 وهكذا، ويسمى الرقم إلى جوار (ع) بالرقم الدليل ويشير إلى رقم العنصر أي ترتيبه في ذات الفئة، فإذا اعتبرنا أن الرقم الدليل له قيمة عامة هي (1) فإنه يتيح التعامل المتكرر ومعرفة أي عنصر في فئة الدرجات بتغير قيمة(1). و رصد الدرجات على النحو السابق يسمى مصفوفة، واستخدام الرقم الدليل SUBSCRIPT يسمح بمعالجة ومعرفة كل عنصر من عناصرها على حده.

خصائص المصفوفة:
• تحتوي على عدد محدد من عناصر البيانات.
• تحتوي على نوع واحد من عناصر البيانات.
• ذات حيز ثابت لا يتغير ولا يتبدل في المصفوفة الواحدة.
•عندما يتم تخزين بيانات المصفوفة في ذاكرة الحاسب فإن هناك تناظر وتماثل بين شكل المصفوفة المنطقية (المكتوبة على الورق) وبين شكلها وهيئتها في ذاكرة الحاسب مما يساعد على إنشاء منطق برنامج يتعامل مع عناصرها باستخدام الرقم الدليل (1).
يتطلب تخزين المصفوفة في ذاكرة الحاسب وإجراء معالجة بياناتها عدة خطوات على النحو التالي:
 
  1. فتح مخازن في ذاكرة الحاسب للتخزين المؤقت للبيانات بأمر التخصيص LET كما في لغة بيسك وذلك وفق منطق البرامج الذي سيتعامل مع البيانات ويعيب هذه الطريقة البطيء واحتمالات الخطأ.
2. أو تخصيص مواقع متلاصقة في ذاكرة الحاسب لعناصر البيانات وهذه وظيفة تؤدى في كل لغات البرمجة بأمر ذاتي
FUNCTION BUILT IN مثل الأمر "الطول، الاسم DIM" كما في لغة بيسك مثل 100 ×DIM.
3. استخدام الرقم الدليل في الإشارة لعناصر البيانات المطلوب التعامل معها.
4. إذا تعامل البرنامج مع بعض عناصر البيانات فإن البرنامج لا يمكنه التعامل مع نفس العناصر مرة أخرى رغم بقاء البيانات في مواقع التخزين داخل الذاكرة وقد حلت لغة البيسك هذه المشكلة بالأمر
Restore مع أتاحت إعادة تسمية المتغيرات والتعامل معها على اعتبارها مدخلات جديدة.

المصفوفات ذات البعدين: إن معالجة المصفوفة الأحادية يوضح مدى التطابق بين المصفوفة المنطقية والأخرى المخزنة في ذاكرة الحاسب ويوضح كذلك ضرورة معرفة البرامج عنوان أول خلية تخزين داخل الذاكرة مما يساعد على تحديد باقي مواقع تخزين عناصر المصفوفة،  لكن هذه البساطة في معالجة المصفوفة ذات البعد الواحد ليس شرطاً في المصفوفات المتعددة التي تتركب من عدد من الأعمدة وعدد آخر من الصفوف مثل مصفوفة لنفس الطلبة لعدد من المواد الدراسية حيث يختلف الشكل المنطقي لها عن الشكل التخزيني فيما يوضحه الجدول.

اسم الطالب درجة المادة الأولى درجة المادة الثانية درجة المادة الثالثة
أحمد أحمد أحمد 15 20 13
سناء أحمد أحمد 18 12 16
زكي رمزي 14 10 18
رمزي 17 20 17
نجاة 10 15 14
هديل 16 17 10


فإذا كان العمود الأول من جهة اليسار يرصد درجات الطلبة في الكيمياء والذي يليه هي درجات الفيزياء
والعمود الأخير يمثل درجات الطلبة في الأحياء فإن مثل هذه المصفوفات تستدعي أن نتذكر ما يلي:

أن ذاكرة الحاسب ليست على هيئة جدول بل هي خلايا تخزين متراصة متجاورة على مستوى واحد.
•ضرورة برمجة المستويين س، ص على الورق داخل الذاكرة على مستوى واحد وواحد فقد.

وحتى يجري ذلك لأبد أن نتأكد أن حيز المصفوفة لن يتغير عند إجراء تحديث على البيانات بعدها يتم إدخال البيانات الخاصة بالصف الأول ثم الصف الثاني ثم الصف الثالث وهكذا على النحو الموضح في الشكل 14-2 مما يستدعي:

أضغط لتكبير الشكل

الشكل 14-2 الشكل داخل الذاكرة


1- التحديد الدقيق لعدد وحدات التخزين اللازمة للمصفوفة.
2- حجز مواقع التخزين في الذاكرة متلاصقة ما أمكن.
3- تخزين البيانات في الذاكرة صفاً صفاً.
4-
تحديد المداخل الصحيحة للمصفوفة.

 

14-3-2 السلاسل الهجائية والرقمية:

 

تسمى مجموعات الحروف الأبجدية أو الأبجدية الرقمية،  التي تعالج على الحاسب كوحدة واحدة سلسلة STRING.
أمثلة:
 (أحمد ذهب إلى المدرسة).
يرفت حصلت على الليسانس).
(+ أ ب 653 % س ص ع).
ولتمييز هذه السلاسل تفترض لغة البيزيك استخدام علامة الدولار$ في نهاية اسم المتغير المناظر لعنصر البيانات، كما تستخدم لغات البرمجة الأخرى أساليب مختلفة في هذا الشأن.
وقد يجري ضم هذه المسلسلات بعملية ضم
COONCATENATED  مثل:
(زواج)=
A$
".." =B$
(سعيد)=
C$
A$ +B$+C$
= (زواج ... سعيد).
وبهذا تعامل سلاسل الحروف باعتبارها مصفوفة ذات طول متغير شأنها شأن السجلات فيما يوضحه شكل
14-3 .

أضغط لتكبير الشكل

الشكل 14-3 سلسلة ذات طول ثابت

وقد تكون سلاسل الحروف ذات طول ثابت أو ذات طول متغير:
1. طول ثابت يعني أن طول السلسلة ثابت وتشغل حيز محدد من مواقع التخزين.
2. ذات طول متغير وتعني أن لكل سلسلة طول مختلف عن الأخرى وكلا النوعان يستخدما كثيراً في نظم المعلومات.

14-3-3 السجلات:

   تعتبر السجلات وحدة منطقية متكاملة تتركب من عدد من حقول البيانات المترابطة منطقياً وهي تشبه المصفوفة الأحادية وإن اختلفت عنها في عدة نواح أبرزها أن المصفوفات تضم عناصر بيانات ذات نوع واحد بينما تضم السجلات عناصر بيانات مختلفة وبذلك لا يمكن مصفوفة لاختزان سجلات بل تستخدم الجداول Tables أو الملفات في تخزينها.

14-3-4 القوائم:

 

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

وتختلف القوائم عن مسلسلة الحروف في أماكن التعامل مع عناصرها كلاً على حدة وليس كتلة واحدة مما يستدعي استخدام المؤشرات Pointers في إدارتها.

وتنقسم القوائم إلى نوعين:
1- قائمة ذات اتجاه واحد.
2-  قائمة دائرية ذات اتجاهين.

المؤشرات:
حتى نمهد للمؤشرات نسترجع الحقائق التالية:
أن كل عنصر بيان يخزن في موقع له عنوان.
أنه لاستعادة أي بيان يجب معرفة عنوانه.
• أن العنوان ـ هو الآخرـ يخزن في موقع آخر بالذاكرة يسمى المؤشر.
• تتم استعادة البيان بالوصول إلى عنوان البيان ومنه نصل إلى البيان.
مثال:
ناقش أساليب معالجة العبارة التالية:
(إيهاب لا يحب أكل الدجاج

1.  
يمكن اعتبارها هيئة مسلسلة أبجدية كما هي مسلسلة الحروف.
2.يمكن معالجتها على هيئة قائمة
List كل عنصر منطقي فيها يسمى DATUM ويتصل كل عنصر DATUM بالذي يليه بواسطة مؤشر POINTER نرمز له بسهم.
3. يعتبر عنصر البيان
DATUM والمؤشرPOINTER مكملان لبعضهما الآخر أو وحده واحدة هي وحدة بناء القوائم.

المعالجة على هيئة مسلسلة:
(إيهاب لا يحب أكل الدجاج )=
A$

المعالجة وفق نظام القوائم:

 


ونلحظ أن عنصر البيان (الدجاج) لا يصحبه مؤشر مما يعتبر إشارة نهاية القائمة، وبذلك لا يمكن الرجوع إلى بداية القائمة، وهذا يوضح لنا مفهوم القائمة ذات الاتجاه الواحد، أما إذا أدرج مؤشر مع عنصر بيان الدجاج يشير إلى موقع كلمة إيهاب فإنه يمكن العودة مرة أخرى في الاتجاه المضاد وينتج عن ذلك قائمة ذات اتجاهين (دائرية) الاتجاه.

أنواع القوائم واستخدامها:

القوائم المتصلة Linked List :
تستخدم المؤشرات في بناء نظم معلومات أفضل، فإذا افترضنا أن إحدى المكتبات العامة تستخدم نظام القوائم لرصد بيانات مقتنياتها وحتى ترتقي المكتبة بأدائها تم فرز قائمة المقتنيات أبجدياً حسب عنوان الكتاب، وهذا النوع من القوائم لا يتيح تجميع كل مؤلفات كاتب بذاته لأن كتبه موزعة أبجدياً على امتداد القائمة، مما يشكل صعوبة أمام المتردد على المكتبة إذا كان لا يعرف عن الكتاب سوى اسم مؤلفه.
ولحل مثل هذه المشكلة وسوها يتم إضافة خلية تخزين إضافية (بايت واحدة)من نوع المؤشرات من سجل الكتاب، يخزن بها عنوان الكتاب التالي لنفس المؤلف فيما يوضحه الشكل 14-4
ويطلق على هذا النوع من القوائم، القوائم المرتبطة أو المتصلة وهي تحقق رصد جميع عناصر أو سجلات البيانات المرتبطة منطقياً متى تم العثور على أول عنصر أو سجل.

أضغط لتكبير الشكل

الشكل 14-4


كما يمكن استخدام القوائم في الأعمال التجارية والإدارية على غرار مثال المكتبة فإذا فرضنا أن هناك شركة أدوات تجميل تبيع السلع عن طريق مندوبي المبيعات وكان الملف هو موضح بالجدول فيمكن إنشاء قوائم ومؤشرات تربط بين اسم مندوب البيع وعملائه مما يوفر حيز في الذاكرة ويرفع كفاءة الاسترجاع.


والوصول إلى البيانات ويمكن إجراء الربط بين عملاء كل مندوب بيع لزيادة مرونة النظام على النحو الموضح:




قوائم كثيفة DENSE LISTS :
وهي التي تضم جميع عناصر القائمة في مواقع تخزين متجاورة داخل الذاكرة، فيما يشبه مصفوفة أحادية ضخمة مما يشكل صعوبة في التعامل معها خصوصاً في عمليات الحذف والإضافة. فإذا فرضنا أن لدينا قائمة بعشرة أسماء ونريد حذف الاسم الأول فيجب بعد الحذف تحريك جميع الأسماء للأمام حيى يملئ الفراغ الذي نجم عن الحذف، أما إذا كان المطلوب إضافة اسم للقائمة فإن الإضافة تواجه عدة صعوبات منها التأكد من وجود مكان خال والثاني تحريك الأسماء للخلف.

العمليات على القوائم:
تسمح القوائم المتصلة بإجراء العمليات التالية عليها بمرونة ويسر:
1.      
إضافة عنصر بيان.
2.      
حذف عنصر بيان.
3.      
تحديد موقع عنصر بيان.
4.      
تحديد عنصر البيان التالي.
5.      
فرز القوائم وفق أي عنصر.
6.      
إنشاء قوائم خالية.
وترجع المرونة إلى أن القوائم المرتبطة لا تحتل مواقع متلامسة في داخل الذاكرة كما في المصفوفات أو القوائم الكثيفة، ويجري إعداد هذا النوع من القوائم بإضافة حقل تخزين جديد إلى كل سجل ـيعمل كمؤشرـ يشير إلى عنوان تخزين السجل اللاحق، وحتى يتم الوصول إلى القائمة ذاتها فإنه يتم تخزين عنوان أول سجل في القائمة في خلية تخزين ويسمى هذا الموقع مؤشر رأس القائمة أو مؤشر القائمة ويوضح الشكلان14-5  14-6 تلك المفاهيم.

أضغط لتكبير الشكل
الشكل 14-5

أضغط لتكبير الشكل
الشكل 14-6


وهنا يطرح سؤال كيف يعرف الحاسب نهاية القائمة أولا زال هناك المزيد من السجلات، ويحل هذا الإشكال تخصيص موقع ثنائي ضمن المؤشر فإذا كانت قيمة البت(واحد) تعنى لا زال هناك بيانات لاحقة، أما إذا كانت البت (صفر) دل على انتهاء القائمة فيما يوضحه الشكل 14-7.

أضغط لتكبير الشكل
الشكل 14-7

الإضافة و الحذف من القوائم:يمكن حذف أي بيان من القوائم بتعديل قيمة المؤشر القديم إلى قيمة جديدة على النحو الموضح في الشكل 14-8 وبالتالي لا تظهر البيانات عند استرجاع أو طبع القائمة. في حين تتم الإضافة على القائمة بالعثور أولاً على موقع خال من إضافة عنوان (مؤشر) يوضح البيانات السابقة للبيانات المضافة مما يجعل هناك مدخل للحصول على البيانات فيما يوضحه الشكل 14-9.

أضغط لتكبير الشكل
الشكل 14-8

أضغط لتكبير الشكل
الشكل 14-9

14-3-5 الكومة STACK :

  يأتي مفهوم الكومة من ذات مفهومها في الحياة اليومية، فإذا كانت خزينة الكتب مملوءة(كومة) فأي كتاب يوضع أعلاها سوف يؤخذ أول كتاب عند البحث عن كتاب آخر، بمعنى من يدخل أخيراً يخرج أولاً Last In First Out  وتناظر الكومة القوائم فيما عدا إضافة أو حذف سجل بيانات يتم عند طرف واحد منها مما يسهل عمليات الإضافة والحذف وتكاد تلغي تماماً صعوبة التعامل مع القوائم، ويحجز للكومة حيز متصل داخل الذاكرة أكبر قليلاً من الحيز المطلوب حتى تستوعب المواقع الزائدة عمليات الإضافة أو الحذف وهذا التمدد يحتاج مؤشر إلى الموقع الخالي عند أحد طرفيها.

14-3-6  قوائم الانتظار QUE :

  تشبه قوائم الانتظار في الحاسبات قوائم الانتظار في الحياة اليومية عندما يقف الناس على هيئة طابور لشراء سلعة أو إنجاز عمل، ويطبق في كلاهما مبدأ من يأتي أولاً يخدم أولاً، وفي الحاسب يطبق نفس المبدأ، ففي نظم الحاسبات قد تقذف وحدة التشغيل المركزية بمخرجات متدفقة أسرع ملايين المرات من سرعة وحدات الطباعة مما يستدعي تخزين المخرجات على الأقراص المغناطيسية حتى يأتي دورها في الطباعة، وهنا يختلف الأمر فعناصر البيانات لا تتحرك مثلما يتحرك الناس في طابور السينما بل يجب تحريك مؤشرات على قائمة الانتظار.

تنفيذ قوائم الانتظار:
يتطلب تنفيذ قوائم الانتظار على الحاسب حجز حيز في الذاكرة يستوعب البيانات مع وجود مؤشرين، يتولى الأول الإشارة إلى رأس موقع الانتظار بينما يشير الآخر إلى نهاية موقع الانتظار TALL& HEAD POINTERSويشير مؤشر رأس القائمة إلى عنوان أول موقع مشغول بينما يشير مؤشر ذيل القائمة إلى عنوان أول موقع خال في كتلة المواقع المعنونة المخصصة للقائمة. ويوضح الشكل 14-10 عن حركة التعامل مع قوائم الانتظار.

أضغط لتكبير الشكل
الشكل 14-10


ونلحظ في الشكل الفرعي (1) أن القائمة لا زالت خالية من البيانات مما ترتب عليه أن مؤشري مقدمة ونهاية القائمة يشيران إلى موقع التخزين الأول كبداية ونهاية للبيانات، بينما الشكل الفرعي (2) دخل عنصر البيان(أ) ونلحظ أن مؤشر نهاية القائمة تزحزح إلى الموقع الفارغ التالي بعد موقع (أ)، وفي الشكل الفرعي (3) تم إدخال عنصر البيان(ب) وتحرك مؤشر نهاية القائمة إلى الموقع (3) وفي الشكل الفرعي (4) تم إخراج عنصر البيان(أ) مما أستوجب من مؤشر رأس القائمة الإشارة إلى موقع البيان (ب) كبداية لقائمة الانتظار.

وهذا التحرك المستمر في عناوين مواقع الانتظار قد يجعل كتلة القائمة تنتقل عبر الذاكرة مدمرة في طريقها كل البيانات وهذا الزحف لا يعود إلى حيز القائمة لكن إلى تغير قيم المؤشرات باستمرار مما دفع إلى التفكير في قائمة انتظار حلقية أو دواره هي أقرب ما تكون إلى دورات البرامج
Loops  بأن تتحرك البيانات المخزنة في القائمة ناحية رأس القائمة باستمرار كلما خرج بيان منها مثلما نتحرك للأمام في طابور تذاكر السينما كلما خرج أحد المنتظرين من الصف ، وفي هذه الحالة فإن اقتربت البيانات المخزنة في القائمة من نهايتها دفعت بيانات جديدة من ذيل القائمة فيما يوضحه الشكل 14-11 ومثل هذه القوائم الانتظارية الدوارة تصلح في إنشاء المناطق العازلة للمدخلات والمخرجات.

أضغط لتكبير الشكل
الشكل 14-11 قوائم الانتظار الدائرية

تطبيقات قوائم الانتظار:تستخدم قوائم الانتظار في عدة تطبيقات داخل نظام التشغيل خاصة في إدارة المشغل كما تطبق في برامج الفرز، فإذا فرضنا أن طلبة كلية التجارة مسجلين في الحاسب ضمن قوائم موحدة سواء أكانوا في الدراسات العليا أو مرحلة البكالوريوس ويراد إصدار طباعة مستقلة لكلا القسمين فإن هناك عدة حلول لتنفيذ المطلوب منها فرز القائمة مرتين، مرة على حقل الدراسات العليا ومرة أخرى على حقل مرحلة البكالوريوس وإصدار طباعة فورية لهم مع تخزين بيانات طلبة الدراسات العليا في قائمة انتظار لحين طباعتها.

14-4 هياكل البيانات الشجرية:

 

وتعنى شجرة البيانات Tree (الهياكل الهرمية).
تشبه هياكل البيانات الشجرية التمثيل المرسوم لشجرة عائلة ضخمة أو الهيكل التنظيمي لإحدى الشركات حيث مدير الشركة على رأس التنظيم ثم يمتد خط النائب بعدها يتفرع التنظيم الإداري والأفرع والأقسام... فيما يوضحه الشكل 14-12 لهيكل تنظيمي لإحدى الشركات.
ويشترط في الشكل الهرمي عدم وجود مستوى أدنى يعمل تحت قيادة رئيسين في وقت واحد، كما في شجرة العائلة حيث لا يوجد ابن له والدان(عدد 2 والد).

أضغط لتكبير الشكل
الشكل 14-12


والعناصر البنائية في التركيب الشجري تسمى
NODES وكل عنصر يتكون من وحدة بيان ومشيرين على الأقل ويسمىNODE الأعلى ROOT NODE، الآخرLEAF والخط الواصل بينهما هي الأقواس ARC.

مؤشر يمين عنصر بيان مؤشر يسار

عنصر بيان الهيكل الشجري


وغير خاف أنه لا يوجد داخل الذاكرة يمين أو يسار، إنما تستخدم هذه الطريقة لتوضيح شكل التخزين على الورق وبالتالي فإن كل عقدة سوف تمثل في الذاكرة بواسطة مجموعة من خلايا التخزين متجاورة وإذا كان قيمة أحد المؤشرات صفر فهذا يعنى عدم وجود امتداد أما إذا كان المؤشرين فهذا يدل على نهاية تركيب البيانات، أما المدخل الرئيسي للشجرة فيخزن في مؤشر الجذر
ROOT PONITER .

مثال: المطلوب تمثيل العلاقة التالية في هيئة شكل تخزين داخل الحاسب؟


الحل : يوضحه الشكل 14-13

أضغط لتكبير الشكل
الشكل 14-13


وهذا التركيب يتيح تحديد جذر السجلات
Root لكل فرع Leef لكن على حساب استخدام مواقع تخزين أكثر للمؤشرات.

14-5 هياكل البيانات الشبكية:

 

وتعنى Plex الشبكات (الرسوم Graphs ) كما تسمى بيانات مضفرة.
إذا اتصل أي عنصر بيان في المستوى الأدنى من هياكل البيانات الشجرية بأكثر من عنصر في مستوى أعلى فيطلق عليه اسم هياكل بيانات شبكية، حتى شجرة العائلة من النوع الشبكي وليست من النوع الهرمي فالشكل14-14 يوضح العلاقات الهرمية لأسرة تتكون من جد، أبناء، أحفاد، شكل غير حقيقي لأننا أهملنا الأمهات منذ زمن بعيد لكن الشكل 14-15 وهي علاقة توضحيها أكثر كما في شكل14-16.

أضغط لتكبير الشكل
الشكل 14-14

أضغط لتكبير الشكل
الشكل 14-15

أضغط لتكبير الشكل
الشكل 14-16


تكافئ الشكل الشجري التالي



وتنقسم هياكل البيانات الشجرية إلى نوعين، بسيط ومعقد، ففي النوع البسيط يمكن تحديد مستويات الهيكل البنائي للبيانات أما النوع المعقد فيصعب ذلك كثيراً كما في الشكل14-17 .

أضغط لتكبير الشكل
الشكل 14-17



حول الموقع  الصفحة الرئيسية  المراجع