tgoop.com/javapro_ir/4405
Last Update:
پیش از ورود به مبحث DSA، لازم است پایههای خود را در زبان جاوا تقویت کنید:
۱. تسلط بر مفاهیم برنامهنویسی شیءگرا شامل Abstraction، Encapsulation، Inheritance و Polymorphism
۲. آشنایی با Collections Framework شامل List، Set و Map
۳. یادگیری مدیریت استثناها (Exception Handling)
۴. تمرین کار با Java Streams و Lambda Expressions
۵. توانایی نوشتن کد تمیز، ماژولار و قابل تست
آرایهها و رشتهها:
۱. پیدا کردن بیشترین مجموع یک زیرآرایه
۲. یافتن تمام زیررشتههایی که پالیندروم هستند
۳. پیادهسازی مسئله «دو جمع» (Two Sum)
۴. پیادهسازی الگوریتم Kadane برای بیشترین مجموع زیرآرایه
۵. پیدا کردن عدد گمشده در یک آرایه از اعداد صحیح
۶. ادغام دو آرایه مرتب در یک آرایه مرتب
۷. بررسی اینکه آیا یک رشته پالیندروم است یا نه
۸. یافتن اولین کاراکتر غیرتکراری در یک رشته
۹. حذف عناصر تکراری از یک آرایه مرتب
لیستهای پیوندی:
۱۰. برعکس کردن یک لیست پیوندی
۱۱. شناسایی حلقه در لیست پیوندی
۱۲. پیدا کردن عنصر میانی یک لیست پیوندی
۱۳. ادغام دو لیست پیوندی مرتب
۱۴. پیادهسازی پشته با استفاده از لیست پیوندی
۱۵. یافتن نقطه اشتراک دو لیست پیوندی
پشتهها و صفها:
۱۶. پیادهسازی پشته با آرایه
۱۷. پیادهسازی پشتهای که عملیات push، pop، top و بازیابی حداقل عنصر را انجام دهد
۱۸. پیادهسازی صف حلقهای (Circular Queue)
۱۹. طراحی پشتهای که عملیات push، pop، top و بازیابی بیشترین عنصر را پشتیبانی کند
۲۰. طراحی صف با استفاده از پشتهها
درختها و درختهای جستجوی دودویی:
۲۱. یافتن ارتفاع یک درخت دودویی
۲۲. یافتن کمترین اجداد مشترک دو گره در یک درخت دودویی
۲۳. بررسی اینکه آیا یک درخت دودویی یک درخت جستجوی دودویی معتبر است یا نه
۲۴. سریالسازی و دیسریالسازی یک درخت دودویی
۲۵. پیادهسازی پیمایش Inorder در یک درخت دودویی
۲۶. یافتن قطر یک درخت دودویی
۲۷. تبدیل یک درخت دودویی به آینه آن
گرافها:
۲۸. پیادهسازی جستجوی عمقی (DFS)
۲۹. پیادهسازی جستجوی سطحی (BFS)
۳۰. یافتن کوتاهترین مسیر بین دو گره در یک گراف بدون وزن
۳۱. شناسایی حلقه در یک گراف بدون جهت با استفاده از DFS
۳۲. بررسی دوبخشی بودن یک گراف (Bipartite)
۳۳. یافتن تعداد مؤلفههای همبند در یک گراف بدون جهت
۳۴. یافتن پلها (Bridges) در یک گراف
مرتبسازی و جستجو:
۳۵. پیادهسازی مرتبسازیهای حبابی، درجی، انتخابی و ادغامی (Bubble, Insertion, Selection, Merge Sort)
۳۶. پیادهسازی مرتبسازی سریع (Quicksort)
۳۷. پیادهسازی جستجوی دودویی (Binary Search)
۳۸. پیادهسازی جستجوی درونیابی (Interpolation Search)
۳۹. یافتن kامین عنصر کوچکتر در یک آرایه
۴۰. شمارش تعداد وارونگیها (Inversions) در یک آرایه — وارونگی زمانی رخ میدهد که دو عنصر نسبت به ترتیب صحیح جابهجا باشند
⚡️ @javapro_ir✈️ @group_javapro