1 / 27

تراكيب البيانات

قسم علوم الحاسوب و تكنولوجيا المعلومات تخصص دبلوم البرمجيات و قواعد البيانات. الوحدة السادســة هيكل البيانات Stack. تراكيب البيانات. المادة العلمية إعداد أ. محمود رفيق الفـــرَّا http://mfarra.cst.ps. مدرس المساق/ أ . محمود رفيق الفـــرَّا. 2010-2011. محاور المحاضرة.

henrik
Download Presentation

تراكيب البيانات

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. قسم علوم الحاسوب و تكنولوجيا المعلومات تخصص دبلوم البرمجيات و قواعد البيانات الوحدة السادســة هيكل البيانات Stack تراكيب البيانات المادة العلمية إعداد أ. محمود رفيق الفـــرَّا http://mfarra.cst.ps مدرس المساق/ أ. محمود رفيق الفـــرَّا 2010-2011

  2. محاور المحاضرة • ما هـو المكدس ؟ (Stack) • عملية الإضافة Push operation • عملية الحذف Pop operation • عرض بيانات عنصر ما • إفراغ الـ Stack • طباعة العناصر • البحث عن عنصر ما • ترتيب العناصر باستخدام bubble Sort مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمودرفيق الفــرَّا

  3. بذكرك ربنـا نحيــا • الذكر عند النوم باسمك ربي وضعت جنبي وبك أرفعه إن أمسكت نفسي فارحمها، وإن أرسلتها فاحفظها بما تحفظ به عبادك الصالحين عنْ أبي هريرة رضي الله عنها قال رسول الله صلى الله عليه وسلم : (إذا أوى أحدكم إلى فراشه ، فلينفضه بداخلة إزاره ، فإنه لا يدري ما خلفه عليه ، ثم ليضطجع على شقه الأيمن ، ثم ليقل : باسمك ربي وضعت جنبي ، وبك أرفعه ، إن أمسكت نفسي فارحمها ، وإن أرسلتها فاحفظها بما تحفظ به عبادك الصالحين ) صحيح الجامع مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  4. ما هـو المكدس ؟ Stack • المكدس هو أحد هياكل البيانات التي تسمح بالتفاعل معها (حذف و إضافة) من جهة واحدة فقط و هي تحاكي مفهوم (الرص الرأسي) مثل مجموعة من الكتب الرأسيـة أو مجموعة من الثمار كما يظهر في الصور أدناه.

  5. ما هـو المكدس ؟ Stack • و إن كانت القائمة تسمح بالحذف و الإضافة في أي موضع و من أي جهـة, فإنَّ المكدس لا يسمح إلا بثلاث عمليات أساسية فقط تتم من أعلى و هم: الإضافـة Push و الحذف Pop العرض Peek. • و تتعامل العمليات مع المكدس بمبدأ من يدخل أولا يخرج أخيرا FIFO (First in First Out) • هذا لا يعني أننا لا نستطيع القيام بعمليات أخرى, و لكن أي عملية أخرى لابد أن تعتمد على هذه العمليات. مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  6. 6 1 7 ما هي عناصر المكدس؟ • يتكون المكدس من عناصر مماثلة تماما لعناصر القائمة, و لا يوجد فروق أبدا بينهما سوى العمليات التي يسمح بالقيام بها على كلاهما. Top مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  7. عناصر Stack من الموظفين class Employee { public int salary; public String name; public Employee() { salary = 300; name = "no name"; } public Employee(int salary, String name) { this.salary = salary; this.name = name; } } مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  8. بناء Stack من الموظفين class EmployeeStack { Employee Top = null; int length =0; // هنا تضاف العمليات المختلفة } مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  9. 6 6 1 6 1 7 عملية الإضافة Push operation • إضافة أي عنصر يتم من خلال التالي: • جعل مؤشر العنصر الجديد يشير إلى ما يشير له المؤشر Top • جعل المؤشر Top يشير إلى العنصر الجديد. Top Top Top مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  10. عملية الإضافة Push operation public void Push(Employee NewEmp) { Employee newe = NewEmp; if (Top == null) { Top = newe; newe.next = null; } else { newe.next = Top; Top = newe; } length++; Console.WriteLine("A new Employee has been added to Stack: "+length); } مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  11. 6 1 7 6 1 7 عملية الحذف Pop operation • حذف العنصر يتم من خلال التالي: • جعل Top يشير إلى العنصر التالي للعنصر الأول. Top Top مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  12. عملية الإضافة Push operation public void Pop() { if (Top == null) Console.WriteLine("Stack is Empty!!"); else { Top = Top.next; length--; Console.WriteLine("Now Top Points to: " + Top.name); } } مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  13. 6 1 7 عملية عرض بيانات العنصر الأخير Peek • تعرف عملية عرض البيانات للعنصر الأخير (آخر عنصر تم إضافته) ما بـ Peek. • و هذا العنصر مشار إليه بالمؤشـر TOP Top.name Top.salary … Top مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  14. عملية عرض بيانات العنصر الأخيرPeek public void Peek() { if (Top == null) Console.WriteLine("The Stack is Empty!!"); else Console.WriteLine("The Employee Data:\n"+ "Name: "+Top.name+"\nSalary: "+Top.salary); } مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  15. أشكركم السؤال مفتاح للعلوم كلها... تذكر أن نيوتن عندما سأل لماذا وقعت التفاحـة وصل إلى قوانين الجاذبيــة ... مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  16. بذكرك ربنـا نحيــا • الذكر عند الاستيقاظ من النوم الحمد لله الذي رد علي روحي وعافاني في جسدي ، و أذن لي بذكره عنْ أبي هريرة رضي الله عنه قال, قال رسول الله صلى الله عليه وسلم : (إذا استيقظ أحدكم فليقل : الحمد لله الذي رد علي روحي وعافاني في جسدي ، و أذن لي بذكره) حسـنـَّـه الألباني مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  17. 6 1 7 عملية إفراغ كافة عناصر الـ Stack • إفراغ كافة عناصر المكدس هي ببساطة جعل المؤشر Top لا يشير لهذه العناصر و بذلك تصبح الكائنات (العناصر) غير مستعملة, مما يجعلها تحذف تلقائيـا من الذاكرة. Top مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  18. عملية إفراغ كافة عناصر الـ Stack public void Clear() { if (Top == null) Console.WriteLine("The Stack is Empty!!"); else Top = null; Length = 0; } مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  19. 6 1 7 عملية طباعة عناصر الـ Stack • عملية الطباعة تتم من خلال التنقل على عناصر المكدس و طباعة البيانات و هذا يتم من تعريف متغير Current يبدا من حيث يشير المتغير Top. Top next current next مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  20. عملية طباعة عناصر الـ Stack public void PrintAll() { Employee current = Top; int x =1; while (current != null) { Console.WriteLine("Data Of Employee # "+x+" is\n "+ "Name: “ + current.name + "\nSalary: "+current.salary); Console.WriteLine("=============================="); x++; current = current.next; } } مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  21. 6 1 7 البحث عن عنصر ما • البحث كما تعلمنا سابقا قد يتم بأكثر من طريقـة, و جميعهم يعتمد على وجود تكرار يتحرك من خلال وجود مؤشر يبدأ من حيث يوجد المؤشر Top Top next current next مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  22. البحث عن عنصر ما public void SearchByName(String name ) { Employee current = Top; bool flag = false; while ( current != null) { if (name.CompareTo(current.name) == 0) { flag = true; break; } current = current.next; } if (flag == true) Console.WriteLine("Exist!!"); else Console.WriteLine("Does not Exist!!"); } مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  23. أشكركم السؤال مفتاح للعلوم كلها... تذكر أن نيوتن عندما سأل لماذا وقعت التفاحـة وصل إلى قوانين الجاذبيــة ... مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  24. بذكرك ربنـا نحيــا • الذكر عند الصعود و النزول إذا صعدنا قلنا الله أكبر ... إذا نزلنا قلنا سبحان الله ... عنْ جابر بن عبد الله رضي الله عنها قال : (كنا إذا صعدنا كبرنا ، وإذا نزلنا سبحنا . ) صحيح البخاري مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  25. 6 1 7 ترتيب العناصر باستخدام bubble Sort • ترتيب العناصر تم شرحه فيما سبق, و الاختلاف في طبيعة العناصر, فعناصر المكدس عبارة عن كائنات يتم الإشارة لها من خلال متغير Current يبدأ من حيث يوجد Top Top next current next مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  26. عملية طباعة عناصر الـ Stack public void bubSort() { for (int i = 0; i < length; i++) { Employee current = Top; while (current.next != null) { if (current.salary > current.next.salary) { int TempSalary = current.salary; String Tempname = current.name; current.salary = current.next.salary; current.name = current.next.name; current.next.salary = TempSalary; current.next.name = Tempname; } current = current.next; } } } مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

  27. أشكركم السؤال مفتاح للعلوم كلها... تذكر أن نيوتن عندما سأل لماذا وقعت التفاحـة وصل إلى قوانين الجاذبيــة ... مساق تراكيب البيانات المادة العلمية إعداد/ أ. محمود رفيق الفــرَّا

More Related