39
ات ان ي ب ل ا ب ي ك را ت اَ ّ ر لف ا ق ي ف ود ر م ح م. % / ا ساق م ل ا مدرسا اَ ّ ر لف ا ق ي ف ود ر م ح م. % / ا ساق م ل ا مدرسا ومات ل ع م ل ا ا ي ج و ل و ي ك ن و وت س حا ل وم ا ل ع م س ف ات ان ي ب ل واعد ا ق و ات> ي ج م ر لب وم ا ل ن ص د ص خ تاد عدH ا ة ي م ل ع ل ا مادة ل ا اَ ّ ر لف ا ق ي ف ود ر م ح م. % اhttp://mfarra.cst.ps 2010-2011 ة ي ن اP ي ل ا وحدة ل ا عاد ب% الأ ة ي% ن ا يV ن و W ة حادي% ا ات وف ف ص م ل ا

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

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

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

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

2010-2011

الثانيــة الوحدةاألبعــاد ثنائيــة و أحاديـة المصفوفات

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

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

البيانات بتراكيب المقصود البيانات تراكيب تعلم من الهدف المصفوفة عناصر طباعة المصفوفـة في معلومات تخزين المصفوفات في عناصر استبدال تأثير دون المصفوفة من عنصر حذف تأثير دون عنصر إضافة الخوارزميات دراسة مفهوم الـ مع ArrayListالتعامل

2

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

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

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

السوق دخل لمن الذكر

3

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

ال إله إال الله وحده ال شريك له، له الملك وله الحمد يحيي ويميت وهو حي ال يموت بيده

الخير وهو على كل شيء قدير

ال إله إال الله وحده ال شريك له، له الملك وله الحمد يحيي ويميت وهو حي ال يموت بيده

الخير وهو على كل شيء قدير

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

قدير " شيء كل ألف على عنه ومحا حسنة ألف ألف له الله كتب. درجة الف ألف له ورفع سيئة حسنه ] ألف

األلباني[

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

؟ البيانات بتراكيب المقصود

أو البيانات عناصر من كبير منطقي بناء هيكوحدة تعامل البيانات عناصر من منظمة مجموعات

. السجالت أو المصفوفات مثل واحدة، مثل محددة تطبيقات بناء تسهيل أجل من تستخدم

أو زبائن معلومات تخزين أو طلبة معلومات تخزين , و ما مستند لبيانات معالجة أو الشراء و للبيع طلبات

. ذلك غير

4

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

البيانات تراكيب أنواع5

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

منها تراكيبقسم تن كل يناظر أنواع عدة إلى البياناتااللكترونية والمعالجة البرامج تصميم في r خاصا r و أسلوبا

هي: خطية 1. بيانات في: هياكل متجاورة البيانات تخزين يتم فيها و

المترابطة السالسل و المكدسات و المصفوفات مثل الذاكرة. ذلك غير و

شجرية 2. بيانات تماثل: هياكل بصورة البيانات تخزين يتم فيها و rبناء معلومات تتباعد و معلومات تتجاور حيث األشجار تركيبة

بـ يعرف ما ذلك مثال و محددة منطقية بيانات .Treeعلى

شبكية 3. بيانات هنا : هياكل العناصر أن إال الشجرية تشابه هي وما هو و العلوي المستوى من عنصر من أكثر مع ترتبط قد

بـ Graphيعرف

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

البيانات؟ تراكيب تعلم من الهدف6

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

أساسيـة الغير العلوم من هو البيانات تراكيب علم , البرمجيات تطوير يمكنك بمعنى البرمجـة عالم في

!! , لكن و له الحاجة دون زيادة بهدف البيانات تراكيب لعلم الحاجة ظهرت

, تقليل و التنفيذ سرعة حيث من البرمجيات جودة . المستخدمة الذاكرة كمية

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

المصفوفة؟ عناصر مع التعامل7

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

تعتبر الثنائيـة أو األحاديـة rسواء المصفوفة أن% بما ) يزيد ) المتجاورة المتغيرات العناصر من مجموعة

هو ثابت بعدد قبلها التي عن الواحدة فإن 1عنوانخالل من سهال سيكون العناصر هذه مع التعاملالقيام ثم للعناصر للوصول التكرارات استخدام , طباعة سواء بها القيام في نرغب التي بالعملية

, , ذلك, غير و حذف ترتيب بحث تخزين

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

المصفوفة؟ عناصر طباعة8

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

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. }

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. }

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

المصفوفة؟ عناصر طباعة9

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

– معرفة عند المصفوفة لتعريف األخرى الطرق من : - يلي كما سلفا ,"string[] names = { "Aliعناصر

"Mahmoud", "Hussam", "Ala" }; يتعرف الحالة هذه في و. ضمني بشكل المصفوفة عناصر عدد على المترجم

مع للتعامل استخدامها يكثر التي الدوال مندالة عدد lengthالمصفوفات إلعادة تستخدم هي و

. المصفوفة عناصر االمر كما Console.WriteLineيستخدم للطباعة

السطر في االمر 5تشاهد Console.Readبينماللقراءة.

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

المصفوفة عناصر طباعة10

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

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. }

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. }

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

المصفوفة عناصر طباعة11

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

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

مع للتعامل استخدامها يكثر التي الدوال مندالة البعدين ذات و GetLength(0)المصفوفات

في المصفوفة عناصر عدد إلعادة تستخدم هي , القيمة استبدال عند بينما الواحد 1بالقيمة 0الصف

. العمود في العناصر عدد ستعيد فإنها

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

مصفوفـة في معلومات تخزينأحاديـة

12

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

عموم في المصفوفات داخل المعلومات تخزين , يتلقاها لمعلومات ذلك و آلي بشكل يتم التطبيقاتخارجي مصدر من إما و المستخدم من إما التطبيق

.) , معلوماتية) ملفات بيانات قاعدة المصفوفة حجم تقدير إلى بحاجة دائما فأنت لهذا

, , إلى كذلك تحتاج و البيانات نوع معرفة تحتاجها التي. صحيح ترتيب و صحيحة بصورة البيانات تخزين

باإلضافة تكرار جملة استخدام إلى بحاجة نحن لهذا. القيم قراءة جملة إلى

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

مصفوفـة في معلومات تخزينأحاديـة

13

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

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. }

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. }

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

مصفوفـة في معلومات تخزينأحاديـة

14

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

من إدخالها يتم التي القيم أن سلفا المعروف مننص النوع من المترجم يعتبرها اإلدخال جمل خالل

string النوع من مصفوفة في نخزنها لكي وفعله يمكن ما هو و النوع تحويل إلى نحتاج الصحيح

الدالة خالل السطر Parseمن في واضح هو كماالخامس.

القيم لتخزين يعتبر ال السادس السطر من rبدء الكود. إدخالها تم التي القيم لطباعة إنما و

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

مصفوفـة في معلومات تخزينثنائيـة

15

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

عموم في المصفوفات داخل المعلومات تخزين , يتلقاها لمعلومات ذلك و آلي بشكل يتم التطبيقاتخارجي مصدر من إما و المستخدم من إما التطبيق

.) , معلوماتية) ملفات بيانات قاعدة المصفوفة حجم تقدير إلى بحاجة دائما فأنت لهذا

, , إلى كذلك تحتاج و البيانات نوع معرفة تحتاجها التي. صحيح ترتيب و صحيحة بصورة البيانات تخزين

باإلضافة تكرار جملة استخدام إلى بحاجة نحن لهذا. القيم قراءة جملة إلى

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

مصفوفـة في معلومات تخزينثنائيـة

16

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

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. }

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. }

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

مصفوفـة في معلومات تخزينثنائيـة

17

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

الثالثي االسم بتخزين قمنا السابق المثال خالل منعلى, تحتوي المصفوفة كانت لهذا و لشخصين

( ) يحتوي ) عمود كل أعمدة ثالثة و للشخصين صفين.) الثالثي االسم من جزء على

) عمودي ) و األعمدة أفقي تكرار نمتلك كنا طالما و ) منهما) واحد كل لتكرارين نحتاج فنحن الصفوف

. اتجاه ترشد يعالج بحيث السابق المثال على بالتعديل قم الطباعة جمل مستخدماالتالي الشكل على األسماء إلدخال المستخدم

الجزء األول 1أدخل الشخص اسم منالجزء األول 2أدخل الشخص اسم من

األول للشخص الثالث االسم أدخلهكذا ... و

ترشد بحيث السابق المثال على بالتعديل قم الطباعة جمل مستخدماالتالي الشكل على األسماء إلدخال المستخدم

الجزء األول 1أدخل الشخص اسم منالجزء األول 2أدخل الشخص اسم من

األول للشخص الثالث االسم أدخلهكذا ... و

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

المصفوفات في عناصر استبدال18

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

قيم استبدال البرمجة في المشهورة العمليات منباسم يعرف ما هو و نقوم, swapالعناصر حيث

مثال الخامس مع الثالث العنصر قيم باستبدال كـ متغير استحداث إلى نحتاج المهمة بهذه للقيام و

. ) المتغيرين) أحد قيمة تخزين فيه يتم مؤقت مخزن

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

المصفوفات في عناصر استبدال19

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

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. }

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. }

بها مخزن األبعاد ثنائيـة مصفوفة مع المفهوم هذا بتطبيق قماالسماء

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

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

الدابـة ركب لمن الذكر

20

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

الله أكبر ... الله أكبر ... الله أكبر ... سبحان الله ... سبحان الله ... ر سبحان الله ... سبحان الذي سخ�لنا هذا و ما كنـ�ا له موقنين و إنا

إلى ربنا لمنقلبون

الله أكبر ... الله أكبر ... الله أكبر ... سبحان الله ... سبحان الله ... ر سبحان الله ... سبحان الذي سخ�لنا هذا و ما كنـ�ا له موقنين و إنا

إلى ربنا لمنقلبون

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

دون المصفوفة من عنصر حذفتأثير

21

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

بالقيمة استبداله يعني ال المصفوفة من العنصر حذفبقية !! على الحفاظ و وجوده إزالة به يقصد بل صفر

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

حذفها./ هما بطريقين يتم قد العنصر حذف

.1 : القيمة ) ذو العنصر حذف مثال بالقيمة عنصر حذف طلب10)

.2) : ( الثالث العنصر حذف مثال بالعنوان عنصر حذف طلب

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

دون المصفوفة من عنصر حذفتأثير

22

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

2 780

88

90

99

912

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 780

88

90

99

912

15

23

30

45

15

77

1 2 3 4 5 6 7 8 9 10 11 12 13

array0 14

1 2 3 4 5 6 7 8 9 9

array

0

2 780

88

90

99

912

23

30

45

15

77

1 2 3 4 5 6 7 8 9 10 11 12 1399

14Null

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

دون المصفوفة من عنصر حذفتأثير

23

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

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(); }

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(); }

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

دون المصفوفة من عنصر حذفتأثير

24

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

1. static void Main(string[] args)2. {3. int[] id = { 10, 12, 11, 45 };4. // to delete the value of index 25. 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. }

1. static void Main(string[] args)2. {3. int[] id = { 10, 12, 11, 45 };4. // to delete the value of index 25. 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. }

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

تأثير دون عنصر إضافة25

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

, إضافة يتم أي تأثير دون المصفوفة داخل عنصر بإضافة نقصدذلك في الموجودة القيمة حذف دون محدد موضع في العنصر

. مرتبـة كانت إن المصفوفة ترتيب تغيير دون أو الموضع: إلى نحتاج المصفوفة داخل جديد عنصر إلضافة و

. فيه العنصر إضافة في نرغب الذي الموضع عنوان تحديد اتجاه في الموضع ذلك في سلفا الموجودة للقيمة إزاحة عمل

. فارغ موضع إلفراغ اليمين

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

تأثير دون عنصر إضافة26

2 780

88

90

99

912

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 780

88

90

99

912

15

23

30

45

70

77

1 2 3 4 5 6 7 8 9 10 11 12 13

array

0 1413

القيمة حسب العناصر مرتبـة مصفوفة في عنصر إضافة طريقة يوضح العلوي الشكلتصاعدي بشكل

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

مرتبـة غير مصفوفة في عنصر إضافةتأثير دون

27

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

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 310. 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. }

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 310. 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. }

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

تأثير دون مرتبـة مصفوفة في عنصر إضافة

28

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

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 2509. 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(); }

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 2509. 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(); }

ذاتي : تدريببالتعديل قم

البرنامج علىحال في

كافة كانتعناصر

المصفوفة من أصغر

المراد القيمةإدخالها

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

الخوارزميات دراسـة مفهوم29

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

هذه تحتاجه ما دراسـة هو الخوارزميات دراسة بمفهوم يقصد , هذا يعرف و للحل للوصول تخزين مساحة و وقت من الخوارزميات

باسم Complexity of Algorithmsالعلم) خطوات ) عدد على يعتمد الوقت ( في لتخزينها نحتاج التي المعلومات عدد على يعتمد تخزين مساحة

) العشوائية الذاكرة , نحتاج: هنا فنحن المصفوفة في جديد عنصر تخزين أردنا إذا فمثـال

, التخزين لعملية باإلضافة لتحريكها نحتاج التي العناصر عدد لحساب. المساحة و الوقت لنحسب

n

log n

exp (n) تعقيد لمدى عامة مقادير هناك و

, موضحة هي و المستخدم الوقت. المقابل بالشكل

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

الخوارزميات دراسـة مفهوم30

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

يعرف لتنفيذ Time complexityو الالزم الوقت بأنه ( ) عناصر ) عدد مثال المدخالت بعدد مقارنة الخوارزمية البرنامج

المصفوفة(. يعرف الالزمة Space complexityو التخزين مساحة بأنها

. المدخالت بعدد مقارنة البرنامج لتنفيذ , تعقيد درجة أن% فستجد بالمدخالت مرتبطـة أنها طالما و

بـ يعرف بما تقاس Big o notationأو O(n)الخوارزميـةبأن% , nعلما و التخزين أو المعالجة مرات عدد بها يقصد هنا

قيمة قلة حيث nكلما من أفضل الخوارزميـة هذه كانت كلما. التخزين و nالوقت

log n

exp (n)يتم التي العلوم من المفهوم هذا

من شديدة بعناية دراستهاو الحاسوب علوم متخصصي

, قد نتيجتها ألن النظم محلليخوارزميـة على يعتمدون تجعلهم

أخرى دون

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

الـ ArrayListمفهوم31

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

في المصفوفـة مع تعاملنا خالل انتبهت أنك الشكزيادته يمكن ال و ثابت حجمها أن% التقليدي إصدارها , مناسبة غير جعلها األمر هذا و البرنامج عمل خالل

. البرامج من لكثير

يعرف ما استخدام المشكلة لهذه الحلول منDynamic Data Structure يمكن الحجم حيث

: , التراكيب هذه من و النظام تنفيذ خالل زيادته Stack

Queue Array List

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

الـ ArrayListمفهوم32

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

الـ تعتمد قدره ArrayListو مبدئي حجم 4علىإضافة, تلقائي يتم له الوصول بمجرد 4عناصر

, انتهاء لخطأ وجود فال بالتالي و هكذا و جديدة عناصرمن, ) الخانات من أكبر عدد طلب يمكننا الحجم

.) العمل بداية

الـ المبنيـة ArrayListتعتبر البيانات تراكيب من , التعامل يمكننا لكي و شارب سي لغة في سلفـا

المكتبـة لتضمين نحتاج Collectionsمعها

using System.Collections;

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

الـ ArrayListمفهوم33

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

اسمها مصفوفة تعريف يتم النوع namesو هذا من: يلي كما

ArrayList names = new ArrayList();

الـ تعريف في تالحظ عدد ArrayListكما نحدد لمنستخدم, لم و صنف ] [العناصر يعتبر ألنه ذلك و

سلفا Predefined classمعرف

يتم النوع هذا من مصفوفة أي فتعريف بالتالي و. صنف من كائن تشتق كأنك

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

الـ ArrayListمفهوم34

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

صنف يمتلك التي ArrayListو الدوال من مجموعة , المصفوفة عناصر مع التعامل خاللها من يمكنك

. يلي فيما موضح وظيفتهابعضها الدالة

. نهايتها في للمصفوفة عناصر إضافة يتم خاللها من Add()

النوع من أخرى لمصفوفـة مصفوفة إضافة خاللها من يتمArrayList. لها المضاف المصفوفة نهاية في العناصر تضاف و

AddRange()

المصفوفة داخل الموجودة العناصر كافة بحذف تسمح Clear()

هي و عدمه من المصفوفة في عنصر وجود لفحص تستخدم دالةالشرطيـة ) القيمة تعيد (T, Fبالتالي

Contains)(

مصفوفة عناصر من عدد نسخ من تمكنك إلى ArrayListدالةأخرى مصفوفة

CopyTo()

و المصفوفة داخل محدد موضع في ما عنصر بإدراج لك تسمحنهايتها في شرطــا ليس

Insert()

مفهوم , مع الدوال من مزيد عن ابحث اإلنترنت عبر البحث خدمة مستخدمامنها كل

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

الـ ArrayListمفهوم35

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

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. }

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. }

سلفا م½ع¼ر%ف متغيريعيد و الصنف داخلالتي العناصر عدد

المصفوفة تحتويها

سلفا م½ع¼ر%ف متغيريعيد و الصنف داخلالتي العناصر عدد

المصفوفة تحتويها

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

الـ ArrayListمفهوم36

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

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. }

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. }

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

الـ ArrayListمفهوم37

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

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. }

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. }

الدالة خالل منGetRange استقطاع تم

من عناصر ثالثةاألولى list1المصفوفة

الموجود العصر من بدايةو صفر الموضع في

المصفوفة في تخزينهاlist2.

الدالة خالل منGetRange استقطاع تم

من عناصر ثالثةاألولى list1المصفوفة

الموجود العصر من بدايةو صفر الموضع في

المصفوفة في تخزينهاlist2.

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

الـ ArrayListمفهوم38

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

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. }

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. }

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

أشكركم39

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

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