SlideShare a Scribd company logo
DATA STRUCTURE
Chapter 2: Array & Array List
Prepared & Presented by
Mr. Mahmoud R. Alfarra
2011-2012
College of Science & Technology
Dep. Of Computer Science & IT
BCs of Information Technology
http://mfarra.cst.ps
Out Line
 Print the elements of Arrays
 Storing data in Arrays
 Swap two elements in array.
 How to delete an element from array?
 How to insert a new element in array
 The concept of complexity
 What is Array List? How to use?
2
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
Array data structure
3
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
Array data structure
4
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
Print the elements of 1-D Arrays
5
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
1. static void Main(string[] args)
2. {
3. string[] names = { "Ali", "Mahmoud", "Hussam",
"Ala" };
4. for (int i = 0; i < names.Length; i++)
5. Console.WriteLine("The next name is
"+names[i]);
6. Console.Read();
7. }
Print the elements of 2-D Arrays
6
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
1. static void Main(string[] args)
2. {
3. string[,] names = { {"Ali", "Mahmoud"}, {"Hussam", "Ala"} };
4. for (int i = 0; i < names.GetLength(0); i++)
5. Console.WriteLine("The next name is " + names[i,0]+" “ + names[i,1]);
6. Console.Read();
7. }
Storing data in 1-D Arrays
7
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
1. static void Main(string[] args)
2. {
3. int[] id = new int[5];
4. for (int i = 0; i < 5; i++)
5. id[i] =int.Parse(Console.ReadLine());
6. Console.WriteLine("==== The numbers in Array are =====");
7. for (int i = 0; i < 5; i++)
8. Console.WriteLine(" Next Number is " + id[i]);
9. Console.ReadLine();
10. }
Storing data in 2-D Arrays
8
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
1. static void Main(string[] args)
2. {
3. string[,] names = new string[2, 3];
4. for (int i = 0; i < 2; i++)
5. for (int j = 0; j < 3; j++)
6. names[i, j] = Console.ReadLine();
7. for (int i = 0; i < 2; i++)
8. {
9. for (int j = 0; j < 3; j++)
10. Console.Write(names[i, j]);
11. Console.WriteLine();
12. }
13. Console.Read();
14. }
Swap two elements in 1-D array
9
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
1. static void Main(string[] args)
2. {
3. int[] numbers = { 3, 5, 7, 23, 56, 12 };
4. int x;
5. x = numbers[0];
6. numbers[0] = numbers[1];
7. numbers[1] = x;
8. Console.WriteLine(" ");
9. Console.WriteLine(" The elements of array after swap");
10. for (int i = 0; i < numbers.Length; i++)
11. Console.WriteLine(" "+numbers[i]);
12. Console.Read();
13. }
Try to implement the above example with 2-D array
How to delete an element from
array?
10
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
2 7 80 88 90 99
9 12 15 23 30 45 70 77
1 2 3 4 5 6 7 8 9 10 11 12 13
array
0
15
14
To delete the 5’th cell
2 7 80 88 90 99
9 12 15 23 30 45 15 77
1 2 3 4 5 6 7 8 9 10 11 12 13
array
0 14
1 2 3 4 5 6 7 8 9 9
array
0
2 7 80 88 90 99
9 12 23 30 45 15 77
1 2 3 4 5 6 7 8 9 10 11 12 13
99
14
Null
How to delete an element from
array?
11
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
1. static void Main(string[] args)
2. {
3. int[] id = { 10, 12, 11, 45 };
4. // to delete the value 12
5. int i;
6. for ( i = 0; i < id.Length-1; i++)
7. {
8. if (id[i] == 12)
9. {
10. break;
11. } }
12. for (int j =i ; j < id.Length-1; j++)
13. id[j] = id[j + 1];
14. for (int k = 0; k < id.Length; k++)
15. Console.WriteLine(" "+id[k]);
16. Console.Read(); }
How to delete an element from
array?
12
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
1. static void Main(string[] args)
2. {
3. int[] id = { 10, 12, 11, 45 };
4. // to delete the value of index 2
5. for (int i =2 ; i < id.Length-1; i++)
6. id[i] = id[i + 1];
7. for (int k = 0; k < id.Length; k++)
8. Console.WriteLine(" "+id[k]);
9. Console.Read();
10. }
How to insert a new element in
array?
13
2 7 80 88 90 99
9 12 15 23 30 45 70 77
1 2 3 4 5 6 7 8 9 10 11 12 13
array
0
13
14
To insert value
2 7 80 88 90 99
9 12 15 23 30 45 70 77
1 2 3 4 5 6 7 8 9 10 11 12 13
array
0 14
13
‫تصاعدي‬ ‫بشكل‬ ‫القيمة‬ ‫حسب‬ ‫العناصر‬ ‫مرتبـة‬ ‫مصفوفة‬ ‫في‬ ‫عنصر‬ ‫إضافة‬ ‫طريقة‬ ‫يوضح‬ ‫العلوي‬ ‫الشكل‬
How to insert a new element in
array?
14
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
1. static void Main(string[] args)
2. {
3. int[] salary = new int [6];
4. salary[0] = 1200;
5. salary[1] = 2000;
6. salary[2] = 1000;
7. salary[3] = 3210;
8. salary[4] = 4310;
9. // to add value 3000 in the position 3
10. for (int i = salary.Length - 1; i > 3; i--)
11. salary[i] = salary[i - 1];
12. salary[3] = 3000;
13. Console.WriteLine(" === Values of Array after inserting === ");
14. for (int j = 0; j < salary.Length; j++)
15. Console.WriteLine(" Value: "+salary[j]);
16. Console.Read();
17. }
How to insert a new element in array?
15
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
1. static void Main(string[] args) {
2. int[] salary = new int[6];
3. salary[0] = 100;
4. salary[1] = 200;
5. salary[2] = 300;
6. salary[3] = 1210;
7. salary[4] = 2310;
8. // To add value 250
9. int i;
10. for (i = 0; i < salary.Length; i++)
11. if (salary[i] > 250)
12. break;
13. for (int j = salary.Length - 1; j > i; j--)
14. salary[j] = salary[j - 1];
15. salary[i] = 250;
16. Console.WriteLine(" ");
17. Console.WriteLine(" === Values of Array after inserting === ");
18. for (int j = 0; j < salary.Length; j++)
19. Console.WriteLine(" Value: " + salary[j]);
20. Console.Read(); }
‫ت‬ ‫تددد‬ ‫ذاتي‬ ‫تدددب‬
:
‫ت‬ ‫قددد‬
‫ت‬ ‫ددددددددد‬‫د‬ ‫ت‬ ‫دددددددددبذ‬‫د‬‫بالتع‬
‫ت‬ ‫دددا‬ ‫ت‬ ‫دد‬‫د‬‫ددافيتح‬‫د‬‫ن‬ ‫لب‬
‫دد‬ ‫نا‬ ‫كانددكتكاحددات‬
‫ت‬ ‫دددد‬‫د‬ ‫ددددأصحات‬‫د‬ ‫لف‬
‫بت‬ ‫لفددد‬ ‫لةذفدددات‬ ‫فدددلت‬
‫إبخالها‬
‫الخوارزميات‬ ‫دراسـة‬ ‫مفهوم‬
16
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬

‫ما‬ ‫الخوارزمياات‬ ‫هذه‬ ‫تحتاجه‬ ‫ما‬ ‫دراسـة‬ ‫هو‬ ‫الخوارزميات‬ ‫دراسة‬ ‫بمفهوم‬ ‫يقصد‬
‫للحل‬ ‫للوصول‬ ‫تخزي‬ ‫مساحة‬ ‫و‬ ‫وقت‬
,
‫باسام‬ ‫العلام‬ ‫هاذا‬ ‫يعرف‬ ‫و‬
Complexity of
Algorithms

‫الوقت‬
(
‫خطوات‬ ‫عدد‬ ‫على‬ ‫يعتمد‬
)

‫تخزي‬ ‫مساحة‬
(
‫ال‬ ‫الذاكرة‬ ‫في‬ ‫لتخزينها‬ ‫نحتاج‬ ‫التي‬ ‫المعلومات‬ ‫عدد‬ ‫على‬ ‫يعتمد‬
‫عشوائية‬
)

‫فمثـال‬
:
‫المصافوفة‬ ‫فاي‬ ‫جدياد‬ ‫عنصار‬ ‫تخازي‬ ‫أردناا‬ ‫إذا‬
,
‫ل‬ ‫نحتااج‬ ‫هناا‬ ‫فانح‬
‫حسااب‬
‫التخازي‬ ‫لعملياة‬ ‫بااضاافة‬ ‫لتحريكهاا‬ ‫نحتااج‬ ‫التي‬ ‫العناصر‬ ‫عدد‬
,
‫لنحسا‬
‫و‬ ‫الوقات‬ ‫ب‬
‫المساحة‬
.
n
log n
exp (n)

‫الوقاات‬ ‫اد‬‫ا‬‫تعقي‬ ‫ادا‬‫ا‬‫لم‬ ‫عامااة‬ ‫مقااادير‬ ‫اام‬‫ا‬‫هن‬ ‫و‬
‫المستخدم‬
,
‫المقاب‬ ‫بالشكل‬ ‫موضحة‬ ‫هي‬ ‫و‬
‫ل‬
.
‫الخوارزميات‬ ‫دراسـة‬ ‫مفهوم‬
17
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬

‫اااارف‬‫ا‬‫يع‬ ‫و‬
Time complexity
‫ااااام‬‫ا‬‫البرن‬ ‫ااااذ‬‫ا‬‫لتنفي‬ ‫ااااالزم‬‫ا‬‫ال‬ ‫اااات‬‫ا‬‫الوق‬ ‫ااااه‬‫ا‬‫بأن‬
(
‫الخوارزمية‬
)
‫المدخالت‬ ‫بعدد‬ ‫مقارنة‬
(
‫المصفوفة‬ ‫عناصر‬ ‫عدد‬ ‫مثال‬
.)

‫يعرف‬ ‫و‬
Space complexity
‫البرنا‬ ‫لتنفياذ‬ ‫الالزماة‬ ‫التخزي‬ ‫مساحة‬ ‫بأنها‬
‫ام‬
‫المدخالت‬ ‫بعدد‬ ‫مقارنة‬
.

‫بالمدخالت‬ ‫مرتبطـة‬ ‫أنها‬ ‫طالما‬ ‫و‬
,
‫ت‬ ‫الخوارزمياـة‬ ‫تعقياد‬ ‫درجاة‬ َّ ‫أ‬ ‫فستجد‬
‫بماا‬ ‫قاا‬
‫بـ‬ ‫يعرف‬
O(n)
‫أو‬
Big o notation
َّ ‫بأ‬ ‫علما‬
n
‫مارات‬ ‫عادد‬ ‫بهاا‬ ‫يقصاد‬ ‫هناا‬
‫التخزي‬ ‫أو‬ ‫المعالجة‬
,
‫قيمة‬ ‫قلة‬ ‫كلما‬ ‫و‬
n
‫ما‬ ‫أفضال‬ ‫الخوارزمياـة‬ ‫هاذه‬ ‫كانات‬ ‫كلماا‬
‫التخزي‬ ‫و‬ ‫الوقت‬ ‫حيث‬
.
n
log n
exp (n)
‫ادتهاتبعن‬ ‫تب‬ ‫تذدت‬ ‫لتد‬ ‫ت‬ ‫دص‬ ‫لع‬ ‫تفلت‬ ‫لفأهص‬ ‫ت‬ ‫هي‬
‫اذدات‬
‫شبذبةتفدلت‬
‫د‬ ‫فتخ‬
‫اادصات‬ ‫ل‬ ‫ت‬ ‫دص‬
‫ص‬
‫د‬ ‫ف‬
‫ددن‬‫د‬‫ل‬
,
‫دد‬‫د‬ ‫ددبصلت‬‫د‬‫تذعتف‬ ‫دد‬‫د‬‫ه‬ ‫ددبتتجع‬‫د‬‫دداتق‬‫د‬‫أللتنتذجته‬
‫ى‬ ‫خ‬ ‫زفذـاتبصلت‬ ‫خص‬
Array List
18
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬

‫اادارها‬‫ا‬‫إص‬ ‫ااي‬‫ا‬‫ف‬ ‫ااـة‬‫ا‬‫المصفوف‬ ‫ااا‬‫ا‬‫م‬ ‫ااا‬‫ا‬‫تعاملن‬ ‫ااالل‬‫ا‬‫خ‬ ‫اات‬‫ا‬‫انتبه‬ ‫اام‬‫ا‬‫أن‬ ‫اام‬‫ا‬‫الش‬
‫الب‬ ‫عمال‬ ‫خالل‬ ‫زيادته‬ ‫يمك‬ ‫ال‬ ‫و‬ ‫ثابت‬ ‫حجمها‬ َّ ‫أ‬ ‫التقليدي‬
‫رناام‬
,
‫و‬
‫البرام‬ ‫م‬ ‫لكثير‬ ‫مناسبة‬ ‫غير‬ ‫جعلها‬ ‫األمر‬ ‫هذا‬
.

‫يعارف‬ ‫ماا‬ ‫اساتخدام‬ ‫المشاكلة‬ ‫لهاذه‬ ‫الحلاول‬ ‫م‬
Dynamic Data
Structure
‫اام‬ ‫الن‬ ‫اذ‬‫ا‬‫تنفي‬ ‫خاالل‬ ‫زيادتاه‬ ‫ا‬‫ا‬‫يمك‬ ‫الحجام‬ ‫حياث‬
,
‫ا‬‫ا‬‫م‬ ‫و‬
‫التراكيب‬ ‫هذه‬
:
 Stack
 Queue
 Array List
‫الـ‬ ‫مفهوم‬
ArrayList
19
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬

‫الـ‬ ‫تعتمد‬ ‫و‬
ArrayList
‫قدره‬ ‫مبدئي‬ ‫حجم‬ ‫على‬
4
‫عناصار‬
,
‫بمجارد‬
‫إضاافة‬ ‫تلقاائي‬ ‫يتم‬ ‫له‬ ‫الوصول‬
4
‫هكاذا‬ ‫و‬ ‫جديادة‬ ‫عناصار‬
,
‫بالتاالي‬ ‫و‬
‫الحجم‬ ‫انتهاء‬ ‫لخطأ‬ ‫وجود‬ ‫فال‬
,
(
‫الخا‬ ‫ما‬ ‫أكبر‬ ‫عدد‬ ‫طلب‬ ‫يمكننا‬
‫ناات‬
‫العمل‬ ‫بداية‬ ‫م‬
.)

‫اـ‬‫ا‬‫ال‬ ‫تعتبار‬
ArrayList
‫اي‬‫ا‬‫ف‬ ‫اـا‬‫ا‬‫سلف‬ ‫اـة‬‫ا‬‫المبني‬ ‫اات‬‫ا‬‫البيان‬ ‫اب‬‫ا‬‫تراكي‬ ‫ا‬‫ا‬‫م‬
‫اة‬‫ا‬‫لغ‬
‫اارب‬‫ا‬‫ش‬ ‫اي‬‫ا‬‫س‬
,
‫المك‬ ‫امي‬‫ا‬‫لتض‬ ‫ااج‬‫ا‬‫نحت‬ ‫اا‬‫ا‬‫معه‬ ‫ال‬‫ا‬‫التعام‬ ‫اا‬‫ا‬‫يمكنن‬ ‫اي‬‫ا‬‫لك‬ ‫و‬
‫اـة‬‫ا‬‫تب‬
Collections
using System.Collections;
‫الـ‬ ‫مفهوم‬
ArrayList
20
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬

‫اسمها‬ ‫مصفوفة‬ ‫تعريف‬ ‫يتم‬ ‫و‬
names
‫يلي‬ ‫كما‬ ‫النوع‬ ‫هذا‬ ‫م‬
:
ArrayList names = new ArrayList();

‫الـ‬ ‫تعريف‬ ‫في‬ ‫تالح‬ ‫كما‬
ArrayList
‫العناصر‬ ‫عدد‬ ‫نحدد‬ ‫لم‬
,
‫لم‬ ‫و‬
‫اتخدم‬‫ا‬‫نس‬
[ ]
‫الفا‬‫ا‬‫س‬ ‫ارف‬‫ا‬‫مع‬ ‫انف‬‫ا‬‫ص‬ ‫ار‬‫ا‬‫يعتب‬ ‫اه‬‫ا‬‫ألن‬ ‫ام‬‫ا‬‫ذل‬ ‫و‬
Predefined
class

‫تشا‬ ‫كأنام‬ ‫ياتم‬ ‫الناوع‬ ‫هذا‬ ‫م‬ ‫مصفوفة‬ ‫أي‬ ‫فتعريف‬ ‫بالتالي‬ ‫و‬
‫كاائ‬ ‫تق‬
‫صنف‬ ‫م‬
.
‫الـ‬ ‫مفهوم‬
ArrayList
21
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬

‫صنف‬ ‫يمتلم‬ ‫و‬
ArrayList
‫ما‬ ‫يمكنام‬ ‫التاي‬ ‫الادوال‬ ‫ما‬ ‫مجموعاة‬
‫المصفوفة‬ ‫عناصر‬ ‫ما‬ ‫التعامل‬ ‫خاللها‬
,
‫ي‬ ‫فيما‬ ‫موضح‬ ‫بعضها‬
‫لي‬
.
‫لات‬ ‫لب‬
‫ذأتها‬ ‫ص‬
Add()
‫م‬
‫نهايتها‬ ‫في‬ ‫للمصفوفة‬ ‫عناصر‬ ‫إضافة‬ ‫يتم‬ ‫خاللها‬
.
AddRange()
‫يتم‬
‫النوع‬ ‫م‬ ‫أخرا‬ ‫لمصفوفـة‬ ‫مصفوفة‬ ‫إضافة‬ ‫خاللها‬ ‫م‬
ArrayList
‫تضاف‬ ‫و‬
‫لها‬ ‫المضاف‬ ‫المصفوفة‬ ‫نهاية‬ ‫في‬ ‫العناصر‬
.
Clear()
‫العناصر‬ ‫كافة‬ ‫بحذف‬ ‫تسمح‬
‫المصفوفة‬ ‫داخل‬ ‫الموجودة‬
Contains()
‫عدمه‬ ‫م‬ ‫المصفوفة‬ ‫في‬ ‫عنصر‬ ‫وجود‬ ‫لفحص‬ ‫تستخدم‬ ‫دالة‬
‫و‬
‫بالتالي‬ ‫هي‬
‫ت‬
‫القيمة‬ ‫عيد‬
‫الشرطيـة‬
(
T, F
)
CopyTo()
‫نسخ‬ ‫م‬ ‫تمكنم‬ ‫دالة‬
‫مصفوفة‬ ‫عناصر‬ ‫م‬ ‫عدد‬
ArrayList
‫أخرا‬ ‫مصفوفة‬ ‫إلى‬
Insert()
‫تسمح‬
‫لم‬
‫موضا‬ ‫في‬ ‫ما‬ ‫عنصر‬ ‫بإدراج‬
‫المصفوفة‬ ‫داخل‬ ‫محدد‬
‫و‬
‫شرطــ‬ ‫لي‬
‫في‬ ‫ا‬
‫نهايتها‬
‫نكت‬ ‫إلنت‬ ‫ت‬ ‫ب‬ ‫ثت‬ ‫لب‬ ‫فاتخبفاتخبفات‬
,
‫تفنها‬ ‫تك‬ ‫تفعتفأهص‬ ‫لبص‬ ‫لتفزذبتفلت‬ ‫ثت‬ ‫ب‬
How to use Array List?
22
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
1. static void Main(string[] args)
2. {
3. ArrayList names = new ArrayList();
4. int po1 = names.Add("Ali");
5. int po2 = names.Add("hussam");
6. int po3 = names.Add("hassan");
7. int po4 = names.Add("Alaa");
8. int po5 = names.Add("wael");
9. Console.WriteLine();
10. Console.WriteLine(" Position of PO1: " + po1 +
11. " Position of PO2: " + po2 + " Position of PO5: " + po5);
12. Console.WriteLine(" number of names in the ArrayList: " +
names.Count);
13. Console.ReadLine();
14. }
Instance variable in
Array List to return
the number of items
in.
How to use Array List?
23
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
1. static void Main(string[] args)
2. {
3. ArrayList list1 = new ArrayList();
4. list1.Add(40);
5. list1.Add(50);
6. list1.Add(60);
7. list1.Add(70);
8. ArrayList list2 = new ArrayList();
9. list2.Add(80);
10. list2.Add(90);
11. list1.AddRange(list2);
12. Console.WriteLine(" === The elements of list1 are ===");
13. foreach (object x in list1)
14. Console.WriteLine(" "+x);
15. Console.ReadLine();
16. }
How to use Array List?
24
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
1. static void Main(string[] args)
2. {
3. ArrayList list1 = new ArrayList();
4. list1.Add(40);
5. list1.Add(50);
6. list1.Add(60);
7. list1.Add(70);
8. ArrayList list2 = new ArrayList();
9. list2 = list1.GetRange(0, 3);
10. Console.WriteLine();
11. foreach (object x in list2)
12. Console.WriteLine(" "+x);
13. Console.ReadLine();
14. }
How to use Array List?
25
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
1. static void Main(string[] args)
2. {
3. ArrayList list1 = new ArrayList();
4. list1.Add(40);
5. list1.Add(30);
6. list1.Add(10);
7. list1.Add(100);
8. list1.Sort();
9. Console.WriteLine();
10. foreach (object x in list1)
11. Console.WriteLine(" " + x);
12. Console.ReadLine();
13. }
Thank you …
26
‫البيانات‬ ‫تراكيب‬ ‫مساق‬
‫إعداد‬ ‫العلمية‬ ‫المادة‬
/
‫أ‬
.
‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
Remember that: question is the key of knowledge
Ahl Eljanna 
ِ
‫د‬ْ‫ل‬ُْ
‫اْل‬ ُ‫ة‬َّ‫ن‬َ
‫ج‬ ْ
‫َم‬‫أ‬ ٌ
‫ر‬ْ‫ي‬َ
‫خ‬ َ
‫ك‬ِ‫ل‬َ‫ذ‬َ‫أ‬ ْ
‫ل‬ُ‫ق‬
َ
‫ن‬‫و‬ُ
‫ق‬َّ‫ت‬ُ
‫ْم‬‫ل‬‫ا‬ َ
‫د‬ِ
‫ع‬ُ
‫و‬ ِ
‫ِت‬َّ‫ل‬‫ا‬
ْ
‫م‬َُ
‫َل‬ ْ
‫ت‬َ‫ن‬‫ا‬َ
‫ك‬
‫ا‬ً
‫ري‬ِ
‫ص‬َ
‫م‬َ
‫و‬ ً‫اء‬َ
‫ز‬َ
‫ج‬
)::(
َ
‫ش‬َ‫ي‬ ‫ا‬َ
‫م‬ ‫ا‬َ
‫يه‬ِ‫ف‬ ْ
‫م‬َُ
‫َل‬
َ
‫ع‬ َ
‫ن‬‫ا‬َ
‫ك‬ َ
‫ين‬ِ
‫د‬ِ‫ال‬َ
‫خ‬ َ
‫ن‬‫و‬ُ‫اء‬
‫ى‬َ‫ل‬
ً‫ال‬‫و‬ُ‫ئ‬ْ
‫س‬َ
‫م‬ ‫ا‬ً
‫د‬ْ‫ع‬َ
‫و‬ َ
‫ك‬ِِّ‫ب‬َ
‫ر‬
27
‫ق‬ ‫سورة‬

More Related Content

Similar to Chapter 2: array and array list data structure (20)

PPTX
Visual programming in c# part1
batoolhisham
 
PPTX
المؤشرات .pptx
ssuserfcf1ac
 
PDF
java programming language - Lecture7.pdf
fatmaolowa
 
PPTX
pythonForKids_LearnAboutProgramming.pptx
SallyGhosn
 
PDF
1 introdcution to ds 2-2019 abstract stack and queue
ِِِAhmed R. A. Shamsan
 
PDF
أسئلة وإجابتها علي منهج الصف الثالث الاعدادي فصل دراسي ثاني
Hanaa Ahmed
 
PDF
Queues and linked lists
ِِِAhmed R. A. Shamsan
 
PDF
مواضيع متقدمة في JavaScript
Molham Al-Maleh
 
PDF
نموذج تحضير الإكسيل الصف الثانى الإعدادى
Hanaa Ahmed
 
PDF
نماذج أسئلة مراجعة للصف الثالث الإعدادي
Hanaa Ahmed
 
PDF
2 variables and constants
Bint EL-maghrabi
 
PDF
Computer school-books-3rd-preparatory-2nd-term-khawagah-2019
khawagah
 
PPTX
ARRAYS
jdbc371632
 
PDF
التكليف الثامن
mahmoudsaker
 
PDF
Matlab 08 - Loops in MATLAB Programming and Applications
Hemn Mela Karim Barznji
 
PPTX
البرمجة بلغة الفيجوال بيسك
Med Habib Rammeh
 
PPT
python Elementary Programming algorithem
MohammadMoreb
 
PPTX
5 es
Mahmood019
 
PDF
Programming 1 full
Mhd Ghayth Alsawaf
 
PDF
Luct7.pdf
kreemalshami
 
Visual programming in c# part1
batoolhisham
 
المؤشرات .pptx
ssuserfcf1ac
 
java programming language - Lecture7.pdf
fatmaolowa
 
pythonForKids_LearnAboutProgramming.pptx
SallyGhosn
 
1 introdcution to ds 2-2019 abstract stack and queue
ِِِAhmed R. A. Shamsan
 
أسئلة وإجابتها علي منهج الصف الثالث الاعدادي فصل دراسي ثاني
Hanaa Ahmed
 
Queues and linked lists
ِِِAhmed R. A. Shamsan
 
مواضيع متقدمة في JavaScript
Molham Al-Maleh
 
نموذج تحضير الإكسيل الصف الثانى الإعدادى
Hanaa Ahmed
 
نماذج أسئلة مراجعة للصف الثالث الإعدادي
Hanaa Ahmed
 
2 variables and constants
Bint EL-maghrabi
 
Computer school-books-3rd-preparatory-2nd-term-khawagah-2019
khawagah
 
ARRAYS
jdbc371632
 
التكليف الثامن
mahmoudsaker
 
Matlab 08 - Loops in MATLAB Programming and Applications
Hemn Mela Karim Barznji
 
البرمجة بلغة الفيجوال بيسك
Med Habib Rammeh
 
python Elementary Programming algorithem
MohammadMoreb
 
Programming 1 full
Mhd Ghayth Alsawaf
 
Luct7.pdf
kreemalshami
 

More from Mahmoud Alfarra (20)

PPT
Computer Programming, Loops using Java - part 2
Mahmoud Alfarra
 
PPT
Computer Programming, Loops using Java
Mahmoud Alfarra
 
PPT
Chapter 10: hashing data structure
Mahmoud Alfarra
 
PPT
Chapter9 graph data structure
Mahmoud Alfarra
 
PPT
Chapter 8: tree data structure
Mahmoud Alfarra
 
PPT
Chapter 7: Queue data structure
Mahmoud Alfarra
 
PPT
Chapter 6: stack data structure
Mahmoud Alfarra
 
PPT
Chapter 5: linked list data structure
Mahmoud Alfarra
 
PPT
Chapter 4: basic search algorithms data structure
Mahmoud Alfarra
 
PPT
Chapter 3: basic sorting algorithms data structure
Mahmoud Alfarra
 
PPT
Chapter1 intro toprincipleofc#_datastructure_b_cs
Mahmoud Alfarra
 
PPT
Chapter 0: introduction to data structure
Mahmoud Alfarra
 
PPTX
3 classification
Mahmoud Alfarra
 
PPT
8 programming-using-java decision-making practices 20102011
Mahmoud Alfarra
 
PPT
7 programming-using-java decision-making220102011
Mahmoud Alfarra
 
PPT
6 programming-using-java decision-making20102011-
Mahmoud Alfarra
 
PPT
5 programming-using-java intro-tooop20102011
Mahmoud Alfarra
 
PPT
4 programming-using-java intro-tojava20102011
Mahmoud Alfarra
 
PPT
3 programming-using-java introduction-to computer
Mahmoud Alfarra
 
PPT
2 programming-using-java how to built application
Mahmoud Alfarra
 
Computer Programming, Loops using Java - part 2
Mahmoud Alfarra
 
Computer Programming, Loops using Java
Mahmoud Alfarra
 
Chapter 10: hashing data structure
Mahmoud Alfarra
 
Chapter9 graph data structure
Mahmoud Alfarra
 
Chapter 8: tree data structure
Mahmoud Alfarra
 
Chapter 7: Queue data structure
Mahmoud Alfarra
 
Chapter 6: stack data structure
Mahmoud Alfarra
 
Chapter 5: linked list data structure
Mahmoud Alfarra
 
Chapter 4: basic search algorithms data structure
Mahmoud Alfarra
 
Chapter 3: basic sorting algorithms data structure
Mahmoud Alfarra
 
Chapter1 intro toprincipleofc#_datastructure_b_cs
Mahmoud Alfarra
 
Chapter 0: introduction to data structure
Mahmoud Alfarra
 
3 classification
Mahmoud Alfarra
 
8 programming-using-java decision-making practices 20102011
Mahmoud Alfarra
 
7 programming-using-java decision-making220102011
Mahmoud Alfarra
 
6 programming-using-java decision-making20102011-
Mahmoud Alfarra
 
5 programming-using-java intro-tooop20102011
Mahmoud Alfarra
 
4 programming-using-java intro-tojava20102011
Mahmoud Alfarra
 
3 programming-using-java introduction-to computer
Mahmoud Alfarra
 
2 programming-using-java how to built application
Mahmoud Alfarra
 
Ad

Recently uploaded (14)

PPTX
باللغة العربية فن و تقنيات وفؤائد الاعتذار .pptx
HadjAbdelmalek
 
PPTX
مغادرة الوظيفة.pptx اخلاقيات المهنة 1111111111111111111111
ikramelmouatiallah
 
PPTX
الاستفادة من التكنولوجيا فى حل المشكلات الحياتية ) .pptx
faydafh
 
PPT
ljhwy_wltnmy_lmstdm.pptlkjnnvcdfghjk,nbgty
sheinsaoudi
 
PDF
نموذج خطة زمنية لبرنامج التدريب على مهارات أخصائي التوجيه والإرشاد الطلابي وا...
ssuser70131a
 
PDF
البرنامج التدريبي بناء خطة المدرسة
Nora Abdullah ALKHARASHI
 
PDF
التدريب على مهارات أخصائي التوجيه والإرشاد الطلابي والأسري.pdf
ssuser70131a
 
PDF
Certified Maintenance & Reliability Professional (CMRP)الاعداد لاختبار.pdf
maymohamed40940
 
PPTX
academic writing language لغة الكتابة البحثية.pptx
HussamALHOMSY
 
PPTX
بحوث الفعل 0دعم وتواصل 0بداية جديدة (2).pptx
faydafh
 
PDF
البرنامج التدريبي طرق دافعية الطلاب للتعلم
Nora Abdullah ALKHARASHI
 
PPTX
Saint Thomas, apostle, missionary of India (Arabic).pptx
Martin M Flynn
 
PPT
رسالة التعاليم.ppthfyuuuutytfghgutdsrsrsrse
KadarOmar
 
PPTX
وادارة الاجتماعات فن ادارة العلاقات العامة .pptx
HadjAbdelmalek
 
باللغة العربية فن و تقنيات وفؤائد الاعتذار .pptx
HadjAbdelmalek
 
مغادرة الوظيفة.pptx اخلاقيات المهنة 1111111111111111111111
ikramelmouatiallah
 
الاستفادة من التكنولوجيا فى حل المشكلات الحياتية ) .pptx
faydafh
 
ljhwy_wltnmy_lmstdm.pptlkjnnvcdfghjk,nbgty
sheinsaoudi
 
نموذج خطة زمنية لبرنامج التدريب على مهارات أخصائي التوجيه والإرشاد الطلابي وا...
ssuser70131a
 
البرنامج التدريبي بناء خطة المدرسة
Nora Abdullah ALKHARASHI
 
التدريب على مهارات أخصائي التوجيه والإرشاد الطلابي والأسري.pdf
ssuser70131a
 
Certified Maintenance & Reliability Professional (CMRP)الاعداد لاختبار.pdf
maymohamed40940
 
academic writing language لغة الكتابة البحثية.pptx
HussamALHOMSY
 
بحوث الفعل 0دعم وتواصل 0بداية جديدة (2).pptx
faydafh
 
البرنامج التدريبي طرق دافعية الطلاب للتعلم
Nora Abdullah ALKHARASHI
 
Saint Thomas, apostle, missionary of India (Arabic).pptx
Martin M Flynn
 
رسالة التعاليم.ppthfyuuuutytfghgutdsrsrsrse
KadarOmar
 
وادارة الاجتماعات فن ادارة العلاقات العامة .pptx
HadjAbdelmalek
 
Ad

Chapter 2: array and array list data structure

  • 1. DATA STRUCTURE Chapter 2: Array & Array List Prepared & Presented by Mr. Mahmoud R. Alfarra 2011-2012 College of Science & Technology Dep. Of Computer Science & IT BCs of Information Technology http://mfarra.cst.ps
  • 2. Out Line  Print the elements of Arrays  Storing data in Arrays  Swap two elements in array.  How to delete an element from array?  How to insert a new element in array  The concept of complexity  What is Array List? How to use? 2 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
  • 3. Array data structure 3 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
  • 4. Array data structure 4 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬
  • 5. Print the elements of 1-D Arrays 5 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬ 1. static void Main(string[] args) 2. { 3. string[] names = { "Ali", "Mahmoud", "Hussam", "Ala" }; 4. for (int i = 0; i < names.Length; i++) 5. Console.WriteLine("The next name is "+names[i]); 6. Console.Read(); 7. }
  • 6. Print the elements of 2-D Arrays 6 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬ 1. static void Main(string[] args) 2. { 3. string[,] names = { {"Ali", "Mahmoud"}, {"Hussam", "Ala"} }; 4. for (int i = 0; i < names.GetLength(0); i++) 5. Console.WriteLine("The next name is " + names[i,0]+" “ + names[i,1]); 6. Console.Read(); 7. }
  • 7. Storing data in 1-D Arrays 7 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬ 1. static void Main(string[] args) 2. { 3. int[] id = new int[5]; 4. for (int i = 0; i < 5; i++) 5. id[i] =int.Parse(Console.ReadLine()); 6. Console.WriteLine("==== The numbers in Array are ====="); 7. for (int i = 0; i < 5; i++) 8. Console.WriteLine(" Next Number is " + id[i]); 9. Console.ReadLine(); 10. }
  • 8. Storing data in 2-D Arrays 8 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬ 1. static void Main(string[] args) 2. { 3. string[,] names = new string[2, 3]; 4. for (int i = 0; i < 2; i++) 5. for (int j = 0; j < 3; j++) 6. names[i, j] = Console.ReadLine(); 7. for (int i = 0; i < 2; i++) 8. { 9. for (int j = 0; j < 3; j++) 10. Console.Write(names[i, j]); 11. Console.WriteLine(); 12. } 13. Console.Read(); 14. }
  • 9. Swap two elements in 1-D array 9 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬ 1. static void Main(string[] args) 2. { 3. int[] numbers = { 3, 5, 7, 23, 56, 12 }; 4. int x; 5. x = numbers[0]; 6. numbers[0] = numbers[1]; 7. numbers[1] = x; 8. Console.WriteLine(" "); 9. Console.WriteLine(" The elements of array after swap"); 10. for (int i = 0; i < numbers.Length; i++) 11. Console.WriteLine(" "+numbers[i]); 12. Console.Read(); 13. } Try to implement the above example with 2-D array
  • 10. How to delete an element from array? 10 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬ 2 7 80 88 90 99 9 12 15 23 30 45 70 77 1 2 3 4 5 6 7 8 9 10 11 12 13 array 0 15 14 To delete the 5’th cell 2 7 80 88 90 99 9 12 15 23 30 45 15 77 1 2 3 4 5 6 7 8 9 10 11 12 13 array 0 14 1 2 3 4 5 6 7 8 9 9 array 0 2 7 80 88 90 99 9 12 23 30 45 15 77 1 2 3 4 5 6 7 8 9 10 11 12 13 99 14 Null
  • 11. How to delete an element from array? 11 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬ 1. static void Main(string[] args) 2. { 3. int[] id = { 10, 12, 11, 45 }; 4. // to delete the value 12 5. int i; 6. for ( i = 0; i < id.Length-1; i++) 7. { 8. if (id[i] == 12) 9. { 10. break; 11. } } 12. for (int j =i ; j < id.Length-1; j++) 13. id[j] = id[j + 1]; 14. for (int k = 0; k < id.Length; k++) 15. Console.WriteLine(" "+id[k]); 16. Console.Read(); }
  • 12. How to delete an element from array? 12 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬ 1. static void Main(string[] args) 2. { 3. int[] id = { 10, 12, 11, 45 }; 4. // to delete the value of index 2 5. for (int i =2 ; i < id.Length-1; i++) 6. id[i] = id[i + 1]; 7. for (int k = 0; k < id.Length; k++) 8. Console.WriteLine(" "+id[k]); 9. Console.Read(); 10. }
  • 13. How to insert a new element in array? 13 2 7 80 88 90 99 9 12 15 23 30 45 70 77 1 2 3 4 5 6 7 8 9 10 11 12 13 array 0 13 14 To insert value 2 7 80 88 90 99 9 12 15 23 30 45 70 77 1 2 3 4 5 6 7 8 9 10 11 12 13 array 0 14 13 ‫تصاعدي‬ ‫بشكل‬ ‫القيمة‬ ‫حسب‬ ‫العناصر‬ ‫مرتبـة‬ ‫مصفوفة‬ ‫في‬ ‫عنصر‬ ‫إضافة‬ ‫طريقة‬ ‫يوضح‬ ‫العلوي‬ ‫الشكل‬
  • 14. How to insert a new element in array? 14 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬ 1. static void Main(string[] args) 2. { 3. int[] salary = new int [6]; 4. salary[0] = 1200; 5. salary[1] = 2000; 6. salary[2] = 1000; 7. salary[3] = 3210; 8. salary[4] = 4310; 9. // to add value 3000 in the position 3 10. for (int i = salary.Length - 1; i > 3; i--) 11. salary[i] = salary[i - 1]; 12. salary[3] = 3000; 13. Console.WriteLine(" === Values of Array after inserting === "); 14. for (int j = 0; j < salary.Length; j++) 15. Console.WriteLine(" Value: "+salary[j]); 16. Console.Read(); 17. }
  • 15. How to insert a new element in array? 15 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬ 1. static void Main(string[] args) { 2. int[] salary = new int[6]; 3. salary[0] = 100; 4. salary[1] = 200; 5. salary[2] = 300; 6. salary[3] = 1210; 7. salary[4] = 2310; 8. // To add value 250 9. int i; 10. for (i = 0; i < salary.Length; i++) 11. if (salary[i] > 250) 12. break; 13. for (int j = salary.Length - 1; j > i; j--) 14. salary[j] = salary[j - 1]; 15. salary[i] = 250; 16. Console.WriteLine(" "); 17. Console.WriteLine(" === Values of Array after inserting === "); 18. for (int j = 0; j < salary.Length; j++) 19. Console.WriteLine(" Value: " + salary[j]); 20. Console.Read(); } ‫ت‬ ‫تددد‬ ‫ذاتي‬ ‫تدددب‬ : ‫ت‬ ‫قددد‬ ‫ت‬ ‫ددددددددد‬‫د‬ ‫ت‬ ‫دددددددددبذ‬‫د‬‫بالتع‬ ‫ت‬ ‫دددا‬ ‫ت‬ ‫دد‬‫د‬‫ددافيتح‬‫د‬‫ن‬ ‫لب‬ ‫دد‬ ‫نا‬ ‫كانددكتكاحددات‬ ‫ت‬ ‫دددد‬‫د‬ ‫ددددأصحات‬‫د‬ ‫لف‬ ‫بت‬ ‫لفددد‬ ‫لةذفدددات‬ ‫فدددلت‬ ‫إبخالها‬
  • 16. ‫الخوارزميات‬ ‫دراسـة‬ ‫مفهوم‬ 16 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬  ‫ما‬ ‫الخوارزمياات‬ ‫هذه‬ ‫تحتاجه‬ ‫ما‬ ‫دراسـة‬ ‫هو‬ ‫الخوارزميات‬ ‫دراسة‬ ‫بمفهوم‬ ‫يقصد‬ ‫للحل‬ ‫للوصول‬ ‫تخزي‬ ‫مساحة‬ ‫و‬ ‫وقت‬ , ‫باسام‬ ‫العلام‬ ‫هاذا‬ ‫يعرف‬ ‫و‬ Complexity of Algorithms  ‫الوقت‬ ( ‫خطوات‬ ‫عدد‬ ‫على‬ ‫يعتمد‬ )  ‫تخزي‬ ‫مساحة‬ ( ‫ال‬ ‫الذاكرة‬ ‫في‬ ‫لتخزينها‬ ‫نحتاج‬ ‫التي‬ ‫المعلومات‬ ‫عدد‬ ‫على‬ ‫يعتمد‬ ‫عشوائية‬ )  ‫فمثـال‬ : ‫المصافوفة‬ ‫فاي‬ ‫جدياد‬ ‫عنصار‬ ‫تخازي‬ ‫أردناا‬ ‫إذا‬ , ‫ل‬ ‫نحتااج‬ ‫هناا‬ ‫فانح‬ ‫حسااب‬ ‫التخازي‬ ‫لعملياة‬ ‫بااضاافة‬ ‫لتحريكهاا‬ ‫نحتااج‬ ‫التي‬ ‫العناصر‬ ‫عدد‬ , ‫لنحسا‬ ‫و‬ ‫الوقات‬ ‫ب‬ ‫المساحة‬ . n log n exp (n)  ‫الوقاات‬ ‫اد‬‫ا‬‫تعقي‬ ‫ادا‬‫ا‬‫لم‬ ‫عامااة‬ ‫مقااادير‬ ‫اام‬‫ا‬‫هن‬ ‫و‬ ‫المستخدم‬ , ‫المقاب‬ ‫بالشكل‬ ‫موضحة‬ ‫هي‬ ‫و‬ ‫ل‬ .
  • 17. ‫الخوارزميات‬ ‫دراسـة‬ ‫مفهوم‬ 17 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬  ‫اااارف‬‫ا‬‫يع‬ ‫و‬ Time complexity ‫ااااام‬‫ا‬‫البرن‬ ‫ااااذ‬‫ا‬‫لتنفي‬ ‫ااااالزم‬‫ا‬‫ال‬ ‫اااات‬‫ا‬‫الوق‬ ‫ااااه‬‫ا‬‫بأن‬ ( ‫الخوارزمية‬ ) ‫المدخالت‬ ‫بعدد‬ ‫مقارنة‬ ( ‫المصفوفة‬ ‫عناصر‬ ‫عدد‬ ‫مثال‬ .)  ‫يعرف‬ ‫و‬ Space complexity ‫البرنا‬ ‫لتنفياذ‬ ‫الالزماة‬ ‫التخزي‬ ‫مساحة‬ ‫بأنها‬ ‫ام‬ ‫المدخالت‬ ‫بعدد‬ ‫مقارنة‬ .  ‫بالمدخالت‬ ‫مرتبطـة‬ ‫أنها‬ ‫طالما‬ ‫و‬ , ‫ت‬ ‫الخوارزمياـة‬ ‫تعقياد‬ ‫درجاة‬ َّ ‫أ‬ ‫فستجد‬ ‫بماا‬ ‫قاا‬ ‫بـ‬ ‫يعرف‬ O(n) ‫أو‬ Big o notation َّ ‫بأ‬ ‫علما‬ n ‫مارات‬ ‫عادد‬ ‫بهاا‬ ‫يقصاد‬ ‫هناا‬ ‫التخزي‬ ‫أو‬ ‫المعالجة‬ , ‫قيمة‬ ‫قلة‬ ‫كلما‬ ‫و‬ n ‫ما‬ ‫أفضال‬ ‫الخوارزمياـة‬ ‫هاذه‬ ‫كانات‬ ‫كلماا‬ ‫التخزي‬ ‫و‬ ‫الوقت‬ ‫حيث‬ . n log n exp (n) ‫ادتهاتبعن‬ ‫تب‬ ‫تذدت‬ ‫لتد‬ ‫ت‬ ‫دص‬ ‫لع‬ ‫تفلت‬ ‫لفأهص‬ ‫ت‬ ‫هي‬ ‫اذدات‬ ‫شبذبةتفدلت‬ ‫د‬ ‫فتخ‬ ‫اادصات‬ ‫ل‬ ‫ت‬ ‫دص‬ ‫ص‬ ‫د‬ ‫ف‬ ‫ددن‬‫د‬‫ل‬ , ‫دد‬‫د‬ ‫ددبصلت‬‫د‬‫تذعتف‬ ‫دد‬‫د‬‫ه‬ ‫ددبتتجع‬‫د‬‫دداتق‬‫د‬‫أللتنتذجته‬ ‫ى‬ ‫خ‬ ‫زفذـاتبصلت‬ ‫خص‬
  • 18. Array List 18 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬  ‫اادارها‬‫ا‬‫إص‬ ‫ااي‬‫ا‬‫ف‬ ‫ااـة‬‫ا‬‫المصفوف‬ ‫ااا‬‫ا‬‫م‬ ‫ااا‬‫ا‬‫تعاملن‬ ‫ااالل‬‫ا‬‫خ‬ ‫اات‬‫ا‬‫انتبه‬ ‫اام‬‫ا‬‫أن‬ ‫اام‬‫ا‬‫الش‬ ‫الب‬ ‫عمال‬ ‫خالل‬ ‫زيادته‬ ‫يمك‬ ‫ال‬ ‫و‬ ‫ثابت‬ ‫حجمها‬ َّ ‫أ‬ ‫التقليدي‬ ‫رناام‬ , ‫و‬ ‫البرام‬ ‫م‬ ‫لكثير‬ ‫مناسبة‬ ‫غير‬ ‫جعلها‬ ‫األمر‬ ‫هذا‬ .  ‫يعارف‬ ‫ماا‬ ‫اساتخدام‬ ‫المشاكلة‬ ‫لهاذه‬ ‫الحلاول‬ ‫م‬ Dynamic Data Structure ‫اام‬ ‫الن‬ ‫اذ‬‫ا‬‫تنفي‬ ‫خاالل‬ ‫زيادتاه‬ ‫ا‬‫ا‬‫يمك‬ ‫الحجام‬ ‫حياث‬ , ‫ا‬‫ا‬‫م‬ ‫و‬ ‫التراكيب‬ ‫هذه‬ :  Stack  Queue  Array List
  • 19. ‫الـ‬ ‫مفهوم‬ ArrayList 19 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬  ‫الـ‬ ‫تعتمد‬ ‫و‬ ArrayList ‫قدره‬ ‫مبدئي‬ ‫حجم‬ ‫على‬ 4 ‫عناصار‬ , ‫بمجارد‬ ‫إضاافة‬ ‫تلقاائي‬ ‫يتم‬ ‫له‬ ‫الوصول‬ 4 ‫هكاذا‬ ‫و‬ ‫جديادة‬ ‫عناصار‬ , ‫بالتاالي‬ ‫و‬ ‫الحجم‬ ‫انتهاء‬ ‫لخطأ‬ ‫وجود‬ ‫فال‬ , ( ‫الخا‬ ‫ما‬ ‫أكبر‬ ‫عدد‬ ‫طلب‬ ‫يمكننا‬ ‫ناات‬ ‫العمل‬ ‫بداية‬ ‫م‬ .)  ‫اـ‬‫ا‬‫ال‬ ‫تعتبار‬ ArrayList ‫اي‬‫ا‬‫ف‬ ‫اـا‬‫ا‬‫سلف‬ ‫اـة‬‫ا‬‫المبني‬ ‫اات‬‫ا‬‫البيان‬ ‫اب‬‫ا‬‫تراكي‬ ‫ا‬‫ا‬‫م‬ ‫اة‬‫ا‬‫لغ‬ ‫اارب‬‫ا‬‫ش‬ ‫اي‬‫ا‬‫س‬ , ‫المك‬ ‫امي‬‫ا‬‫لتض‬ ‫ااج‬‫ا‬‫نحت‬ ‫اا‬‫ا‬‫معه‬ ‫ال‬‫ا‬‫التعام‬ ‫اا‬‫ا‬‫يمكنن‬ ‫اي‬‫ا‬‫لك‬ ‫و‬ ‫اـة‬‫ا‬‫تب‬ Collections using System.Collections;
  • 20. ‫الـ‬ ‫مفهوم‬ ArrayList 20 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬  ‫اسمها‬ ‫مصفوفة‬ ‫تعريف‬ ‫يتم‬ ‫و‬ names ‫يلي‬ ‫كما‬ ‫النوع‬ ‫هذا‬ ‫م‬ : ArrayList names = new ArrayList();  ‫الـ‬ ‫تعريف‬ ‫في‬ ‫تالح‬ ‫كما‬ ArrayList ‫العناصر‬ ‫عدد‬ ‫نحدد‬ ‫لم‬ , ‫لم‬ ‫و‬ ‫اتخدم‬‫ا‬‫نس‬ [ ] ‫الفا‬‫ا‬‫س‬ ‫ارف‬‫ا‬‫مع‬ ‫انف‬‫ا‬‫ص‬ ‫ار‬‫ا‬‫يعتب‬ ‫اه‬‫ا‬‫ألن‬ ‫ام‬‫ا‬‫ذل‬ ‫و‬ Predefined class  ‫تشا‬ ‫كأنام‬ ‫ياتم‬ ‫الناوع‬ ‫هذا‬ ‫م‬ ‫مصفوفة‬ ‫أي‬ ‫فتعريف‬ ‫بالتالي‬ ‫و‬ ‫كاائ‬ ‫تق‬ ‫صنف‬ ‫م‬ .
  • 21. ‫الـ‬ ‫مفهوم‬ ArrayList 21 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬  ‫صنف‬ ‫يمتلم‬ ‫و‬ ArrayList ‫ما‬ ‫يمكنام‬ ‫التاي‬ ‫الادوال‬ ‫ما‬ ‫مجموعاة‬ ‫المصفوفة‬ ‫عناصر‬ ‫ما‬ ‫التعامل‬ ‫خاللها‬ , ‫ي‬ ‫فيما‬ ‫موضح‬ ‫بعضها‬ ‫لي‬ . ‫لات‬ ‫لب‬ ‫ذأتها‬ ‫ص‬ Add() ‫م‬ ‫نهايتها‬ ‫في‬ ‫للمصفوفة‬ ‫عناصر‬ ‫إضافة‬ ‫يتم‬ ‫خاللها‬ . AddRange() ‫يتم‬ ‫النوع‬ ‫م‬ ‫أخرا‬ ‫لمصفوفـة‬ ‫مصفوفة‬ ‫إضافة‬ ‫خاللها‬ ‫م‬ ArrayList ‫تضاف‬ ‫و‬ ‫لها‬ ‫المضاف‬ ‫المصفوفة‬ ‫نهاية‬ ‫في‬ ‫العناصر‬ . Clear() ‫العناصر‬ ‫كافة‬ ‫بحذف‬ ‫تسمح‬ ‫المصفوفة‬ ‫داخل‬ ‫الموجودة‬ Contains() ‫عدمه‬ ‫م‬ ‫المصفوفة‬ ‫في‬ ‫عنصر‬ ‫وجود‬ ‫لفحص‬ ‫تستخدم‬ ‫دالة‬ ‫و‬ ‫بالتالي‬ ‫هي‬ ‫ت‬ ‫القيمة‬ ‫عيد‬ ‫الشرطيـة‬ ( T, F ) CopyTo() ‫نسخ‬ ‫م‬ ‫تمكنم‬ ‫دالة‬ ‫مصفوفة‬ ‫عناصر‬ ‫م‬ ‫عدد‬ ArrayList ‫أخرا‬ ‫مصفوفة‬ ‫إلى‬ Insert() ‫تسمح‬ ‫لم‬ ‫موضا‬ ‫في‬ ‫ما‬ ‫عنصر‬ ‫بإدراج‬ ‫المصفوفة‬ ‫داخل‬ ‫محدد‬ ‫و‬ ‫شرطــ‬ ‫لي‬ ‫في‬ ‫ا‬ ‫نهايتها‬ ‫نكت‬ ‫إلنت‬ ‫ت‬ ‫ب‬ ‫ثت‬ ‫لب‬ ‫فاتخبفاتخبفات‬ , ‫تفنها‬ ‫تك‬ ‫تفعتفأهص‬ ‫لبص‬ ‫لتفزذبتفلت‬ ‫ثت‬ ‫ب‬
  • 22. How to use Array List? 22 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬ 1. static void Main(string[] args) 2. { 3. ArrayList names = new ArrayList(); 4. int po1 = names.Add("Ali"); 5. int po2 = names.Add("hussam"); 6. int po3 = names.Add("hassan"); 7. int po4 = names.Add("Alaa"); 8. int po5 = names.Add("wael"); 9. Console.WriteLine(); 10. Console.WriteLine(" Position of PO1: " + po1 + 11. " Position of PO2: " + po2 + " Position of PO5: " + po5); 12. Console.WriteLine(" number of names in the ArrayList: " + names.Count); 13. Console.ReadLine(); 14. } Instance variable in Array List to return the number of items in.
  • 23. How to use Array List? 23 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬ 1. static void Main(string[] args) 2. { 3. ArrayList list1 = new ArrayList(); 4. list1.Add(40); 5. list1.Add(50); 6. list1.Add(60); 7. list1.Add(70); 8. ArrayList list2 = new ArrayList(); 9. list2.Add(80); 10. list2.Add(90); 11. list1.AddRange(list2); 12. Console.WriteLine(" === The elements of list1 are ==="); 13. foreach (object x in list1) 14. Console.WriteLine(" "+x); 15. Console.ReadLine(); 16. }
  • 24. How to use Array List? 24 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬ 1. static void Main(string[] args) 2. { 3. ArrayList list1 = new ArrayList(); 4. list1.Add(40); 5. list1.Add(50); 6. list1.Add(60); 7. list1.Add(70); 8. ArrayList list2 = new ArrayList(); 9. list2 = list1.GetRange(0, 3); 10. Console.WriteLine(); 11. foreach (object x in list2) 12. Console.WriteLine(" "+x); 13. Console.ReadLine(); 14. }
  • 25. How to use Array List? 25 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬ 1. static void Main(string[] args) 2. { 3. ArrayList list1 = new ArrayList(); 4. list1.Add(40); 5. list1.Add(30); 6. list1.Add(10); 7. list1.Add(100); 8. list1.Sort(); 9. Console.WriteLine(); 10. foreach (object x in list1) 11. Console.WriteLine(" " + x); 12. Console.ReadLine(); 13. }
  • 26. Thank you … 26 ‫البيانات‬ ‫تراكيب‬ ‫مساق‬ ‫إعداد‬ ‫العلمية‬ ‫المادة‬ / ‫أ‬ . ‫ا‬ َّ‫الفــر‬ ‫رفيق‬ ‫محمود‬ Remember that: question is the key of knowledge
  • 27. Ahl Eljanna  ِ ‫د‬ْ‫ل‬ُْ ‫اْل‬ ُ‫ة‬َّ‫ن‬َ ‫ج‬ ْ ‫َم‬‫أ‬ ٌ ‫ر‬ْ‫ي‬َ ‫خ‬ َ ‫ك‬ِ‫ل‬َ‫ذ‬َ‫أ‬ ْ ‫ل‬ُ‫ق‬ َ ‫ن‬‫و‬ُ ‫ق‬َّ‫ت‬ُ ‫ْم‬‫ل‬‫ا‬ َ ‫د‬ِ ‫ع‬ُ ‫و‬ ِ ‫ِت‬َّ‫ل‬‫ا‬ ْ ‫م‬َُ ‫َل‬ ْ ‫ت‬َ‫ن‬‫ا‬َ ‫ك‬ ‫ا‬ً ‫ري‬ِ ‫ص‬َ ‫م‬َ ‫و‬ ً‫اء‬َ ‫ز‬َ ‫ج‬ )::( َ ‫ش‬َ‫ي‬ ‫ا‬َ ‫م‬ ‫ا‬َ ‫يه‬ِ‫ف‬ ْ ‫م‬َُ ‫َل‬ َ ‫ع‬ َ ‫ن‬‫ا‬َ ‫ك‬ َ ‫ين‬ِ ‫د‬ِ‫ال‬َ ‫خ‬ َ ‫ن‬‫و‬ُ‫اء‬ ‫ى‬َ‫ل‬ ً‫ال‬‫و‬ُ‫ئ‬ْ ‫س‬َ ‫م‬ ‫ا‬ً ‫د‬ْ‫ع‬َ ‫و‬ َ ‫ك‬ِِّ‫ب‬َ ‫ر‬ 27 ‫ق‬ ‫سورة‬