Upload
henrik
View
82
Download
1
Embed Size (px)
DESCRIPTION
قسم علوم الحاسوب و تكنولوجيا المعلومات تخصص دبلوم البرمجيات و قواعد البيانات. الوحدة السادســة هيكل البيانات Stack. تراكيب البيانات. المادة العلمية إعداد أ. محمود رفيق الفـــرَّا http://mfarra.cst.ps. مدرس المساق/ أ . محمود رفيق الفـــرَّا. 2010-2011. محاور المحاضرة. - PowerPoint PPT Presentation
Citation preview
البيانات تراكيب
. / ا الفـــر� رفيق محمود أ المساق . مدرس / ا الفـــر� رفيق محمود أ المساق مدرس
المعلومات تكنولوجيا و الحاسوب علوم قسمالبيانات قواعد و البرمجيات دبلوم تخصص
إعداد العلمية المادةا. الفـــر% رفيق محمود http://mfarra.cst.psأ
2010-2011
السادســة الوحدةالبيانات Stackهيكل
المحاضرة محاور
؟ المكدس هـو (Stack)ما
اإلضافة Push operationعملية الحذف Pop operationعملية ما عنصر بيانات عرض الـ Stackإفراغ العناصر طباعة ما عنصر عن البحث باستخدام العناصر bubble Sortترتيب
2
. / أ إعداد العلمية المادة البيانات تراكيب مساقا محمودمحمود الفــر% رفيق
نحيــا ربنـا بذكرك
النوم عند الذكر
3
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
باسمك ربي وضعت جنبي وبك أرفعه إن أمسكت نفسي
فارحمها، وإن أرسلتها فاحفظها بما تحفظ به عبادك
الصالحين
باسمك ربي وضعت جنبي وبك أرفعه إن أمسكت نفسي
فارحمها، وإن أرسلتها فاحفظها بما تحفظ به عبادك
عليه الصالحين الله صلى الله رسول قال عنها الله رضي هريرة أبي aعنال : ) فإنه ، إزاره بداخلة فلينفضه ، فراشه إلى أحدكم أوى إذا وسلم
ليقل : ثم ، األيمن شقه على ليضطجع ثم ، عليه خلفه ما يدرينفسي أمسكت إن ، أرفعه وبك ، جنبي وضعت ربي باسمك
الصالحين ( عبادك به تحفظ بما فاحفظها أرسلتها وإن ، فارحمهاالجامع صحيح
؟ المكدس هـو Stackما
معها بالتفاعل تسمح التي البيانات هياكل أحد هو المكدس ) مفهوم) تحاكي هي و فقط واحدة جهة من إضافة و حذف
) أو) الرأسيـة الكتب من مجموعة مثل الرأسي الرص. أدناه الصور في يظهر كما الثمار من مجموعة
4
؟ المكدس هـو Stackما5
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
أي في اإلضافة و بالحذف تسمح القائمة كانت إن و , إال يسمح ال المكدس فإن% جهـة أي من و موضع : هم و أعلى من تتم فقط أساسية عمليات بثالث
الحذف Pushاإلضافـة .Peekالعرض Popو بمبدأ المكدس مع العمليات تتعامل أوال و يدخل من
أخيرا FIFO (First in First Out)يخرج , و أخرى بعمليات القيام نستطيع ال أننا يعني ال هذا
هذه على تعتمد أن البد أخرى عملية أي لكنالعمليات.
المكدس؟ عناصر هي ما6
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
لعناصر تماما مماثلة عناصر من المكدس يتكونالعمليات, سوى بينهما أبدا فروق يوجد ال و القائمة
. كالهما على بها بالقيام يسمح التي
Top
6
1
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. }
الموظفين 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. }
اإلضافة Pushعمليةoperation
9
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
: التالي خالل من يتم عنصر أي إضافة له يشير ما إلى يشير الجديد العنصر مؤشر جعل
Topالمؤشر المؤشر .Topجعل الجديد العنصر إلى يشير
Top Top
6
1
Top
6
1
7
اإلضافة 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. }
الحذف Pop operationعملية11
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
: التالي خالل من يتم العنصر حذف جعلTop. األول للعنصر التالي العنصر إلى يشير
Top
6
1
7 Top
6
1
7
اإلضافة 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. }
األخير العنصر بيانات عرض عمليةPeek
13
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
( آخر األخير للعنصر البيانات عرض عملية تعرف ) بـ ما إضافته تم .Peekعنصر
بالمؤشـر إليه مشار العنصر هذا TOPو
Top
6
1
7Top.nameTop.salary
…
األخير العنصر بيانات عرض 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. }
أشكركم15
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
... كلها للعلوم مفتاح السؤالالجاذبيــة ... قوانين إلى وصل التفاحـة وقعت لماذا سأل عندما نيوتن أن تذكر
نحيــا ربنـا بذكرك
النوم من االستيقاظ عند الذكر
16
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
الحمد لله الذي رد علي روحي وعافاني في
جسدي ، و أذن لي بذكره
الحمد لله الذي رد علي روحي وعافاني في
جسدي ، و أذن لي بذكره , عليه الله صلى الله رسول قال قال عنه الله رضي هريرة أبي aعنروحي : ) : علي رد الذي لله الحمد فليقل أحدكم استيقظ إذا وسلم
) بذكره لي أذن و ، جسدي في وعافانياأللباني ه ـ% حسـنـ
الـ عناصر كافة إفراغ Stackعملية17
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
جعل ببساطة هي المكدس عناصر كافة إفراغتصبح Topالمؤشر بذلك و العناصر لهذه يشير ال
, ) تحذف ) يجعلها مما مستعملة غير العناصر الكائنات. الذاكرة من تلقائيـا
Top
6
1
7
الـ عناصر كافة إفراغ 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. }
الـ عناصر طباعة Stackعملية19
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
عناصر على التنقل خالل من تتم الطباعة عمليةتعريف من يتم هذا و البيانات طباعة و المكدس
المتغير Currentمتغير يشير حيث من .Topيبدا
Top
6
1
7next
next
current
الـ عناصر طباعة 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. }
ما عنصر عن البحث21
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
, و طريقـة من بأكثر يتم قد سابقا تعلمنا كما البحثخالل من يتحرك تكرار وجود على يعتمد جميعهم
المؤشر يوجد حيث من يبدأ مؤشر Topوجود
Top
6
1
7next
next
current
ما عنصر عن البحث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. }
أشكركم23
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
... كلها للعلوم مفتاح السؤالالجاذبيــة ... قوانين إلى وصل التفاحـة وقعت لماذا سأل عندما نيوتن أن تذكر
نحيــا ربنـا بذكرك
النزول و الصعود عند الذكر
24
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
إذا صعدنا قلنا الله أكبر ... إذا نزلنا قلنا سبحان الله ... إذا صعدنا قلنا الله أكبر ...
إذا نزلنا قلنا سبحان الله ...
صعدنا : ) إذا كنا قال عنها الله رضي الله عبد بن جابر aعنسبحنا . ( نزلنا وإذا ، كبرنا
البخاري صحيح
باستخدام العناصر ترتيبbubble Sort
25
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
, في االختالف و سبق فيما شرحه تم العناصر ترتيب , فعناصر العناصر كائنات طبيعة عن عبارة المكدس
متغير خالل من لها اإلشارة حيث Currentيتم من يبدأTopيوجد
Top
6
1
7next
next
current
الـ عناصر طباعة 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. }
أشكركم27
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
... كلها للعلوم مفتاح السؤالالجاذبيــة ... قوانين إلى وصل التفاحـة وقعت لماذا سأل عندما نيوتن أن تذكر