27
ات ان ي ب ل ا ب ي ك را ت اَ ّ ر لف ا ق ي ف ود ر م ح م. % / ا ساق م ل مدرس ا اَ ّ ر لف ا ق ي ف ود ر م ح م. % / ا ساق م ل مدرس ا ومات ل ع م ل ا ا ي ج و ل و ي ك ن و وت س حا ل وم ا ل ع م س ف ات ان ي ب ل واعد ا ق و ات> ي ج م ر لب وم ا ل ن ص د ص خ تاد عدH ا ة ي م ل ع ل ا مادة ل ا اَ ّ ر لف ا ق ي ف ود ر م ح م. % اhttp://mfarra.cst.ps 2010-2011 ادسة س ل ا وحدة لQ ا ات ان ي ب ل ل ا ك ي هStack

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

  • Upload
    henrik

  • View
    82

  • Download
    1

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: تراكيب البيانات

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

. / ا الفـــر� رفيق محمود أ المساق . مدرس / ا الفـــر� رفيق محمود أ المساق مدرس

المعلومات تكنولوجيا و الحاسوب علوم قسمالبيانات قواعد و البرمجيات دبلوم تخصص

إعداد العلمية المادةا. الفـــر% رفيق محمود http://mfarra.cst.psأ

2010-2011

السادســة الوحدةالبيانات Stackهيكل

Page 2: تراكيب البيانات

المحاضرة محاور

؟ المكدس هـو (Stack)ما

اإلضافة Push operationعملية الحذف Pop operationعملية ما عنصر بيانات عرض الـ Stackإفراغ العناصر طباعة ما عنصر عن البحث باستخدام العناصر bubble Sortترتيب

2

. / أ إعداد العلمية المادة البيانات تراكيب مساقا محمودمحمود الفــر% رفيق

Page 3: تراكيب البيانات

نحيــا ربنـا بذكرك

النوم عند الذكر

3

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

باسمك ربي وضعت جنبي وبك أرفعه إن أمسكت نفسي

فارحمها، وإن أرسلتها فاحفظها بما تحفظ به عبادك

الصالحين

باسمك ربي وضعت جنبي وبك أرفعه إن أمسكت نفسي

فارحمها، وإن أرسلتها فاحفظها بما تحفظ به عبادك

عليه الصالحين الله صلى الله رسول قال عنها الله رضي هريرة أبي aعنال : ) فإنه ، إزاره بداخلة فلينفضه ، فراشه إلى أحدكم أوى إذا وسلم

ليقل : ثم ، األيمن شقه على ليضطجع ثم ، عليه خلفه ما يدرينفسي أمسكت إن ، أرفعه وبك ، جنبي وضعت ربي باسمك

الصالحين ( عبادك به تحفظ بما فاحفظها أرسلتها وإن ، فارحمهاالجامع صحيح

Page 4: تراكيب البيانات

؟ المكدس هـو Stackما

معها بالتفاعل تسمح التي البيانات هياكل أحد هو المكدس ) مفهوم) تحاكي هي و فقط واحدة جهة من إضافة و حذف

) أو) الرأسيـة الكتب من مجموعة مثل الرأسي الرص. أدناه الصور في يظهر كما الثمار من مجموعة

4

Page 5: تراكيب البيانات

؟ المكدس هـو Stackما5

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

أي في اإلضافة و بالحذف تسمح القائمة كانت إن و , إال يسمح ال المكدس فإن% جهـة أي من و موضع : هم و أعلى من تتم فقط أساسية عمليات بثالث

الحذف Pushاإلضافـة .Peekالعرض Popو بمبدأ المكدس مع العمليات تتعامل أوال و يدخل من

أخيرا FIFO (First in First Out)يخرج , و أخرى بعمليات القيام نستطيع ال أننا يعني ال هذا

هذه على تعتمد أن البد أخرى عملية أي لكنالعمليات.

Page 6: تراكيب البيانات

المكدس؟ عناصر هي ما6

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

لعناصر تماما مماثلة عناصر من المكدس يتكونالعمليات, سوى بينهما أبدا فروق يوجد ال و القائمة

. كالهما على بها بالقيام يسمح التي

Top

6

1

7

Page 7: تراكيب البيانات

الموظفين Stackعناصر من7

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

1. class Employee {2. public int salary;3. public String name;4. public Employee()5. {6. salary = 300;7. name = "no name";8. }9. public Employee(int salary, String name)10. {11. this.salary = salary;12. this.name = name;13. }14. }

1. class Employee {2. public int salary;3. public String name;4. public Employee()5. {6. salary = 300;7. name = "no name";8. }9. public Employee(int salary, String name)10. {11. this.salary = salary;12. this.name = name;13. }14. }

Page 8: تراكيب البيانات

الموظفين Stackبناء من8

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

1. class EmployeeStack2. {3. Employee Top = null;4. int length =0;5. المختلفة // العمليات تضاف هنا

.6 {

1. class EmployeeStack2. {3. Employee Top = null;4. int length =0;5. المختلفة // العمليات تضاف هنا

6. }

Page 9: تراكيب البيانات

اإلضافة Pushعمليةoperation

9

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

: التالي خالل من يتم عنصر أي إضافة له يشير ما إلى يشير الجديد العنصر مؤشر جعل

Topالمؤشر المؤشر .Topجعل الجديد العنصر إلى يشير

Top Top

6

1

Top

6

1

7

Page 10: تراكيب البيانات

اإلضافة Push operationعملية10

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

1. public void Push(Employee NewEmp) {2. Employee newe = NewEmp;3. if (Top == null) {4. Top = newe;5. newe.next = null; }6. else {7. newe.next = Top;8. Top = newe; }9. length++;10. Console.WriteLine("A new Employee has been added

to Stack: "+length);11. }

1. public void Push(Employee NewEmp) {2. Employee newe = NewEmp;3. if (Top == null) {4. Top = newe;5. newe.next = null; }6. else {7. newe.next = Top;8. Top = newe; }9. length++;10. Console.WriteLine("A new Employee has been added

to Stack: "+length);11. }

Page 11: تراكيب البيانات

الحذف Pop operationعملية11

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

: التالي خالل من يتم العنصر حذف جعلTop. األول للعنصر التالي العنصر إلى يشير

Top

6

1

7 Top

6

1

7

Page 12: تراكيب البيانات

اإلضافة Push operationعملية12

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

1. public void Pop()2. {3. if (Top == null)4. Console.WriteLine("Stack is Empty!!");5. else6. {7. Top = Top.next;8. length--;9. Console.WriteLine("Now Top Points to: "

+ Top.name);10. }11. 12. }

1. public void Pop()2. {3. if (Top == null)4. Console.WriteLine("Stack is Empty!!");5. else6. {7. Top = Top.next;8. length--;9. Console.WriteLine("Now Top Points to: "

+ Top.name);10. }11. 12. }

Page 13: تراكيب البيانات

األخير العنصر بيانات عرض عمليةPeek

13

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

( آخر األخير للعنصر البيانات عرض عملية تعرف ) بـ ما إضافته تم .Peekعنصر

بالمؤشـر إليه مشار العنصر هذا TOPو

Top

6

1

7Top.nameTop.salary

Page 14: تراكيب البيانات

األخير العنصر بيانات عرض Peek عملية14

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

1. public void Peek()2. {3. if (Top == null)4. Console.WriteLine("The Stack is

Empty!!");5. else6. Console.WriteLine("The Employee Data:\

n"+7. "Name: "+Top.name+"\nSalary:

"+Top.salary);8. }

1. public void Peek()2. {3. if (Top == null)4. Console.WriteLine("The Stack is

Empty!!");5. else6. Console.WriteLine("The Employee Data:\

n"+7. "Name: "+Top.name+"\nSalary:

"+Top.salary);8. }

Page 15: تراكيب البيانات

أشكركم15

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

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

Page 16: تراكيب البيانات

نحيــا ربنـا بذكرك

النوم من االستيقاظ عند الذكر

16

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

الحمد لله الذي رد علي روحي وعافاني في

جسدي ، و أذن لي بذكره

الحمد لله الذي رد علي روحي وعافاني في

جسدي ، و أذن لي بذكره , عليه الله صلى الله رسول قال قال عنه الله رضي هريرة أبي aعنروحي : ) : علي رد الذي لله الحمد فليقل أحدكم استيقظ إذا وسلم

) بذكره لي أذن و ، جسدي في وعافانياأللباني ه ـ% حسـنـ

Page 17: تراكيب البيانات

الـ عناصر كافة إفراغ Stackعملية17

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

جعل ببساطة هي المكدس عناصر كافة إفراغتصبح Topالمؤشر بذلك و العناصر لهذه يشير ال

, ) تحذف ) يجعلها مما مستعملة غير العناصر الكائنات. الذاكرة من تلقائيـا

Top

6

1

7

Page 18: تراكيب البيانات

الـ عناصر كافة إفراغ Stackعملية18

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

1. public void Clear()2. {3. if (Top == null)4. Console.WriteLine("The Stack is

Empty!!");5. else6. Top = null;7. Length = 0;8. }

1. public void Clear()2. {3. if (Top == null)4. Console.WriteLine("The Stack is

Empty!!");5. else6. Top = null;7. Length = 0;8. }

Page 19: تراكيب البيانات

الـ عناصر طباعة Stackعملية19

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

عناصر على التنقل خالل من تتم الطباعة عمليةتعريف من يتم هذا و البيانات طباعة و المكدس

المتغير Currentمتغير يشير حيث من .Topيبدا

Top

6

1

7next

next

current

Page 20: تراكيب البيانات

الـ عناصر طباعة Stackعملية20

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

1. public void PrintAll()2. {3. Employee current = Top;4. int x =1;5. while (current != null)6. {7. Console.WriteLine("Data Of Employee # "+x+" is\n "+

"Name: “ + current.name + "\nSalary: "+current.salary);8. Console.WriteLine("============================

==");9. x++;10. current = current.next;11. }12. }

1. public void PrintAll()2. {3. Employee current = Top;4. int x =1;5. while (current != null)6. {7. Console.WriteLine("Data Of Employee # "+x+" is\n "+

"Name: “ + current.name + "\nSalary: "+current.salary);8. Console.WriteLine("============================

==");9. x++;10. current = current.next;11. }12. }

Page 21: تراكيب البيانات

ما عنصر عن البحث21

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

, و طريقـة من بأكثر يتم قد سابقا تعلمنا كما البحثخالل من يتحرك تكرار وجود على يعتمد جميعهم

المؤشر يوجد حيث من يبدأ مؤشر Topوجود

Top

6

1

7next

next

current

Page 22: تراكيب البيانات

ما عنصر عن البحث22

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

1. public void SearchByName(String name )2. {3. Employee current = Top;4. bool flag = false;5. while ( current != null)6. {7. if (name.CompareTo(current.name) == 0)8. {9. flag = true;10. break;11. }12. current = current.next;13. }14. if (flag == true)15. Console.WriteLine("Exist!!");16. else17. Console.WriteLine("Does not Exist!!");18. }

1. public void SearchByName(String name )2. {3. Employee current = Top;4. bool flag = false;5. while ( current != null)6. {7. if (name.CompareTo(current.name) == 0)8. {9. flag = true;10. break;11. }12. current = current.next;13. }14. if (flag == true)15. Console.WriteLine("Exist!!");16. else17. Console.WriteLine("Does not Exist!!");18. }

Page 23: تراكيب البيانات

أشكركم23

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

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

Page 24: تراكيب البيانات

نحيــا ربنـا بذكرك

النزول و الصعود عند الذكر

24

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

إذا صعدنا قلنا الله أكبر ... إذا نزلنا قلنا سبحان الله ... إذا صعدنا قلنا الله أكبر ...

إذا نزلنا قلنا سبحان الله ...

صعدنا : ) إذا كنا قال عنها الله رضي الله عبد بن جابر aعنسبحنا . ( نزلنا وإذا ، كبرنا

البخاري صحيح

Page 25: تراكيب البيانات

باستخدام العناصر ترتيبbubble Sort

25

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

, في االختالف و سبق فيما شرحه تم العناصر ترتيب , فعناصر العناصر كائنات طبيعة عن عبارة المكدس

متغير خالل من لها اإلشارة حيث Currentيتم من يبدأTopيوجد

Top

6

1

7next

next

current

Page 26: تراكيب البيانات

الـ عناصر طباعة Stackعملية26

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

1. public void bubSort()2. {3. for (int i = 0; i < length; i++)4. {5. Employee current = Top;6. while (current.next != null) {7. if (current.salary > current.next.salary) {8. int TempSalary = current.salary;9. String Tempname = current.name;10. current.salary = current.next.salary;11. current.name = current.next.name;12. current.next.salary = TempSalary;13. current.next.name = Tempname; }14. current = current.next; } } 15. }

1. public void bubSort()2. {3. for (int i = 0; i < length; i++)4. {5. Employee current = Top;6. while (current.next != null) {7. if (current.salary > current.next.salary) {8. int TempSalary = current.salary;9. String Tempname = current.name;10. current.salary = current.next.salary;11. current.name = current.next.name;12. current.next.salary = TempSalary;13. current.next.name = Tempname; }14. current = current.next; } } 15. }

Page 27: تراكيب البيانات

أشكركم27

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

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