Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

(ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا - محب الله امان

599 views

Published on

معلومات در حافظه به اشکال مختلف ذخیره و قابل دسترس می باشند که برای برنامه نویسان لازم است تا با روش های مختلف ذخیره معلومات در میموری و به آن دسترسی پیدا کنند.

Published in: Education
  • Login to see the comments

(ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا - محب الله امان

  1. 1. "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬‫سال‬ ‫بهار‬4931‫خورشیدی‬ ‫هجری‬ ‫کابل‬ ‫دانشگاه‬ ‫کمپیوترساینس‬ ‫دانشکدهء‬ ‫دیتا‬ ‫ساختارهای‬ Data Structure ‫ویرایش‬‫دوم‬
  2. 2. Page 2 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ ‫هستی‬ ‫پروگرامر‬ ‫یگانه‬ ‫نام‬ ‫به‬ Data Structure Using Java ‫سافت‬‫آن‬ ‫ساختن‬ ‫زمان‬ ‫در‬ ‫ویر‬ ‫سافت‬ ‫ابعاد‬ ‫تمام‬ ‫با‬ ‫انجنیرینگ‬ ‫ویر‬‫سافت‬ ‫از‬ ‫بخش‬ ‫یک‬ ‫حقیقت‬ ‫در‬ ‫هم‬ ‫سترکچر‬ ‫دیتا‬ ‫و‬ ‫است‬ ‫ارتباط‬ ‫در‬ .‫میکند‬ ‫بحث‬ ‫دیتا‬ ‫داخلی‬ ‫ساختار‬ ‫از‬ ‫که‬ ‫بوده‬ ‫انجنیرینگ‬ ‫ویر‬‫ع‬ ‫به‬ ‫وبا‬‫های‬ ‫روش‬ ‫دیگر‬ ‫بارت‬‫ذ‬‫کمپیوتر‬ ‫اصلی‬ ‫حافظهء‬ ‫در‬ ‫را‬ ‫دیتا‬ ‫خیرهء‬ (RAM( ‫دیتا‬ ‫ساختار‬ ‫نام‬ ‫به‬ )Data Structure).‫میکنند‬ ‫یاد‬ ‫چیست؟‬ ‫دیتا‬ ‫برای‬ ‫که‬ ‫است‬ ‫شدهء‬ ‫ارایه‬ ‫معلومات‬ ‫از‬ ‫عبارت‬communication.‫میباشد‬ ‫آماده‬ ‫ماشینها‬ ‫یاپراسس‬ ‫و‬ ‫انسانها‬ ‫وتحلیل‬ ‫تجزیه‬ ‫؛‬ : ‫که‬ ‫میکند‬ ‫هدایت‬ ‫ما‬ ‫به‬ ‫سترکچر‬ ‫دیتا‬ .‫شود‬ ‫ذخیره‬ ‫باید‬ ‫دیتا‬ ‫چگونه‬ ‫باید‬ ‫چگونه‬organize‫گردد‬ ‫چگونه‬Retrieve.‫شود‬ ‫چگونه‬represent.‫گردد‬ ‫مفی‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫تا‬‫برای‬ ‫سترکچر‬ ‫دیتا‬ .‫نگردد‬ ‫دیتا‬ ‫وخرابی‬ ‫پراسسر‬ ‫وقت‬ ‫شدن‬ ‫ضایع‬ ‫باعث‬ ‫که‬ ‫آید‬ ‫بدست‬ ‫ومؤثر‬ ‫استفاده‬ ‫قابل‬ ، ‫د‬ organize( ‫اصلی‬ ‫حافظهء‬ ‫در‬ ‫دیتا‬ ‫کردن‬RAM)‫مانند‬ ‫ساختارهایی‬ ‫از‬Array،Stack،Queue،Linked List،Graph، Trees‫باالی‬ ‫مذکور‬ ‫هرساختار‬ ‫که‬ ‫میکنند‬ ‫استفاده‬ ‫وغیره‬Data Sorting،Data Searching،Hash table،Graph algorithm،Data Compressing‫وغیره‬apply.‫میگردد‬ ‫سترکچر‬ ‫دیتا‬ ‫فواید‬ Ease of Use‫قابل‬ ‫آسان‬ ‫مذکوررا‬ ‫ویر‬ ‫وسافت‬ ‫ساخته‬ ‫کم‬ ‫را‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫های‬ ‫پیچیدگی‬ ‫سترکچر‬ ‫دیتا‬ ‫از‬ ‫استفاده‬ ‫یعنی‬ : .‫سازد‬ ‫می‬ ‫استفاده‬ Speed‫کمپیوتر‬ ‫میموری‬ ‫در‬ ‫منظم‬ ‫بسیار‬ ‫طور‬ ‫به‬ ‫دیتا‬ ‫سترکچر‬ ‫دیتا‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫چون‬ :organize‫و‬ ‫وقت‬ ‫بنأ‬ ‫میگردد‬ .‫باالمیرود‬ ‫سرعت‬ ‫و‬ ‫نگردیده‬ ‫ضایع‬ ‫پراسسر‬ ‫سرعت‬ Efficiency:.‫میکند‬ ‫کمک‬ ‫میشود‬ ‫ساخته‬ ‫که‬ ‫هدفی‬ ‫خاطر‬ ‫به‬ ‫پروگرام‬ ‫یک‬ ‫مؤثریت‬ ‫در‬ ‫سترکچر‬ ‫دیتا‬ ‫از‬ ‫استفاده‬ ‫یعنی‬ Efficient Use of Memory:‫در‬ ‫دیتا‬ ‫نمایش‬ ‫و‬ ‫ذخیره‬ ‫متفاوت‬ ‫های‬ ‫روش‬ ‫با‬ ‫آشنایی‬RAM‫طوری‬ ‫ما‬ ‫که‬ ‫میگردد‬ ‫باعث‬ ‫ر‬ ‫حافظه‬ ‫کمترین‬ ‫که‬ ‫کنیم‬ ‫ذخیره‬ ‫حافظه‬ ‫در‬ ‫را‬ ‫دیتا‬.‫باشد‬ ‫داشته‬ ‫نیاز‬ ‫دسترسی‬ ‫روش‬ ‫بهترین‬ ‫با‬ ‫ا‬ Reusability( ‫شدن‬ ‫استفاده‬ ‫بار‬ ‫بار‬ ‫قابلیت‬ ‫ساختارها‬ ‫تمام‬ :reusability‫که‬ ‫باشد‬ ‫می‬ ‫دارا‬ ‫را‬ )‫ساختن‬ ‫در‬ ‫سهولت‬ ‫باعث‬ .‫شود‬ ‫می‬ ‫ها‬ ‫پروگرام‬ Type of Operation‫مذکور‬ ‫های‬ ‫ساختار‬ ‫در‬ ‫میکنیم‬ ‫استفاده‬ ‫ها‬ ‫پروگرام‬ ‫ساختن‬ ‫برای‬ ‫ستاندارد‬ ‫ساختارهای‬ ‫از‬ ‫ما‬ ‫زمانیکه‬ : .‫گردد‬ ‫تطبیق‬ ‫عملیات‬ ‫مختلف‬ ‫انواع‬ ‫میتوانند‬ :‫سترکچر‬ ‫دیتا‬ ‫انواع‬ .‫باشد‬ ‫می‬ ‫دونوع‬ ‫به‬ ‫سترکچر‬ ‫دیتا‬ Primitive Structure‫ساختارهای‬ ‫از‬ ‫عبارت‬ :built in‫تنها‬ ‫کدام‬ ‫هر‬ ‫که‬ ‫باشد‬ ‫می‬Single value‫مانند‬ .‫میکند‬ ‫ذخیره‬ ‫را‬ int, char, String, double, float, Boolean.‫وغیره‬ Non Primitive Structure‫مجموعهء‬ ‫از‬ :‫چندین‬Primitive Data Type‫چندین‬ ‫تواند‬ ‫می‬ ‫هرکدام‬ ‫که‬ ‫میگردد‬ ‫تشکیل‬ : ‫از‬ ‫عبارتند‬ ‫که‬ ‫میگردد‬ ‫تقسیم‬ ‫دوبخش‬ ‫به‬ ‫خود‬ ‫نوبت‬ ‫به‬ ‫ساختارها‬ ‫نوع‬ ‫واین‬ .‫نماید‬ ‫ذخیره‬ ‫نام‬ ‫یک‬ ‫تحت‬ ‫درخود‬ ‫را‬ ‫قیمت‬ Linear Data Structure‫ش‬ ‫به‬ ‫را‬ ‫دیتا‬ ‫ها‬ ‫ساختار‬ ‫نوع‬ ‫این‬ :‫کمپیوتر‬ ‫حافظهء‬ ‫در‬ )‫(مسلسل‬ ‫خطی‬ ‫کل‬‫ذخیره‬ ‫مانند‬ .‫میکند‬Array،stack،Queue.‫وغیره‬ Non-Linear Data Structure‫مختلف‬ ‫اشکال‬ ‫به‬ ‫دیتارا‬ :‫کمپیوتر‬ ‫حافظهء‬ ‫در‬،‫ها‬ ‫گراف‬ ‫مانند‬ ‫میکند‬ ‫ذخیره‬ ‫وغیره‬ ‫ها‬ ‫چارت‬
  3. 3. Page 3 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ Object Oriented Design ( ‫گرا‬ ‫شی‬ ‫نویسی‬ ‫پروگرام‬ ‫های‬ ‫ازلسان‬ ‫یکی‬ ‫جاوا‬ ‫میدانیم‬ ‫قسمیکه‬Object-Oriented Programming language.‫باشد‬ ‫می‬ )‫یعنی‬ ( ‫مشخصات‬ ‫وتمام‬ ‫شده‬ ‫مشخص‬ ‫کار‬ ‫طرح‬ ‫یا‬ ‫نقشه‬ ‫اوال‬ ‫نویسی‬ ‫پروگرام‬ ‫های‬ ‫لسان‬ ‫نوع‬ ‫دراین‬attributes( ‫اعمال‬ ‫و‬ )behavior‫نرم‬ ) ‫چندین‬ ‫سپس‬ ‫و‬ ‫میگردد‬ ‫معرفی‬ ‫درآن‬ ‫افزار‬object‫را‬ ‫ومشخصات‬ ‫خواص‬ ‫تمام‬ ‫و‬ ‫نموده‬ ‫استفاده‬ ‫مذکور‬ ‫کار‬ ‫طرح‬ ‫و‬ ‫نقشه‬ ‫از‬ ‫توانند‬ ‫می‬ ‫بخو‬ ‫را‬ ‫شده‬ ‫ذکر‬ ‫طرح‬ ‫در‬ ‫که‬.‫بگیرند‬ ‫د‬ ‫یعنی‬OOA (object oriented Approach)‫و‬ ‫نموده‬ ‫طرح‬ ‫ها‬ ‫کالس‬ ‫قالب‬ ‫در‬ ‫آنرا‬ ‫مربوطهء‬ ‫عملیات‬ ‫و‬ ‫دیتا‬ ‫که‬ ‫میدهد‬ ‫اجازه‬ ‫ما‬ ‫به‬ ‫نهایت‬ ‫بی‬ ‫میتوانیم‬ ‫آن‬ ‫از‬object.‫بسازیم‬:‫از‬ ‫عبارتند‬ ‫گرا‬ ‫شی‬ ‫نویسی‬ ‫پروگرام‬ ‫های‬ ‫لسان‬ ‫اساسی‬ ‫جزء‬ ‫دو‬ ‫بنأ‬ Classes‫فنکشن‬ ‫و‬ ‫مشخصات‬ ‫از‬ ‫مجموعهء‬ :‫که‬ ‫باشند‬ ‫می‬ ‫های‬‫و‬ ‫داشته‬ ‫آنرا‬ ‫باید‬ ‫افزار‬ ‫نرم‬ ‫یک‬.‫دهند‬ ‫انجام‬‫کار‬ ‫طرح‬ ‫ویک‬ (blue print‫برای‬ ‫نمونه‬ ‫ویا‬ )Object.‫بگیرند‬ ‫کالس‬ ‫از‬ ‫شانرا‬ ‫خصوصیات‬ ‫تمام‬ ‫تا‬ ‫باشد‬ ‫می‬ ‫ها‬ Object‫لمس‬ ‫قابل‬ ‫اشیای‬ ‫بعضی‬ ‫از‬ ‫عبارت‬ ‫درلغت‬ :‫(کتاب‬‫باشد‬ ‫می‬ )‫وغیره‬ ‫فشار‬ ،‫(زمان‬ ‫لمس‬ ‫قابل‬ ‫وغیر‬ )‫کمپیوتر‬ ، ‫قلم‬ ، ، ‫نویسی‬ ‫پروگرام‬ ‫های‬ ‫لسان‬ ‫دراصطالح‬ ‫و‬Object‫مشخصات‬ ‫و‬ ‫ها‬ ‫میتود‬ ‫که‬ ‫شوند‬ ‫می‬ ‫گفته‬ ‫افزار‬ ‫نرم‬ ‫از‬ ‫بخش‬ ‫به‬ ‫ها‬ ‫وهر‬ .‫نمایند‬ ‫می‬ ‫تطبیق‬ ‫هارا‬ ‫کالس‬ ‫در‬ ‫شده‬ ‫معرفی‬Object.‫است‬ ‫بخش‬ ‫سه‬ ‫شامل‬ oAttribute oBehavior oUnique Identity ‫یک‬ ‫موتر‬ :‫مثال‬ ‫بطور‬Object‫که‬ ‫است‬attribute‫باشد‬ ‫می‬ ‫آن‬ ‫تولید‬ ‫سال‬ ‫و‬ ، ‫نوع‬ ‫؛‬ ‫سایز‬ ‫؛‬ ‫رنگ‬ ‫از‬ ‫عبارت‬ ‫آن‬ ‫های‬ ‫درحالیکه‬behavior‫یا‬method‫گرفتن‬ ‫سرعت‬ ، ‫نمودن‬ ‫توقف‬ ،‫کردن‬ ‫مصرف‬ ‫تیل‬ ، ‫گرفتن‬ ‫سرعت‬ ‫از‬ ‫عبارت‬ ‫آن‬ ‫های‬ .‫باشد‬ ‫می‬ .....‫و‬unique Identity‫همان‬ ‫پلیت‬ ‫نمبر‬ ‫هم‬ ‫آن‬.‫است‬ ‫موتر‬ Object Oriented Programming Language‫اصول‬ ‫نام‬ ‫به‬ ‫میکنند.که‬ ‫استفاده‬ ‫ها‬ ‫مادل‬ ‫سازی‬ ‫ساده‬ ‫منظور‬ ‫به‬ ‫میکانیزم‬ ‫سه‬ ‫از‬ :‫از‬ ‫وعبارتند‬ .‫شود‬ ‫می‬ ‫نامیده‬ ‫گرا‬ ‫شی‬ ‫نویسی‬ ‫پروگرام‬ ‫های‬ ‫لسان‬ 4.Inheritance:‫و‬ ‫مشخصات‬ ‫ها‬ ‫کالس‬ ‫از‬ ‫بعضی‬behavior‫شانرا‬‫این‬ ‫که‬ ‫میگیرند‬ ‫ارث‬ ‫به‬ ‫را‬ ‫دیگر‬ ‫های‬ ‫کالس‬ ‫از‬ ‫نام‬ ‫به‬ ‫خاصیت‬inheritance.‫یادمیگردد‬‫چندین‬ ‫دارای‬ ‫کالس‬ ‫چندین‬ ‫ویا‬ ‫دو‬ ‫ممکن‬ ‫یعنی‬attribute‫و‬behavior‫مشترک‬ ‫به‬ ‫مذکور‬ ‫کالس‬ ‫از‬ ‫را‬ ‫خصوصیات‬ ‫این‬ ‫ها‬ ‫کالس‬ ‫وسایر‬ ‫شوند‬ ‫می‬ ‫معرفی‬ ‫ها‬ ‫کالس‬ ‫از‬ ‫یکی‬ ‫در‬ ‫مشترک‬ ‫اجزای‬ ‫این‬ ‫که‬ ‫باشند‬ ‫میگی‬ ‫ارث‬‫نام‬ ‫به‬ ‫میگردند‬ ‫معرفی‬ ‫درآن‬ ‫مشترک‬ ‫خصوصیات‬ ‫که‬ ‫کالس‬ ‫و‬ .‫رند‬super class،base class‫ویا‬Parent class‫نام‬ ‫به‬ ‫ها‬ ‫کالس‬ ‫سایر‬ ‫درحالیکه‬ ‫میگردد‬ ‫یاد‬Child class،sub class.‫یادمیگردند‬ ‫عمر‬ ‫؛‬ ‫نام‬ ‫قبیل‬ ‫از‬ ‫مشترک‬ ‫مشخصات‬ ‫بعضی‬ ‫دارای‬ ‫سه‬ ‫هر‬ ‫ومعلم‬ ‫دکتور‬ ، ‫انجنیر‬ ‫کالس‬ ‫سه‬ :‫مثال‬‫وهمچنین‬ ‫وزن‬ ، ‫قد‬ ، ‫دارای‬behavior‫یک‬ ‫سهولیت‬ ‫خاطر‬ ‫به‬ ‫بنأ‬ .‫باشند‬ ‫می‬ ‫کردن‬ ‫مطالعه‬ ، ‫کردن‬ ‫خواب‬ ، ‫آشامیدن‬ ، ‫خوردن‬ ‫مانند‬ ‫مشترک‬ ‫های‬ ‫نام‬ ‫تحت‬ ‫کالس‬Human‫کالس‬ ‫سه‬ ‫حالت‬ ‫ودرین‬ .‫میکنیم‬ ‫اضافه‬ ‫آن‬ ‫در‬ ‫را‬ ‫مشترک‬ ‫افعال‬ ‫و‬ ‫خصوصیات‬ ‫این‬ ‫که‬ ‫سازیم‬ ‫می‬ ‫خصوص‬ ‫توانند‬ ‫می‬ ‫الذکر‬ ‫فوق‬‫خ‬ ‫خاص‬ ‫یات‬‫باشند‬ ‫داشته‬ ‫نیز‬ ‫را‬ ‫ودش‬.‫کلیدی‬ ‫کلمهء‬ ‫استعمال‬ ‫با‬ ‫درجاوا‬ (extends‫میتوانیم‬ .)‫کنیم‬ ‫دیگرمعرفی‬ ‫کالس‬ ‫وارث‬ ‫را‬ ‫کالس‬ ‫یک‬ 2.Encapsulation:‫ازپنهان‬ ‫عبارت‬‫کردن‬Attribute‫و‬ ‫ها‬behavior‫یک‬ ‫مورد‬ ‫بی‬ ‫هایی‬Object‫آشکار‬ ‫و‬ ‫دادن‬ ‫وبروز‬ ‫که‬ ‫مشخصات‬ ‫ساختن‬‫حاضر‬ ‫درحال‬‫یک‬ ‫ممکن‬ ‫یعنی‬ .‫است‬ ‫نیاز‬ ‫آن‬ ‫به‬object‫م‬ ‫دارای‬‫باشد‬ ‫زیادی‬ ‫های‬ ‫متود‬ ‫و‬ ‫ها‬ ‫شخصه‬ ‫ولی‬‫مختلف‬ ‫حاالت‬ ‫نظربه‬‫استفاده‬ ‫حالت‬ ‫همان‬ ‫به‬ ‫مربوط‬ ‫های‬ ‫متود‬ ‫و‬ ‫مشخصات‬ ‫از‬‫م‬‫ی‬.‫نمایند‬ ‫یک‬ ‫منحیث‬ ‫من‬ ‫مثال‬ ‫بطور‬Object‫و‬ ‫مشخصات‬ ‫دارای‬Behavior‫چون‬ .‫باشم‬ ‫می‬ ‫مختلفی‬ ‫های‬‫کابل‬ ‫دانشگاه‬ ‫در‬ ‫زمانیکه‬ ‫داخل‬‫نا‬ ‫با‬ ‫میشوم‬‫ام‬ ‫شده‬ ‫ثبت‬ ‫بودنم‬ ‫محصل‬ ‫مشخصات‬ ‫و‬ ‫م‬) ‫خواندن‬ ‫درس‬ ‫محصل؛‬ ‫تخلص‬ ، ‫محصل‬ ‫پدر‬ ‫اسم‬ ، ‫محصل‬ ‫(اسم‬ ) ‫دادن‬ ‫درس‬ ، ‫معلم‬ ‫تخلص‬ ‫؛‬ ‫معلم‬ ‫پدر‬ ‫اسم‬ ، ‫معلم‬ ‫اسم‬ ( ‫معلمی‬ ‫ومشخصات‬ ‫نام‬ ‫با‬ ‫مکاتب‬ ‫از‬ ‫یکی‬ ‫در‬ ‫حال‬ ‫درعین‬‫شده‬ ‫ثبت‬ ‫ام‬‫بو‬ ‫معلم‬ ‫همچون‬ ‫مشخصات‬ ‫به‬ ‫کابل‬ ‫دانشگاه‬ ‫وقتی‬ ‫هیچ‬ ‫یعنی‬ .‫نداشته‬ ‫کار‬ ‫میکنم‬ ‫راتدریس‬ ‫مضامینی‬ ‫کدام‬ ‫یااینکه‬ ‫و‬ ‫دنم‬ .‫ندارد‬ ‫کاری‬ ‫دارم‬ ‫نمره‬ ‫چقدر‬ ‫مضامین‬ ‫درکدام‬ ‫واینکه‬ ‫بودنم‬ ‫محصل‬ ‫به‬ ‫هم‬ ‫مکتب‬ ‫ودرمقابل‬ 9.Polymorphism:( ‫مشخصات‬attributes‫ویا‬ )Behavior‫عمل‬ ‫مختلفی‬ ‫اشکال‬ ‫به‬ ‫ولی‬ ‫بوده‬ ‫مشابه‬ ‫نام‬ ‫تحت‬ ‫که‬ ‫هایی‬ ‫مارفیسم‬ ‫پولی‬ ‫نام‬ ‫به‬ ‫میکنند‬.‫یادمیگردند‬.‫است‬ ‫آورده‬ ‫بار‬ ‫به‬ ‫معاصر‬ ‫نویسی‬ ‫برنامه‬ ‫در‬ ‫را‬ ‫زیادی‬ ‫سهولیات‬ ‫که‬‫مثال‬ ‫بطور‬ ‫یک‬ ‫کاربن‬ ‫که‬ ‫میدانیم‬Object.‫ذغال‬ ‫ویا‬ ‫باشد‬ ‫الماس‬ ‫میتواند‬ ‫باشد‬ ‫حالت‬ ‫چندین‬ ‫دارای‬ ‫میتواند‬ ‫ولی‬ ‫است‬
  4. 4. Page 4 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ ‫که‬ ‫نویسیم‬ ‫می‬ ‫را‬ ‫پروگرام‬ : ‫مثال‬ ‫طور‬‫وهمچن‬ ‫نماید‬ ‫ذخیره‬ ‫را‬ ‫مختلفی‬ ‫های‬ ‫کمپیوتر‬ ‫مشخصات‬‫به‬ ‫ان‬user‫مشخصات‬ ‫این‬ ‫تا‬ ‫دهد‬ ‫اجازه‬ .‫بدهد‬ ‫تغییر‬ ‫و‬ ‫رادیده‬ ‫نام‬ ‫به‬ ‫کالس‬ ‫یک‬ ‫اوال‬PCsRecord‫هر‬ ‫تا‬ ‫سازیم‬ ‫می‬PC.‫بگیرد‬ ‫کالس‬ ‫این‬ ‫از‬ ‫خودرا‬ ‫مشخصات‬ ‫میشود‬ ‫اضافه‬ ‫که‬ ‫کالس‬‫یک‬ ‫صرف‬ ‫فوق‬blue print‫مشخصات‬ ‫وخواص‬ ‫تمام‬ ‫که‬ ‫باشد‬ ‫می‬Object.‫است‬ ‫شده‬ ‫معرفی‬ ‫درآن‬‫که‬‫نهایت‬ ‫بی‬ ‫میتوانیم‬ Object‫هر‬ ‫که‬ ‫بسازیم‬ ‫فوق‬ ‫کالس‬ ‫از‬object‫و‬ ‫مشخصات‬ ‫تمام‬ ‫کالس‬ ‫این‬method‫های‬‫بخود‬ ‫را‬ ‫شده‬ ‫معرفی‬‫ال‬ .‫میگیرد‬‫بته‬ Object‫داخل‬ ‫همیشه‬ ‫ها‬‫متود‬main‫میگردد‬ ‫معرفی‬‫وحال‬ .‫دارای‬ ‫که‬ ‫سازیم‬ ‫می‬ ‫را‬ ‫دیگری‬ ‫کالس‬main method‫آن‬ ‫در‬ ‫و‬ ‫بوده‬ object.‫میکنیم‬ ‫معرفی‬ ‫ذیل‬ ‫طور‬ ‫کالس‬ ‫این‬ ‫نوع‬ ‫از‬ ‫هارا‬
  5. 5. Page 5 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ ‫پروگرام‬ ‫نتیجهء‬.‫کرد‬ ‫خواهید‬ ‫مالحظه‬ ‫ذیل‬ ‫شکل‬ ‫به‬ ‫را‬ ‫فوق‬ ‫را‬ ‫ذیل‬ ‫کالس‬ :‫دوم‬ ‫مثال‬coding.‫نمایید‬ Date Day Month Year Min Year Return Day() Return Month() Return Year() Return Serial of Day()
  6. 6. Page 6 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ Array ‫نام‬ ‫به‬ ‫میگردد‬ ‫ذخیره‬ ‫مسلسل‬ ‫شکل‬ ‫به‬ ‫درمیموری‬ ‫که‬ ‫مشابه‬ ‫بانام‬ ‫را‬ ‫همنوع‬ ‫ومتحولین‬ ‫عناصر‬ ‫از‬ ‫یامجموعهء‬ ‫و‬ ‫لیست‬array‫یاد‬ ‫میکن‬‫مشابه‬ ‫متحولین‬ ‫این‬ ‫که‬ .‫ند‬Fixed size‫و‬ ‫بوده‬‫از‬ ‫استفاده‬ ‫با‬index‫و‬ ‫فرق‬ ‫دیگر‬ ‫یک‬ ‫از‬ ‫ها‬access‫باالی‬ .‫میگردند‬array ‫را‬ ‫مختلفی‬ ‫عملیات‬ ‫میتوانیم‬‫قبیل‬ ‫از‬insertion،Deletion, sorting, searching‫عناصر‬ .‫دهیم‬ ‫انجام‬ ‫را‬ ‫وغیره‬Array‫به‬ ‫مطابق‬ .‫میگردند‬ ‫دخیره‬ ‫حافظه‬ ‫در‬ ‫ذیل‬ ‫شکل‬ 20302214678865339872 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] ‫نام‬ ‫فوق‬ ‫درحالت‬Array‫از‬ ‫عبارت‬a‫که‬ ‫باشد‬ ‫می‬[]‫حجره‬ ‫هر‬ ‫اندیکس‬ ‫نشاندهندهء‬Array.‫باشد‬ ‫می‬
  7. 7. Page 7 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ ‫فواید‬array Array( ‫ساختار‬ ‫یک‬data structure‫را‬ ‫مختلفی‬ ‫عملیات‬ ‫و‬ ‫گردیده‬ ‫معرفی‬ ‫آسانی‬ ‫به‬ ‫که‬ ‫بوده‬ ‫ساده‬ )support‫وهمچنین‬ .‫میکند‬ ‫در‬ ‫ها‬ ‫اندیکس‬ ‫از‬ ‫استفاده‬array‫پراسهء‬access‫تمام‬ ‫همزمان‬ ‫میتوانیم‬ ‫ما‬ ‫که‬ ‫زیرا‬ ‫است‬ ‫ساخته‬ ‫سریع‬ ‫بسیار‬ ‫دیتارا‬ ‫کردن‬element ‫هایی‬array‫توسط‬ ‫آسانی‬ ‫بسیار‬ ‫به‬ ‫را‬index‫شان‬ ‫های‬access.‫کنیم‬ ‫نواقص‬Array Array‫آن‬ ‫نقص‬ ‫مهمترین‬ ‫جمله‬ ‫از‬ ‫میباشد‬ ‫نیز‬ ‫نواقص‬ ‫دارای‬fixed size‫که‬ ‫استیم‬ ‫مجبور‬ ‫ما‬ ‫یعنی‬ .‫است‬ ‫آن‬ ‫بودن‬array‫ه‬ ‫را‬‫میشه‬ ‫معموال‬ .‫میگردد‬ ‫حافظه‬ ‫ضیاع‬ ‫باعث‬ ‫عمل‬ ‫این‬ ‫که‬ ‫باشیم‬ ‫نداشته‬ ‫نیازی‬ ‫اینکه‬ ‫ولو‬ ‫کنیم‬ ‫معرفی‬ ‫نیاز‬ ‫مورد‬ ‫موقعیت‬ ‫مقدار‬ ‫تراز‬ ‫اضافه‬ ‫سرعت‬search‫در‬array‫شکل‬ ‫به‬ ‫که‬ ‫های‬unsorted‫ترتیب‬ ‫همین‬ ‫وبه‬ ‫بوده‬ ‫پایین‬ ‫بسیار‬ ‫میباشد‬insertion‫در‬array‫تنظیم‬ ‫هایی‬ ( ‫شده‬sorted‫سخ‬ ‫بسیار‬ ).‫است‬ ‫ت‬‫در‬ ‫هم‬ ‫درحالیکه‬sorted array‫در‬ ‫وهم‬unsorted array‫عملیهء‬deletion.‫است‬ ‫دشوار‬ ‫کار‬ ‫طرزمعرفی‬Array DataType ArrayName[] = new DataType[ArraySize]; String name[]=new String[50]; int list[]=new int[15]; List[5]=70; List[10]=list[5]+100; System.out.println(“Index 44”+list[44]); ‫موضوع‬ ‫شدن‬ ‫ساده‬ ‫برای‬‫ات‬‫کار‬ ‫ومراحل‬ ‫روش‬ ‫تعیین‬ ‫و‬‫وکودنویسی‬‫الگوریتم‬ ‫باید‬ ‫اوال‬‫فلوچارت‬ ‫ویا‬ ‫ها‬.‫بسازیم‬ ‫چیست؟‬ ‫الگوریتم‬ ‫از‬ ‫مجموعهء‬activity‫آمدن‬ ‫بدست‬ ‫منجربه‬ ‫که‬ ‫مسلسل‬ ‫هایی‬output‫نام‬ ‫به‬ ‫میگردند‬ ‫دلخواه‬algorithm‫و‬ ‫میگردد‬ ‫یاد‬‫از‬ ‫اصل‬ ‫در‬ ‫پروگرام‬ ‫یک‬ ‫نمودن‬ ‫تکمیل‬ ‫مراحل‬ ‫دیگر‬ ‫عبارت‬ ‫به‬ ‫ویا‬ .‫است‬ ‫خوارزمی‬ ‫موسی‬ ‫بن‬ ‫محمد‬ ‫به‬ ‫منسوب‬ ‫که‬ ‫شده‬ ‫گرفته‬ )‫(الخوارزم‬ ‫کلمهء‬ ‫شکل‬ ‫به‬ ‫که‬step‫به‬step:‫مثال‬ .‫میگردد‬ ‫یاد‬ ‫الگوریتم‬ ‫نام‬ ‫به‬ ‫میشود‬ ‫بیان‬ ‫ورق‬ ‫روی‬ Step1: start Step2: Declare Step3:initialize Step4:increment step5:Display Step6:stop ‫چیست؟‬ ‫فلوچارت‬ ‫شکل‬ ‫به‬ ‫را‬ ‫پروگرام‬ ‫یک‬ ‫شدن‬ ‫تکمیل‬ ‫مراحل‬ ‫که‬ ‫است‬ ‫دیاگرام‬visual‫شروع‬ ‫دیاگرام‬ ‫درین‬ ‫که‬ .‫میدهد‬ ‫نمایش‬ ‫ها‬ ‫چارت‬ ‫از‬ ‫استفاده‬ ‫وبا‬ :‫ذیل‬ ‫شکل‬ ‫قرار‬ ‫میشود‬ ‫داده‬ ‫نشان‬ ‫بیضوی‬ ‫توسط‬ ‫کار‬ ‫وختم‬
  8. 8. Page 8 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ ‫نمرات‬ ‫و‬ ‫نام‬ ‫که‬ ‫نویسیم‬ ‫می‬ ‫را‬ ‫پروگرام‬ :‫مثال‬ ‫طور‬.‫دهد‬ ‫نشان‬ ‫را‬ ‫نمرات‬ ‫و‬ ‫نام‬ ‫این‬ ‫سپس‬ ‫و‬ ‫کرده‬ ‫ثبت‬ ‫را‬ ‫شاگردان‬ ‫تمام‬ :‫الگوریتم‬ ‫دو‬array.‫کنیم‬ ‫معرفی‬ ‫داخل‬ ‫را‬ ‫نمرات‬ ‫و‬ ‫نام‬array.‫برساند‬ ‫ثبت‬ ‫به‬ .‫دهد‬ ‫نمایش‬ ‫را‬ ‫ونمرات‬ ‫نام‬ import java.util.Scanner; public class List { int size; int score[]; public List(int s) { size = s; score = new int [size]; } Scanner keyboard = new Scanner(System.in); public void insert(int n) { for(int i=0; i<n; i++) score[i]=keyboard.nextInt(); } public void display(int m) {
  9. 9. Page 9 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ for(int i=0; i<m; i++) System.out.println(score[i]); } } ‫دومی‬ ‫کالس‬ public class arrayapp { public static void main(String[] args) { List SwE5 = new List(45); List IS5 = new List (55); List IT5 = new List(60); SwE5.insert(45); SwE5.display(45); IS5.insert(55); IS5.display(55); IT5.insert(60); IT5.display(60); } } Searching Algorithm ( ‫عنصر‬ ‫یک‬ ‫کردن‬ ‫جستجو‬ ‫برای‬ ‫دوروش‬element‫در‬ )array:‫دارد‬ ‫زیاد‬ ‫اهمیت‬ Linear Search Binary Search ‫در‬linear search‫در‬ ‫موجود‬ ‫عناصر‬ ‫تک‬ ‫تک‬ ‫با‬ ‫شده‬ ‫خواسته‬ ‫عنصر‬array‫در‬ ‫را‬ ‫نتیجه‬ ‫بودن‬ ‫مساوی‬ ‫ودرصورت‬ ‫میگردد‬ ‫مقایسه‬ .‫یابد‬ ‫می‬ public student find(String searchname) { int j; for(j=0; j<nelems; j++) if( a[j] = searchname) break; if( j == nelems) return null; else return a[j]; } ‫در‬binary search‫های‬ ‫لیست‬ ‫در‬ ‫عموما‬ ‫که‬sort‫شده‬ ‫خواسته‬ ‫عناصر‬ ‫و‬ ‫نموده‬ ‫دریافت‬ ‫را‬ ‫وسطی‬ ‫اندیکس‬ ‫اوال‬ ‫میگیرد‬ ‫صورت‬ ‫شده‬ ‫عین‬ ‫و‬ ‫نگرفته‬ ‫مدنظر‬ ‫را‬ ‫وسط‬ ‫عنصر‬ ‫از‬ ‫تر‬ ‫کوچک‬ ‫بود‬ ‫وسط‬ ‫عنصر‬ ‫از‬ ‫تر‬ ‫بزرگ‬ ‫درصورتیکه‬ .‫میکند‬ ‫مقایسه‬ ‫وسط‬ ‫عنصر‬ ‫با‬ ‫را‬ .‫کند‬ ‫می‬ ‫اجرا‬ ‫وسط‬ ‫عنصر‬ ‫از‬ ‫تر‬ ‫بزرگ‬ ‫عناصر‬ ‫باالی‬ ‫را‬ ‫پراسه‬
  10. 10. Page 10 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ public boolean find(int searchkey) { int lowerBound = 0; int upperBound = n-1; int middle=0; while(true) { middle = (lowerBound + upperBound) / 2; if (student[middle] == searchkey) return true; else if(lowerBound>upperBound) return false; else { if(student[middle] < searchkey) lowerBound = middle + 1; else upperBound = middle - 1; } } }
  11. 11. Page 11 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ Stack Stack( ‫دیتا‬ ‫ساختار‬ ‫از‬ ‫وعبارت‬ ‫بوده‬ ‫گاه‬ ‫ذخیره‬ ‫معنی‬ ‫به‬ ‫درلغت‬data structure‫بوده‬ )‫که‬‫مجموعهء‬ ‫از‬item‫هایی‬order‫شده‬ ‫باشد‬ ‫شده‬ ‫تشکیل‬ ‫طوری‬‫که‬insertion‫و‬deletion‫نام‬ ‫به‬ ‫و‬ .‫میگیرد‬ ‫صورت‬ ‫آن‬ ‫انجام‬ ‫یک‬ ‫از‬ ‫تنها‬LIFO (Last In First Out)‫ویا‬ FILO (First In Last Out).‫میگردد‬ ‫یاد‬ ‫هم‬‫گ‬ ‫وبرای‬ ‫اند‬ ‫شده‬ ‫چیده‬ ‫سربسر‬ ‫که‬ ‫کنید‬ ‫فرض‬ ‫را‬ ‫کفتریا‬ ‫های‬ ‫ظرف‬ :‫مثال‬ ‫بطور‬‫ی‬ ‫رفتن‬‫کی‬ ‫رادور‬ ‫فوقانی‬ ‫ظروف‬ ‫تازمانیکه‬ .‫بگیریم‬ ‫را‬ ‫پاییننی‬ ‫ظرف‬ ‫ونمیتوانیم‬ ‫میگیریم‬ ‫دارد‬ ‫قرار‬ ‫ظرفها‬ ‫همه‬ ‫باالی‬ ‫در‬ ‫راکه‬ ‫ظرف‬ ، ‫ازظروف‬ .‫باشیم‬ ‫نکرده‬ ‫آورن‬ ‫بدست‬ ‫بخاطر‬ ‫شما‬ ‫و‬ ‫گرفته‬ ‫قرار‬ ‫سیا‬ ، ‫سفید‬ ، ‫سرخ‬ ‫های‬ ‫رنگ‬ ‫به‬ ‫دیگری‬ ‫بلوز‬ ‫چند‬ ‫زیر‬ ‫تان‬ ‫آبی‬ ‫دلخواه‬ ‫بلوز‬ ‫که‬ ‫کنید‬ ‫فرض‬ ‫ویا‬ ).‫است‬ ‫مثال‬ ‫یک‬ ‫(فقط‬ .‫بیاورید‬ ‫بدست‬ ‫را‬ ‫آبی‬ ‫بلوز‬ ‫سپس‬ ‫و‬ ‫چیده‬ ‫دیگر‬ ‫طرف‬ ‫در‬ ‫را‬ ‫دیگر‬ ‫های‬ ‫بلوز‬ ‫باید‬ ‫اوال‬ ‫تان‬ ‫دلخواه‬ ‫بلوز‬ ‫میتوانیم‬ ‫گفته‬ ‫فوق‬ ‫های‬ ‫مثال‬ ‫درروشنی‬stack‫پذیر‬ ‫امکان‬ ‫آن‬ ‫فوقانی‬ ‫قسمت‬ ‫از‬ ‫تنها‬ ‫دیتا‬ ‫پراسس‬ ‫میباشدکه‬ ‫دیتای‬ ‫ساختار‬ ‫از‬ ‫عبارت‬ ‫ساختا‬ ‫دیگر‬ ‫عبارت‬ ‫به‬ ‫است.وبا‬‫منظور‬ ‫به‬ ‫درآن‬ ‫که‬ ‫است‬ ‫ر‬access‫ویا‬ ‫عناصر‬ ‫کردن‬remove‫فوقانی‬ ‫قسمت‬ ‫به‬ ‫تنها‬ ‫عناصر‬ ‫کردن‬ .‫مینماییم‬ ‫مراجعه‬ ‫آن‬ ‫که‬ ‫میتوانیم‬ ‫گفته‬stack‫را‬ ‫عناصر‬ ‫میتوانیم‬ ‫صرف‬ ‫درآن‬ ‫زیراکه‬ ‫میتواند‬ ‫داده‬ ‫انجام‬ ‫ها‬ ‫ساختار‬ ‫سایر‬ ‫به‬ ‫نسبت‬ ‫را‬ ‫محدودی‬ ‫عملیات‬ insert‫و‬remove‫که‬ .‫کنیم‬Insert‫نمودن‬value‫در‬ ‫هارا‬stack‫نام‬ ‫به‬push‫وگرفتن‬value‫نام‬ ‫به‬ ‫هارا‬pop.‫میکنند‬ ‫یاد‬‫که‬ ‫فوقانی‬ ‫قسمت‬ ‫از‬ ‫هردوعملیه‬(top of stack).‫میگیرد‬ ‫صورت‬‫یا‬ ‫و‬ ‫بودن‬ ‫خالی‬ ‫که‬ ‫داریم‬ ‫نیاز‬ ‫دیگری‬ ‫عملیهء‬ ‫یک‬ ‫به‬ ‫وهمچنان‬ ‫پربودن‬stack‫آنرا‬ ‫دراینجا‬ ‫که‬ ‫کند‬ ‫بررسی‬ ‫را‬isEmpty.‫مینامیم‬
  12. 12. Page 12 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ ‫ب‬ ‫عموم‬ ‫طور‬‫ها‬ ‫پروگرام‬ ‫اجراشدن‬ ‫ا‬stack‫میتوانیم‬ ‫ما‬ ‫و‬ ‫میباشد‬ ‫خالی‬‫عناصر‬stack‫تعریف‬ ‫با‬ ‫را‬constructor‫صفر‬ ‫به‬initialize ‫حالت‬ ‫این‬ ‫که‬ .‫کنیم‬stack‫نام‬ ‫رابه‬stack underflow‫های‬ ‫حجره‬ ‫زمانیکه‬ ‫و‬ ‫یادمیکنند‬stack‫فوقانی‬ ‫درقسمت‬ ‫و‬ ‫باشد‬ ‫شده‬ ‫اشغال‬ ‫برای‬ ‫جایی‬push‫نام‬ ‫به‬ ‫را‬ ‫حالت‬ ‫این‬ ‫باشد‬ ‫نداشته‬stack overflow‫حالت‬ ‫این‬ ‫که‬ .‫یادمیکنند‬exception‫متود‬ ‫تعریف‬ ‫با‬ ‫میتوان‬ ‫را‬ ‫نام‬ ‫به‬ ‫دیگری‬isFull()( ‫کنترول‬handle.‫کرد‬ ) ‫از‬stack‫قبیل‬ ‫از‬ ‫مهم‬ ‫درمواردی‬Web Browsers،Undo mechanism،paste mechanism‫دکمهء‬ ،back‫در‬web browser‫و‬ ‫ها‬window‫میرویم‬ ‫مختلف‬ ‫عناصر‬ ‫بین‬ ‫ها‬ ‫گراف‬ ‫در‬ ‫زمانیکه‬ ‫مسیر‬ ‫نگهداشتن‬ ، ‫ها‬‫استفاده‬ ‫دیگر‬ ‫مورد‬ ‫وصدها‬ .‫میگردد‬ ‫از‬ ‫استفاده‬ ‫وابتدایی‬ ‫ساده‬ ‫شکل‬ ‫ذیل‬ ‫پروگرام‬Stack.‫میدهد‬ ‫رانشان‬ ( ‫اصلی‬ ‫متود‬ ‫حال‬ ‫و‬main method‫درآن‬ ‫و‬ ‫ساخته‬ ‫را‬ )object‫کالس‬Stack‫میکن‬ ‫استفاده‬ ‫آن‬ ‫از‬ ‫و‬ ‫ساخته‬ ‫را‬.‫یم‬
  13. 13. Page 13 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ Balanced Parentheses ‫از‬ ‫استفاده‬ ‫موارد‬ ‫از‬ ‫یکی‬stack‫بکار‬ ‫ها‬ ‫قوس‬ ‫ریاضیکی‬ ‫عملیات‬ ‫دراکثر‬ ‫شک‬ ‫بدون‬ ‫باشد‬ ‫می‬ ‫ها‬ ‫وقوس‬ ‫ریاضیکی‬ ‫عملیات‬ ‫بررسی‬ ، ‫الجبری‬ ‫افاده‬ ‫یک‬ ‫تا‬ ‫سازیم‬ ‫می‬ ‫را‬ ‫پروگرام‬ ‫بخش‬ ‫درین‬ ‫لذا‬ .‫میکند‬ ‫کمک‬ ‫زیاد‬ ‫مسایل‬ ‫حل‬ ‫در‬ ‫ها‬ ‫قوس‬ ‫بجای‬ ‫پایان‬ ‫و‬ ‫آغاز‬ ‫و‬ ‫میشوند‬ ‫برده‬ ‫ویاخیر؟‬ ‫است‬ ‫درست‬ ‫که‬ ‫کند‬ ‫بررسی‬ ‫و‬ ‫گرفته‬ ‫را‬ ‫او‬ ‫منظور‬ ‫بدین‬.‫کند‬ ‫بررسی‬ ‫هارا‬ ‫قوس‬ ‫بجابودن‬ ‫که‬ ‫میکنیم‬ ‫دیزاین‬ ‫را‬ ‫کالس‬ ‫ال‬
  14. 14. Page 14 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ ‫وحال‬‫متود‬isBalanced.‫میکنیم‬ ‫نوشته‬ ، ‫فوق‬ ‫دستورهای‬ ‫ادامه‬ ‫به‬ ‫میکند‬ ‫چیک‬ ‫را‬ ‫ها‬ ‫قوس‬ ‫بودن‬ ‫درست‬ ‫که‬ ‫را‬ ‫کالس‬ ‫وحال‬stack‫راهمانند‬.‫مینویسیم‬ ‫آن‬ ‫مربوطهء‬ ‫عملیات‬ ‫و‬ ‫ها‬ ‫متود‬ ‫با‬ ‫شد‬ ‫ذکر‬ ‫قبال‬ ‫که‬ ‫کالس‬
  15. 15. Page 15 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ Queue ‫ساخ‬‫به‬ ‫مشابه‬ ‫تقریبا‬ ‫که‬ ‫است‬ ‫دیگر‬ ‫تار‬stack‫تفاوت‬ ‫این‬ ‫با‬ ‫وتنها‬‫که‬‫ساختار‬ ‫درین‬item‫بار‬ ‫اولین‬ ‫که‬‫وارد‬‫پراسس‬ ‫بار‬ ‫اولین‬ ‫باشد‬ ‫شده‬ ‫میشود‬(First in First Out).‫وهدف‬‫روش‬ ‫تا‬ ‫ها‬ ‫دیتا‬ ‫ویا‬ ‫ها‬ ‫پراسه‬ ‫دادن‬ ‫قرار‬ ‫صف‬ ‫در‬ ‫هم‬ ‫ساختار‬ ‫این‬ ‫اصلی‬FIFO‫تطبیق‬ ‫آن‬ ‫باالی‬ .‫گردد‬‫مثال‬( ‫صف‬ ‫در‬ ‫نفر‬ ‫چندین‬ ‫ذیل‬ ‫درشکل‬Queue)‫صف‬ ‫از‬ ‫بار‬ ‫اولین‬ ‫گرفته‬ ‫قرار‬ ‫درصف‬ ‫بار‬ ‫اولین‬ ‫که‬ ‫شخصی‬ ‫دارند‬ ‫قرار‬ ‫آخری‬ ‫است‬ ‫پیوسته‬ ‫صف‬ ‫به‬ ‫بار‬ ‫آخرین‬ ‫که‬ ‫شخصی‬ ‫ترتیب‬ ‫همین‬ ‫به‬ ‫و‬ ‫میشود‬ ‫خارج‬.‫میگیرد‬ ‫قرار‬ ‫پراسس‬ ‫مورد‬ ‫بار‬ ‫ن‬
  16. 16. Page 16 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ ‫از‬‫ساختار‬Queue‫حا‬ ‫روزمره‬ ‫زندگی‬ ‫در‬ ‫آید‬ ‫می‬ ‫عمل‬ ‫به‬ ‫زیادی‬ ‫های‬ ‫استفاده‬‫صف‬ ‫در‬ ‫اشخاص‬ ‫ویا‬ ‫اشیا‬ ‫که‬ ‫میشود‬ ‫واقع‬ ‫زیادی‬ ‫الت‬ (queue‫مثال‬ .‫میگیرند‬ ‫قرار‬ )‫نانوایی‬ ‫صف‬،‫صف‬‫ب‬ ‫برای‬‫ازرسی‬‫وغیره‬ ، ‫محافظان‬ ‫توسط‬‫که‬ .‫ساختار‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫ما‬Queue .‫کنیم‬ ‫مادلینگ‬ ‫مذکوررا‬ ‫حاالت‬ ‫میتوانیم‬ ‫آسانی‬ ‫به‬ ‫بسیار‬ ‫ه‬‫مچنان‬‫از‬ ‫استفاده‬ ‫با‬ ‫تنها‬ ‫که‬ ‫میشود‬ ‫پیش‬ ‫حاالت‬ ‫بسیار‬ ‫نیز‬ ‫کمپیوتری‬ ‫های‬ ‫درسیستم‬queue.‫کنیم‬ ‫کنترول‬ ‫آنهارا‬ ‫میتوانیم‬‫مثال‬print ‫یعنی‬ .‫وغیره‬ ‫ازکیبورد‬ ‫حروف‬ ‫تایپ‬ ، ‫ها‬ ‫فایل‬ ‫شدن‬‫فایل‬ ‫به‬ ‫وسپس‬ ‫شده‬ ‫چاپ‬ ‫باید‬ ‫اول‬ ‫آمده‬ ‫شدن‬ ‫چاپ‬ ‫برای‬ ‫اول‬ ‫که‬ ‫فایل‬ ‫حاالت‬ ‫درین‬ .‫برود‬ ‫دومی‬‫وبه‬.‫شود‬ ‫داده‬ ‫نمایش‬ ‫صفحه‬ ‫درروی‬ ‫سپس‬ ‫و‬ ‫شده‬ ‫پراسس‬ ‫اوال‬ ‫باید‬ ‫میشود‬ ‫فشارداده‬ ‫اول‬ ‫کیبورد‬ ‫از‬ ‫که‬ ‫دکمهء‬ ‫ترتیب‬ ‫همین‬ ‫برای‬( ‫قطار‬ ‫کنترول‬queue‫های‬ ‫نام‬ ‫به‬ ‫دومتحول‬ ‫از‬ ‫ما‬ )first‫و‬last‫که‬ ‫میکنیم‬ ‫استفاده‬‫ابتدا‬ ‫در‬first=0‫و‬last=-1.‫باشد‬ ‫می‬ ‫م‬:‫ثال‬ class Queue { private int maxSize; private long[] queArray; private int first; private int last; private int nItems; public Queue(int s) { maxSize = s; queArray = new long[maxSize]; first = 0; last= -1; nItems = 0; } public void insert(long j) { if(last == maxSize - 1) last = -1; queArray[++last] = j;
  17. 17. Page 17 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ nItems++; } public long remove() { long temp = queArray[first++]; if(first == maxSize) first = 0; nItems--; return temp; } public long peekFirst() { return queArray[first]; } public boolean isEmpty() { return (nItems ==0); } public boolean isFull() { return (nItems==maxSize); } public int Size() { return nItems; } public static void main(String[] args) { Queue theQueue = new Queue(5); theQueue.insert(10); theQueue.insert(20); theQueue.insert(30); theQueue.insert(40); theQueue.remove(); theQueue.remove(); theQueue.remove(); theQueue.insert(50); theQueue.insert(60); theQueue.insert(70); theQueue.insert(80); while( !theQueue.isEmpty() ) { long n = theQueue.remove(); System.out.print(n); System.out.print(" "); } System.out.println(" "); } }
  18. 18. Page 18 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ Greedy Algorithm ‫است‬ ‫الگوریتم‬‫ازاینرو‬ .‫نمیکند‬ ‫را‬ ‫پراسس‬ ‫بعدی‬ ‫مراحل‬ ‫فکر‬ ‫وجه‬ ‫هیچ‬ ‫وبه‬ ‫نموده‬ ‫انتخاب‬ ‫را‬ ‫حالت‬ ‫بهترین‬ ‫پراسس‬ ‫مرحلهء‬ ‫هر‬ ‫در‬ ‫که‬ ( ‫حریص‬ ‫های‬ ‫الگوریتم‬ ‫نام‬ ‫به‬greedy algorithm‫داشته‬ ‫زیاد‬ ‫استعمال‬ ‫موارد‬ ‫ها‬ ‫الگوریتم‬ ‫نوع‬ ‫این‬ .‫میشوند‬ ‫یاد‬ )‫اپلیکیشن‬ ‫مثال‬ ‫بطور‬ ‫از‬ ‫ها‬ ‫پرابلم‬ ‫حل‬ ‫منظور‬ ‫به‬ ‫ذیل‬ ‫های‬greedy algorithm:‫میکنند‬ ‫استفاده‬ MST (Minimum Spanning Tree) OSPF (Open Shortest Path First) File Compression & Hoffman Algorithm A simple scheduling algorithm Greedy algorithm‫مانند‬ ‫های‬ ‫ساختار‬ ‫در‬graph‫و‬Tree.‫شود‬ ‫تطبیق‬ ‫میتواند‬ Graph ( ‫میموری‬ ‫در‬ ‫دیتا‬ ‫ذخیره‬ ‫های‬ ‫ازروش‬ ‫یکی‬data structure‫سایر‬ ‫برخالف‬ ‫و‬ ‫میگردد‬ ‫استفاده‬ ‫زیاد‬ ‫مسایل‬ ‫در‬ ‫که‬ ‫باشد‬ ‫می‬ ) ‫شکل‬ ‫به‬ ‫دیتارا‬ ‫خواندیم‬ ‫که‬ ‫سترکچرهای‬non linear‫میموری‬ ‫در‬represent.‫میکند‬‫جا‬ ‫عناصر‬ ‫درآن‬ ‫که‬ ‫میموری‬ ‫های‬ ‫قسمت‬ ‫یعنی‬ ‫شده‬ ‫ثبت‬ ‫مسلسل‬ ‫غیر‬ ‫شکل‬ ‫وبه‬ ‫حافظه‬ ‫از‬ ‫مختلف‬ ‫های‬ ‫درقسمت‬ ‫بلکه‬ ‫نگردیده‬ ‫ذخیره‬ ‫پیوسته‬ ‫شکل‬ ‫وبه‬ ‫مستقیم‬ ‫خط‬ ‫یک‬ ‫باالی‬ ‫میگیرد‬ ‫تباط‬ ‫ار‬ ‫شان‬ ‫همجوار‬ ‫عناصر‬ ‫طریق‬ ‫از‬ ‫ویاهم‬ ‫مستقیم‬ ‫لینک‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫یا‬ ‫شان‬ ‫دیگر‬ ‫باهم‬ ‫عناصر‬ ‫ولی‬.‫دارند‬ ‫مجموعهء‬ ‫از‬ ‫که‬ ‫است‬ ‫ساختار‬ ‫گراف‬ ‫که‬ ‫میتوانیم‬ ‫گفته‬ ‫پس‬node‫و‬ ) ‫(عناصر‬ ‫ها‬edge‫این‬ ‫و‬ ‫است‬ ‫شده‬ ‫ها)ساخته‬ ‫(لینک‬ ‫ها‬node ‫شان‬ ‫بایکدیگر‬ ‫ها‬‫توسط‬edge‫ها‬.‫دارند‬ ‫ارتباط‬‫ویا‬‫اصطالحات‬ ‫اگر‬child‫و‬parent‫از‬binary tree‫هر‬ ‫طوریکه‬ ‫شود‬ ‫حذف‬ ‫عناصر‬ ‫از‬ ‫هریکی‬ ‫به‬ ‫بتواند‬ ‫عنصر‬(‫میگردد‬ ‫یاد‬ ‫گراف‬ ‫بنام‬ ‫ذیل‬ ‫ساختار‬ ‫شود‬ ‫وصل‬ ‫دیگر‬binary tree‫هر‬ ‫که‬ ‫است‬ ‫ساختار‬child ‫یک‬ ‫تنها‬parent‫چندین‬ ‫و‬child‫میتوا‬ ‫داشته‬‫ند‬.) Vertices or Nodes Node‫یک‬ ‫آن‬ ‫کدام‬ ‫هر‬ ‫که‬ ‫باشد‬ ‫حافظه‬ ‫از‬ ‫های‬ ‫موقعیت‬ ‫میتواند‬ ‫هرکدام‬ ‫عناصر‬ ‫ویا‬ ‫ها‬task‫اکثرا‬ ‫عناصر‬ ‫این‬ ‫و‬ .‫میدهد‬ ‫رانشان‬ ‫منحیث‬object.‫شود‬ ‫تمثیل‬ ‫جاوا‬ ‫های‬ ‫کالس‬ ‫در‬‫آن‬ ‫از‬ ‫سپس‬ ‫و‬ ‫بسازیم‬ ‫هارا‬ ‫کالس‬ ‫عناصر‬ ‫بخاطر‬ ‫باید‬ ‫ما‬ ‫یعنی‬object‫بسازیم‬ ‫وهر‬object‫یک‬ ‫منحیث‬node.‫میگردد‬ ‫معرفی‬ Edges‫دو‬ ‫که‬ ‫های‬ ‫الین‬ ‫از‬ ‫مجموعهء‬ :node‫نام‬ ‫به‬ ‫میکند‬ ‫وصل‬ ‫باهم‬ ‫را‬edge‫میگر‬ ‫یاد‬‫درصورتیکه‬ .‫دد‬edge‫دار‬ ‫جهت‬ ‫ها‬ (directed edge‫کدام‬ ‫که‬ ‫دهد‬ ‫می‬ ‫نشان‬ ‫باشند‬ )task‫ویا‬node‫از‬ ‫قبل‬task.‫شود‬ ‫پراسس‬ ‫دیگری‬ Adjacency vertices‫یک‬ ‫توسط‬ ‫که‬ ‫میشوند‬ ‫گفته‬ ‫همجوار‬ ‫زمانی‬ ‫دوعنصر‬ :edge.‫باشد‬ ‫داشته‬ ‫ارتباط‬ ‫مستقیم‬ ‫شکل‬ ‫به‬ Path‫از‬ ‫مجموعه‬ :vertices‫دو‬ ‫که‬ ‫متصل‬ ‫های‬node‫نام‬ ‫به‬ ‫میسازد‬ ‫وصل‬ ‫باهم‬ ‫را‬path‫بین‬ ‫ارتباط‬ ‫ذیل‬ ‫درشکل‬ ‫مثال‬ .‫میگردد‬ ‫یاد‬ ‫عناصر‬G‫و‬A‫هم‬ ‫به‬ ‫متصل‬ ‫عناصر‬ ‫از‬ ‫استفاده‬ ‫با‬D‫و‬B‫گرفته‬ ‫صورت‬‫نام‬ ‫به‬ ‫مسیر‬ ‫این‬ ‫که‬path.‫میشود‬ ‫نامیده‬
  19. 19. Page 19 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ Completed or connected Graph‫زمانی‬ ‫ها‬ ‫گراف‬ :completed‫هر‬ ‫که‬ ‫میشوند‬ ‫نامیده‬node‫تمام‬ ‫به‬node‫دیگر‬ ‫های‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫درگراف‬edges:‫باشند.مثال‬ ‫داشته‬ ‫ارتباط‬ ‫جداگانه‬ ‫های‬ Directed Graph ‫جهات‬ ‫که‬ ‫اند‬ ‫های‬ ‫گراف‬edge‫تحت‬ ‫دیگری‬ ‫عنصر‬ ‫از‬ ‫قبل‬ ‫عنصر‬ ‫کدام‬ ‫که‬ ‫میدهد‬ ‫نشان‬ ‫وجهات‬ .‫است‬ ‫مشخص‬ ‫عناصر‬ ‫بین‬ ‫ها‬ .‫قرارگیرد‬ ‫پراسس‬ Undirected Graph‫ج‬ ‫که‬ ‫اند‬ ‫های‬ ‫گراف‬ :.‫باشد‬ ‫نگردیده‬ ‫مشخص‬ ‫عناصر‬ ‫بین‬ ‫هت‬ Weighted Graph( ‫ها‬ ‫لینک‬ ‫درآن‬ ‫که‬ ‫های‬ ‫گراف‬ :edges‫نام‬ ‫به‬ ‫باشد‬ ‫وزن‬ ‫دارای‬ )weighted Graph‫میتواند‬ ‫میگردد.وزن‬ ‫یاد‬ .‫باشد‬ ‫وغیره‬ ‫قیمت‬ ، ‫فاصله‬:‫مثال‬ )‫نیست‬ ‫منطقی‬ ‫والیات‬ ‫موقعیت‬ ‫شود‬ ‫واضح‬ ‫دار‬ ‫وزن‬ ‫های‬ ‫گراف‬ ‫تا‬ ‫است‬ ‫مثال‬ ‫یک‬ ‫فوق‬ ‫(شکل‬
  20. 20. Page 20 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ ‫معرفی‬‫درمیموری‬ ‫گراف‬ ‫ونمایش‬ .‫پردازیم‬ ‫می‬ ‫ها‬ ‫پروگرام‬ ‫در‬ ‫فوق‬ ‫اجزای‬ ‫از‬ ‫یک‬ ‫هر‬ ‫معرفی‬ ‫چگونگی‬ ‫به‬ ‫حال‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫است‬ ‫بهتر‬ ‫گراف‬ ‫عناصر‬ ‫کردیم‬ ‫ذکر‬ ‫قبال‬ ‫همانطوریکه‬object‫دا‬ ‫نمایش‬ ‫ها‬‫دارای‬ ‫عناصر‬ ‫تمام‬ ‫دیگر‬ ‫طرف‬ ‫واز‬ .‫شود‬ ‫ده‬ ‫بناء‬ ‫باشند‬ ‫می‬ ‫مشابه‬ ‫مشخصات‬ ‫و‬ ‫خواص‬object‫شکل‬ ‫به‬ ‫ها‬array‫داشته‬ ‫را‬ ‫کالس‬ ‫یک‬ ‫باید‬ ‫اوال‬ ‫که‬ ‫است‬ ‫واضح‬ .‫میگردد‬ ‫معرفی‬ ‫آن‬ ‫از‬ ‫بتوانیم‬ ‫تا‬ ‫باشیم‬object.‫میکنیم‬ ‫دیزاین‬ ‫ذیل‬ ‫طور‬ ‫عناصر‬ ‫برای‬ ‫را‬ ‫کالسی‬ ‫بناء‬ .‫کنیم‬ ‫معرفی‬ ‫هارا‬ ( ‫ها‬ ‫راه‬ ‫تمثیل‬ ‫برای‬edges‫از‬ ).‫میگردد‬ ‫استفاده‬ ‫ذیل‬ ‫روش‬ ‫دو‬ Adjacency Matrix‫(یا‬array)‫دوبعدی‬ ‫های‬ Adjacency list Adjacency matrix‫درحقیقت‬two dimensional Array‫راه‬ ‫عنصر‬ ‫دو‬ ‫بین‬ ‫آیا‬ ‫که‬ ‫کند‬ ‫می‬ ‫مشخص‬ ‫آن‬ ‫جزء‬ ‫هر‬ ‫که‬ ‫باشد‬ ‫می‬ ‫دارای‬ ‫گراف‬ ‫ویاخیر.ودرصورتیکه‬ ‫دارد‬ ‫وجود‬N‫کامل‬ ‫تمثیل‬ ‫برای‬ ‫ما‬ ‫درینصورت‬ ‫باشد‬ ‫عنصر‬edge‫باید‬ ‫میموری‬ ‫در‬ ‫ها‬NxN dimensional array‫نمایی‬ ‫معرفی‬ ‫را‬.‫م‬‫از‬ ‫استفاده‬ ‫با‬ ‫و‬ ‫گرفته‬ ‫مدنظر‬ ‫میباشد‬ ‫عنصر‬ ‫چهار‬ ‫دارای‬ ‫راکه‬ ‫ذیل‬ ‫گراف‬ ‫مثال‬ ‫بطور‬ adjacency matrix.‫میدهیم‬ ‫نشان‬ ‫را‬ ‫عناصر‬ ‫ارتباط‬ ‫ذیل‬ ‫طوری‬ A B C D A 0 1 1 1 B 1 0 0 1 C 1 0 0 0 D 1 1 0 0
  21. 21. Page 21 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ .‫دهیم‬ ‫شرح‬ ‫گراف‬ ‫در‬ ‫را‬ ‫افغانستان‬ ‫مختلف‬ ‫شهر‬ ‫چند‬ ‫میخواهیم‬ :‫مثال‬ ‫بطور‬ ‫بناء‬‫دارای‬ ‫که‬ ‫باشد‬ ‫می‬ ‫ها‬ ‫شهر‬ ‫گراف‬ ‫این‬ ‫در‬ ‫عناصر‬ ‫و‬ ‫نگهدارد‬ ‫درخود‬ ‫را‬ ‫عناصر‬ ‫خصوصیات‬ ‫که‬ ‫میسازیم‬ ‫را‬ ‫کالس‬ ‫اوال‬ .‫میکنیم‬ ‫اکتفا‬ ) ‫شده‬ ‫دیده‬ ‫شهر‬ ‫(آیا‬ ‫و‬ )‫شهر‬ ‫(نام‬ ‫آن‬ ‫مشخصه‬ ‫دو‬ ‫به‬ ‫تنها‬ ‫ما‬ ‫باشدولی‬ ‫می‬ ‫زیاد‬ ‫خصوصیات‬ ‫نام‬ ‫به‬ ‫را‬ ‫دیگری‬ ‫کالس‬ ‫وحال‬graph‫کالس‬ ‫از‬ ‫که‬ ‫میسازیم‬Vertices‫و‬ ‫نموده‬ ‫استفاده‬edges.‫نماید‬ ‫تمثیل‬ ‫هارا‬ .‫کنیم‬ ‫اضافه‬ ‫درآن‬ ‫راهارا‬ ‫و‬ ‫شهرها‬ ‫که‬ ‫میسازیم‬ ‫را‬ ‫کالس‬ ‫مرحله‬ ‫درین‬
  22. 22. Page 22 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ ‫گراف‬ ‫در‬ ‫جستجو‬Search in Graph ‫شامل‬ ‫میشود‬ ‫عناصر‬ ‫که‬ ‫است‬ ‫عناصر‬ ‫دربین‬ ‫جستجو‬ ‫شود‬ ‫ارایه‬ ‫گراف‬ ‫توسط‬ ‫میتواند‬ ‫که‬ ‫اساسی‬ ‫بسیار‬ ‫عملیات‬ ‫از‬ ‫یکی‬Object‫های‬ ‫ها‬ ‫شبکه‬ ‫جستجوی‬ ‫یعنی‬ ‫ها‬ ‫روتر‬ ‫جستجوی‬ ‫که‬ ‫کند‬ ‫تمثیل‬ ‫درشبکه‬ ‫را‬ ‫روتر‬ ‫میتواند‬ ‫عناصر‬ ‫مثال‬ ‫باشد‬ ‫مختلف‬‫روت‬ ‫کدام‬ ‫واینکه‬‫باهم‬ ‫ها‬ ‫ر‬ ‫دارند‬ )‫(همجوار‬ ‫مستقیم‬ ‫ارتباط‬.‫کند‬ ‫تمثیل‬ ‫نقشه‬ ‫یک‬ ‫در‬ ‫را‬ ‫شهرها‬ ‫میتواند‬ ‫عناصر‬ ‫ترتیب‬ ‫همین‬ ‫به‬ .‫از‬ ‫استفاده‬ ‫با‬ ‫که‬searching ‫دریابیم‬ ‫میتوانیم‬‫ویاخیر؟‬ ‫است‬ ‫موجود‬ ‫راه‬ ‫شهر‬ ‫دو‬ ‫بین‬ ‫آیا‬ ‫که‬ .‫میکند‬ ‫استفاده‬ ‫ستراتیژی‬ ‫دو‬ ‫از‬ ‫گراف‬ ‫کار‬ ‫این‬ ‫وبرای‬ ‫شود‬ ‫دیده‬ ‫مکمل‬ ‫بطور‬ ‫گراف‬ ‫باید‬ ‫عنصر‬ ‫یک‬ ‫جستجوی‬ ‫برای‬‫عبارتن‬ ‫که‬:‫از‬ ‫د‬ DFS (Depth-First Search) BFS (Breadth-First Search) ‫می‬ ‫بررسی‬ ‫را‬ ‫گراف‬ ‫یک‬ ‫موجود‬ ‫عناصر‬ ‫تمام‬ ‫ذیل‬ ‫روش‬ ‫هردو‬‫ولی‬ ‫کند‬DFS‫از‬ ‫عملیه‬ ‫اجرای‬ ‫برای‬Stack‫درحالیکه‬ ‫میکند‬ ‫استفاده‬ BFS‫از‬Queue.‫میکند‬ ‫استفاده‬
  23. 23. Page 23 of 23 "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ DFS (Depth-First Search) ‫دراین‬( ‫آغاز‬ ‫نقطهء‬ ‫یک‬ ‫اوال‬ ‫که‬ ‫میگیرد‬ ‫صورت‬ ‫طوری‬ ، ‫گراف‬ ‫در‬ ‫جستجو‬ ‫روش‬node)‫شروع‬ ‫جستجو‬ ‫ازآن‬ ‫باید‬ ‫که‬‫مثال‬A‫را‬ ‫و‬ ‫نموده‬ ‫انتخاب‬‫اولین‬ ‫به‬ ‫سپس‬node‫همجوار‬A‫رفته‬‫مثال‬B‫آنرا‬ ‫و‬visit.‫میکنیم‬ ‫نشانی‬ ‫و‬ ‫نموده‬‫وسپس‬‫همسایه‬ ‫اولین‬ ‫به‬B‫ر‬‫فته‬ ‫وآنرا‬visit‫وبدین‬ .‫میکنیم‬ ‫ونشانی‬‫مید‬ ‫ادامه‬ ‫ترتیب‬.‫هیم‬‫و‬‫درهرمرحله‬node‫در‬ ‫هارا‬Stuck( ‫داخل‬push)‫تا‬ .‫میکنیم‬‫به‬ ‫زمانیکه‬ ‫آخرین‬node‫رسیدیم‬node‫هارا‬pop‫تا‬ .‫بیاییم‬ ‫عقب‬ ‫به‬ ‫و‬ ‫نموده‬‫تمام‬Node.‫شود‬ ‫جستجو‬ ‫همجوار‬ ‫های‬

×