Data Structures and Algorithms in Java 5th Edition
این کتاب، نسخهی دانشجویی و بین المللی ساختمان دادهها و الگوریتمها در جاواست که به معرفی ساختمان دادهها و الگوریتمها ، شامل طراحی و آنالیز و پیاده سازی آنها میپردازد.
طراحی و آنالیز ساختمان دادههای کارا، مدت هاست که به عنوان یک موضوع حیاتی در محاسبات و یک درس مهم در علوم کامپیوتر و مهندسی کامپیوتر شناخته میشود. معمولا، دروس مقدماتی به صورت دو یا سه درس پشت سرهم ارائه میشوند. ساختمان دادههای ابتدایی معمولا به صورت مختصر در اولین درس برنامه نویسی یا درس مقدمه ای بر علوم کامپیوتر ارائه میشوند به صورت عمقی تر، در دروس ساختمان داده ای بعد از این دروس ادامه پیدا میکنند.علاوه بر این ، این ترتیب درس معمولا در جای دیگری در برنامهی تحصیلی به صورت عمقی تر، با مطالعه درس ساختمان دادهها و الگوریتمها دنبال خواهد شد.
ما احساس میکنیم که نقش اساسی طراحی و آنالیز ساختمان دادهها در برنامهی تحصیلی کاملا توجیه شده است، بیان اهمیت ساختمان دادههای موثر و کارا در بیشتر سیستمهای نرم افزاری از قبیل وب، سیستمهای عامل، پایگاههای داده، کامپایلرها و سیستمهای شبیه سازی علمی.
با توجه به ضرورت الگوی شی گرایی در انتخاب فریمورک ها، برای ساخت نرم افزار هایی با قابلیت استفاده مجدد و قدرتمند، ما سعی کردیم تا این مطالب را به طور کامل از نقطه نظر شی گرایی بنویسیم. یکی از ایدههای اصلی شی گرایی این است که دادهها باید به صورت کپسول هایی باشند و با متدهایی که ارائه میدهند با دنیای بیرون از خود ارتباط برقرار و تغییر کنند. این باعث میشود که نمایش دادهها به صورت یک مجموعه از بایتها و آدرسها آسان شود.
ذهنیت ما از اشیای داده ها، نمونه ای از یک نوع داده ای انتزاعی (ADT) است، که شامل یک سری متد برای انجام عملیات بر روی دادههای اشیای این نوع است، همچنین راه حلهای شی گرایی، معمولا بر اساس مجموعه از الگوهای طراحی طبقه بندی میشوند تا امکان استفاده مجدد نرم افزار و تنومندی آن فراهم شود. بنابر این، ما هر ساختمان دادهای را با استفاده از ADTها و پیاده سازی آنها ارائه دادیم و همچنین الگوهای مهم طراحی را به عنوان وسیله ای برای دسته بندی آن پیاده سازیها به صورت کلاس، متدها و اشیا معرفی کرده ایم.
برای هر ADT ارائه شده در این کتاب ما یک اینترفیس جاوا نیز فراهم کرده ایم. همچنین ساختمان دادههای واقعی که ADTها را تحقق میبخشند، مورد بحث قرار گرفته و معمولا کلاسهای جاوای واقعی که این انترفیسها را پیاده سازی کرده اند ارائه شده است. همچنین پیاده سازی جاوای الگوریتمهای پایه ای مانند مرتب سازی، جست و جوی گراف نیز ارائه شده اند.
علاوه بر این ها، برای فراهم کردن تکنیک هایی برای استفاده از ساختمان دادهها در پیاده سازی ADT ها، ما تعدادی برنامهی نمونه از ساختمان دادهها قرار داده ایم.به علت محدودیتهای فضا، اگرچه گاهی وقتها فقط قطعه کدی از بعضی پیاده سازیها در این کتاب قرار دادیم، ولی شما میتوانید سورس کدهای کامل را از سایت ناشر بگیرید. جاوا کد هایی که ساختمان دادههای پایه ای را پیاده سازی کرده اند، در این کتاب به صورت یک پکیج با نام net.datastructures، دسته بندی شده اند، که یک کتابخانه از ساختمان دادهها و الگوریتمها در جاوا برای اهداف آموزشی و مکمل کتابخانههای خود جاوا را تشکیل میدهد.
سر فصلهای این کتاب:
1. اصول برنامه نویسی جاوا
2. طرا حی شی گرا
3. آرایه ها، لیستهای پیوندی و بازگشتی
4. اصول ریاضیات
5. پشتهها و صف ها
6. لیست انتزاعی
7. ساختمان درخت
8. صفهای اولویت دار
9. نقشهها د دیکشنری ها
10. جست و جوی ساختمان درخت ها
11. مرتب سازی و انتخاب
12. پردازش متن
13. گراف ها
14. حافظه
15. حقایق مفید ریاضی