Data Structure using C++ PDF
Document Details
Uploaded by SpontaneousAshcanSchool7943
جامعة جنوب الوادي
كمال حفنى
Tags
Related
- Data Structures and Algorithms Study Guide (Sorsogon State University)
- Stack Data Structure PDF
- Data Structures and Algorithms with Python and C++ PDF
- Data Structures Using C++ 2E - The Big-O Notation PDF
- Data Structures and Algorithm Analysis in C++ 4th Edition PDF
- Chapter 1: Introduction to Computers and Programming PDF
Summary
These notes cover data structures using C++. The document provides an introduction to data structures, including different types of data structures such as arrays, linked lists, stacks, and queues. The document also discusses operations such as insertion, deletion, and searching, outlining the benefits and common applications of these structures.
Full Transcript
هـيـاكـل الـبـيــانـات Data Structure using C++ إعداد دكتور /كمال حفنى المقدمة عملية تمثيل البيانات في ذاكرة الحاسوب بصورة صحيحة تؤدي دورا مهما في رفع اداء البرامج ا...
هـيـاكـل الـبـيــانـات Data Structure using C++ إعداد دكتور /كمال حفنى المقدمة عملية تمثيل البيانات في ذاكرة الحاسوب بصورة صحيحة تؤدي دورا مهما في رفع اداء البرامج المخصصة للتعامل مع البيانات. يمكن تمثيل البيانات في ذاكرة الحاسوب باستخدام هياكل بيانية مختلفة لكل منها مايميزه.ويعد اختيار الهيكل المناسب لتمثيل البيانات معتمدا بشكل اساسي علي المساحة التخزنية والسرعه في التعامل مع البيانات المخزونه داخل الهيكل لذلك يجب اختيار هيكل البيانات الذي يقلل من الهدر في ذاكرة الحاسوب وكتابة الخوارزميات التي توفر السرعة عند التعامل مع البينات المخزونة البيانات: عبارة عن مجموعة من الرموز او الحروف اواالرقام او الصور ليس لها معني محدد مثال علي البيانات :أسماء المستخدمين لتطبيق ما والبريد الخاص بهم وعناوينهم وأسماء األقسام والمنتجات وكل شيء في التطبيق المعلومات : المعالجة الدقيقية للبيانات واخراجها علي شكل حقائق ذات معني. انواع البيانات األساسية ) (int , float , char, double, void Integer وهو العدد الصحيح وهو عدد يمكن كتابته بدون كسور أو فواصل عشرية على سبيل المثال ( ) 3 ,2 ,1 Float العدد الفاصل العائم هو العدد العشري الذي يحتوي على عالمة عشرية Character كل رقم وحرف وعالمة هم في النهاية Characterعلى سبيل المثال A, B, C, 1, # ,@ ,- ,2, 3 ( فمثال في لغة C ++تستخدم التعريفات) : ; Int x ; Float y ; Char A Boolean في علوم الكمبيوتر Boolean Data Typesهي قيمة من قيمتين محتملين وفي الغالب يكونوا Trueو False تعريف هياكل البيانات) (Data structures هى دراسة طرق جمع وتمثيل البيانات في ذاكرة الحاسوب عن طريق بناء هياكل بيانات تدعم نوع البيانات المراد تخزنها وهي هياكل تخصصية بتنظيم البيانات ومعالجتها واسترجاعها . على الرغم من وجود العديد من أنواع الهياكل األساسية والمتقدمة ،فقد صمم كل نوع لترتيب البيانات بطريقة تناسب غر ً ضا محددًا بحيث يمكن الوصول إلى هذه البيانات والعمل معها بطرق مناسبة وسهله، عند دراسة هياكل البيانات يجب االخذ بعاملين مهمين وهما المساحة التخزينية ( ) space memoryوالسرعة او عامل الزمن )( timeفي التعامل مع البيانات انواع هياكل البيانات الفيزيائي )(Physical structure تقسم هياكل البيانات الى قسمين اساسيين وهما الهيكل يقصد بالهيكل الفيزيائي عملية تمثيل البيانات في ذاكرة والمنطقي )(Logical structure الحاسوب )(Memoryاما الهيكل المنطقي فيمثل نظرة المبرمج لشكل البيانات المخزونة داخل الهيكل البياني. ويمكن تقسيم انواع هياكل البيانات علي حسب خصائصها الى هياكل البيانات الخطية وهياكل البيانات الغير خطية هياكل بيانات خطية :Linear Data Structure تحتوي بنية البيانات الخطية على عناصر بيانات مرتبة بشكل تسلسلي مما يعني أنه إذا أردنا زيارة العنصر رقم ، 100فعليه المرور عبر العناصر الـ 99السابقة وتقسم هياكل البيانات الي هياكل البيانات الثابته وهياكل البيانات الديناميكية: هياكل البيانات الثابتة : لها أحجام وهياكل ومواقع ذاكرة ثابتة في وقت الترجمة (.)compile time مثال :المصفوفات .Array هياكل البيانات الديناميكية: لها أحجام وهياكل ومواقع ذاكرة و يمكن أن تتقلص أو تتوسع حسب االستخدام في وقت الترجمة (. )compile time مثال :القوائم Linked Listوالمكدس Stackوالطوابير .Queue هياكل البيانات الغير خطية Non - Linear Data Structure ال تحتوي بنية البيانات غير الخطية على تسلسل محدد لالتصال بجميع عناصرها ويمكن أن يكون لكل عنصر مسارات متعددة لالتصال بالعناصر األخرى هياكل البيانات هذه ليست سهلة التنفيذ ولكنها أكثر كفاءة في استخدام ذاكرة الكمبيوتر. أمثلة على هياكل البيانات غير الخطية هي الشجرة treeوالرسوم البيانية Graph تتناسب أنواع مختلفة من هياكل البيانات مع أنواع مختلفة من التطبيقات ،حيث أن هياكل البيانات هي طريقة متخصصة بحفظ البيانات وتنظيمها ومعالجاتها واستعادتها امثلة على انواع هياكل البيانات : Array Linked List Stack Queue Tree Graph العمليات الرئيسية علي هياكل البيانات البحث :يمكننا البحث عن أي عنصر في بنية البيانات. الفرز :يمكننا فرز عناصر بنية البيانات إما بترتيب تصاعدي أو تنازلي. اإلدراج :نستطيع إدراج العنصر الجديد في بنية البيانات. التحديث :كما يمكننا تحديث العنصر ،أي يمكننا استبدال العنصر بعنصر آخر. الحذف :يمكننا كذلك إجراء حذف للبيانات. تعريف الخوارزمية : هي مجموعة من الخطوات المنطقية المتسلسلة التي يتم تطبيقها على مجموعة من البيانات المتاحة والتي تعرف بـ المدخالت ،Inputs - لتحصل منها على نتيجة (حل المشكلة) وهو ما يعرف بـ المخرجات – Output خصائص الخوارز ٌميات خطوات الخوارز ٌميه مرتبه. .1 خطواتها منت ٌهيه . .2 سيطه خطوات الخوارز ٌميه تنفذ اعمال ب ٌ .3 طريقة الحل ٌيجب ان تكون عامه. ٌ .4 ( O )nدرجة تعقيد الخوارز ٌمية : عدد العمليات التي تنفذها للوصول الي الحل وليس الزمن الفعلي للتنفيذ طبقا للقواعد االتية: -1العمليات االولية مثل الجمع والطرح والضرب والقسمة . -2جمل االختيار مثل . if else -3جمل االختيار التراجعية. -4جمل التكرار مثل . for -5جمل التكرار المتداخلة . -6الجمل المتتابعة . أهمية هياكل البيانات .1سرعة المعالجة للبيانات .2سهولة الوصول والبحث عن البيانات .3االستخدام الفعال للذاكرة .4الحصول على الترتيب المنهجي السليم للبيانات .5تسريع تنفيذ العمليات وتوفير الوقت والمساحة داخل ال Memory .6إستهالك موارد أقل لتنفيذ العمليات التي تتم على البيانات () Edit, Delete, Update .7يمكن دمجها كحزمة ( )packageواحدة في مكتبة ويمكن استخدام هذه المكتبات في مواقف مختلفة ً حلوال متعددة لمشكلة معينة .8تتيح الباب الثاني العمليات علي المصفوفات والقوائم .1المصفوفات Array هي مجموعة من العناصر الموجودة بجانب بعضها البعض من نفس النوع في مكان واحد ويمكن الوصول لكل عنصر من العناصر عن طريق ال Indexالخاص به مثال :مجموعة من األعداد الصحيحة بحجم .10يمكن تصور تنظيم العناصر على النحو التالي: 0 1 2 3 4 5 6 7 8 9 25 13 0 -16 14 38 -65 42 97 38 يشار إلى المركز األول بالفهرس .0في مثل هذه الحالة ،يمكن الوصول إلى القيمة 14باعتبارها [[4 ويتم اإلعالن عن الصف فى لغة C ++بالصورة اآلتية: [طول الصف] < اسم الصف > < نوع بيانات الصف> مثال int x; :فى هذا المثال تم اإلعالن عن صف طوله خمس عناصر من نوع رقم صحيح وله اسم .x نالحظ تتابع األرقام 4 ,3 ,2 ,1 ,0هذه األرقام تسمى فهرس الصف وتستخدم هذا الفهرس مع اسم الصف فى التعامل مع عناصر الصف. كيفية تخزين الصف داخل ذاكرة الجهاز يتم تخزين الصف داخل ذاكرة الجهاز فى تتابع حقيقي حيث يتم حجز مساحة داخل الذاكرة تساوى حاصل ضرب طول الصف فى الوحدة التخزينية لنوع عناصر الصف. مثال: اذا أردنا حساب حجم الذاكرة المطلوب لتخزين هذا الصف: الحجم المطلوب = طول الصف × الوحدة التخزينية لنوع البيانات طول الصف = 5عناصر الوحدة التخزينية للنوع بايت int = 4 الحجم المطلوب = 20 = 4×5بايت تطبيق عملي : طباعه عناصر صف > #include x [ j ]; for( j = 9 ; j >= 0 ; j -- ) cout tar; //33 for(int i=0;i