کتاب ساختمان داده‌ها با پایتون

کتاب ساختمان داده‌ها با پایتون


کتاب ساختمان داده‌ها با پایتون نوشته‌ی رمضان عباس نژادورزی و جواد وحیدی، علاوه بر تدریس مفاهیم ساختمان داده‌ها با مثال‌های متعدد، الگوریتم‌های بیان شده را با زبان پایتون پیاده‌سازی نموده است.

ساختمان داده‌ یکی از درس‌های پایه‌ای و مهم رشته مهندسی کامپیوتر، فناوری اطلاعات و علوم کامپیوتر است. از نکات بارز این کتاب این است که علاوه بر تدریس علمی مفاهیم نکات تستی را نیز بیان نموده. در همین راستا حدود 450 تست کنکور کارشناسی ارشد رشته‌های مهندسی کامپیوتر، فناوری اطلاعات و علوم کامپیوتر دانشگاه‌های دولتی و آزاد به همراه حل تشریحی آن‌ها در پیوست کتاب الکترونیکی آمده است.

این کتاب شامل 7 فصل است. در فصل اول، الگوریتم‌ها، پیچیدگی آن‌ها و الگوریتم‌های بازگشتی بیان گردیده است. در فصل دوم کتاب، آرایه، ماتریس، ماتریس خلوت و کاربردهای آن‌ها آمده است. در فصل سوم، مفاهیم صف و پشته و کاربرد آن‌ها شرح داده‌ شده است. در فصل چهارم، لیست پیوندی بیان گردیده. در فصل پنجم، درخت و کاربردهای آن را می‌بینید. در فصل ششم، گراف و کاربردهای آن بحث شده است و در خاتمه در فصل هفتم، روش‌های مختلف مرتب‌سازی بیان گردیده است. علاوه بر فصل‌های بیان‌ شده به کتاب الکترونیکی دو پیوست اضافه گردیده است. پیوست اول به آموزش برنامه‌نویسی پایتون به‌طور خلاصه پرداخته است. اما، پیوست دوم 450 تست کارشناسی ارشد را مطرح نموده و به‌ صورت تشریحی حل نموده است.

پایتون (Python) یک زبان برنامه‌نویسی همه منظوره، سطح بالا، شیءگرا، اِسکریپتی و متن باز است که توسط خیدو فان روسوم در سال 1991 در کشور هلند طراحی شد. فلسفهٔ ایجاد آن تأکید بر دو هدف اصلی خوانایی بالای برنامه‌های نوشته شده و کوتاهی و بازدهی نسبی بالای آن است. کلمات کلیدی و اصلی این زبان به صورت حداقلی تهیه شده‌اند و در مقابل کتابخانه‌هایی که در اختیار کاربر است بسیار وسیع هستند.

برخلاف برخی زبان‌های برنامه‌نویسی رایج دیگر که بلاک‌های کد در آکولاد تعریف می‌شوند (به ویژه زبان‌هایی که از گرامر زبان سی پیروی می‌کنند) در زبان پایتون از نویسه فاصله و جلو بردن متن برنامه برای مشخص کردن بلاک‌های کد استفاده می‌شود. به این معنی که تعدادی یکسان از نویسه فاصله در ابتدای سطرهای هر بلاک قرار می‌گیرند، و این تعداد در بلاک‌های کد درونی‌تر افزایش می‌یابد. بدین ترتیب بلاک‌های کد به صورت خودکار ظاهری مرتب دارند.

پایتون مدل‌های مختلف برنامه‌نویسی را پشتیبانی می‌کند و برای مشخص کردن نوع متغیرها از یک سامانهٔ پویا استفاده می‌کند. این زبان از زبان‌های برنامه‌نویسی مفسر بوده و به صورت کامل یک زبان شیءگرا است که در ویژگی‌ها با زبان‌های تفسیری پرل، روبی، اسکیم، اسمال‌تاک و تی‌سی‌ال مشابهت دارد و از مدیریت خودکار حافظه استفاده می‌کند.

فهرست مطالب
فصل اول:‌ ساختار داده‌ها، الگوریتم‌ها و پیچیدگی
ساختمان داده‌ها
ساختمان داده‌های ایستا
ساختمان داده‌های پویا
ساختمان داده‌های نیمه ایستا
الگوریتم
کارایی الگوریتم
مرتبه اجرائی
توابع بازگشتی
مسائل حل‌شده
فصل دوم: آرایه
آرایه یک‌بعدی (بردار)
مفاهیم کلی و پیاده‌سازی آرایه یک‌بعدی
دسترسی به عناصر آرایه
مقداردهی به عناصر آرایه
نمایش به عناصر آرایه
عملیات مهم بر روی آرایه یک‌بعدی (لیست خطی)
جست‌وجو در آرایه
آرایه دوبعدی و چندبعدی
مفاهیم کلی و پیاده‌سازی آرایه دوبعدی و چندبعدی
عملیات مهم بر روی آرایه دوبعدی بعدی (ماتریس)
ماتریس خلوت
تطابق الگوی رشته
مسائل حل‌شده
فصل سوم: پشته و صف
پشته
پیاده‌سازی پشته با آرایه
کاربردهای پشته
پشته چندگانه
صف
پیاده‌سازی صف با آرایه
عملیات مهم صف
مشکل صف معمولی
راه حل مشکل صف خطی حذف و جا به جایی عناصر
حل مشکل صف خطی با استفاده از صف حلقوی
چند نکته در مورد صف و پشته
مسائل حل‌شده
فصل چهارم: لیست پیوندی
لیست تک پیوندی
تعریف ساختار هر گره در لیست پیوندی
پیاده‌سازی عملیات اساسی روی لیست پیوندی
لیست پیوندی حلقوی
لیست دو پیوندی
تعریف کلاس‌های لیست دو پیوندی
درج گره‌ای به ابتدای لیست دو پیوندی
درج گره‌ای در انتهای لیست دو پیوندی
درج گره‌ای بعد از گره خاص لیست دو پیوندی
حذف گره‌ای از ابتدای لیست دو پیوندی
حذف گره‌ای از انتهای لیست دو پیوندی
حذف گره خاص از لیست دو پیوندی
پیمایش و نمایش گره‌های لیست دو پیوندی از ابتدا به انتها
پیمایش و نمایش گره‌های لیست دو پیوندی از انتها به ابتدا
لیست دو پیوندی چرخشی (حلقوی)
پیاده‌سازی پشته با لیست پیوندی
تعریف کلاس گره
تعریف کلاس پشته
پیاده‌سازی تابع push
پیاده‌سازی تابع pop
پیاده‌سازی صف با لیست پیوندی
تعریف کلاس گره
تعریف کلاس صف و عملیات روی آن
پیچیدگی اعمال مختلف لیست پیوندی در یک نگاه
فصل پنجم: درخت
تعاریف
درخت دودویی
شمارش درخت‌های دودویی
انواع درخت دودویی
پیاده‌سازی درخت‌های دودویی
پیمایش درخت دودویی
ساخت درخت دودویی با استفاده از پیمایش‌های آن
نمایش عبارت‌های محاسباتی با درخت دودویی
درخت نخی دودویی
درخت‌های عمومی
نمایش درخت عمومی
پیمایش درخت عمومی
تبدیل درخت‌های عمومی به دودویی
جنگل
تبدیل جنگل به درخت دودویی
درخت‌هایی با ساختار ویژه
درخت Heap
درخت جست‌و‌جوی دودویی
درخت AVL
درخت انتخابی
فصل ششم: گراف
تعاریف
نمایش گراف
ماتریس مجاورتی
ماتریس برخورد
لیست مجاورتی
لیست مجاورتی معکوس
تعداد مسیرها در گراف
ماتریس مسیر
پیمایش گراف
پیمایش عمقی
پیمایش ردیفی (عرضی)
یافتن مؤلفه‌های متصل گراف
مرتب‌سازی توپولوژیکی
درخت پوشا
فصل هفتم: مرتب‌سازی
مفاهیم مهم در الگوریتم‌های مرتب‌سازی
الگوریتم‌های مرتب‌سازی
مرتب‌سازی حبابی
مرتب‌سازی انتخابی
مرتب‌سازی درجی
مرتب‌سازی درجی Shell
مرتب‌سازی جابه‌جایی
مرتب‌سازی سریع
مرتب‌سازی ادغامی
مرتب‌سازی مبنا
مرتب‌سازی هرمی
مرتب‌سازی سطلی
مرتب‌سازی Radix
مرتب‌سازی شمارشی
مرتب‌سازی‌های دیگر
منابع

مطالب مرتبط

تگ‌ها

مطالب پربیننده

پربیننده
آخرین مطالب

عضویت در خبرنامه