آموزش دوره جامع ساختار داده و الگوریتم با پایتون - آخرین آپدیت

دانلود Complete Data Structure and Algorithms Course in Python

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

این دوره ساختار داده و الگوریتم (DSA) با پایتون به شما کمک می‌کند تا نحوه کار با داده‌ها و حل مسائل کدنویسی را با استفاده از پایتون بیاموزید. شما از مفاهیم پایه شروع کرده و به صورت گام‌به‌گام و ساده به سمت مباحث پیشرفته حرکت خواهید کرد.

در این دوره، ساختارهای داده مهمی مانند لیست‌ها، پشته‌ها، صف‌ها، درخت‌ها و گراف‌ها را خواهید آموخت. همچنین الگوریتم‌های رایجی از جمله جستجو، مرتب‌سازی و هشینگ را فرا می‌گیرید. شما یاد خواهید گرفت که چگونه راهکارهای مختلف را بر اساس پیچیدگی زمانی و مکانی مقایسه کنید و مفاهیمی مانند بازگشتی (Recursion)، نماد Big O، برنامه‌نویسی پویا، تقسیم و غلبه و روش‌های حریصانه (Greedy) را درک کنید.

این دوره برای کسانی که قصد آماده‌سازی برای مصاحبه‌های شغلی کدنویسی، استخدام در شرکت‌های تکنولوژی یا تقویت مهارت حل مسئله دارند، بسیار مفید است. این دوره مهارت‌های لازم برای تفکر منطقی و نوشتن کدهای بهینه با پایتون را به شما می‌بخشد.


چرا DSA یاد بگیریم؟


  • به شما کمک می‌کند بفهمید نرم‌افزارها در لایه‌های داخلی چگونه کار می‌کنند.

  • باعث می‌شود کدهای شما سریع‌تر و بهینه‌تر شوند.

  • برای موفقیت در مصاحبه‌های استخدامی و آزمون‌های آنلاین برنامه‌نویسی حیاتی است.

  • توانایی حل مسئله و تفکر منطقی شما را بهبود می‌بخشد.


چه کسانی باید در این دوره ثبت‌نام کنند:


  • دانشجویان: دانشجویان کالج یا مدرسه که می‌خواهند مهارت‌های حل مسئله و کدنویسی خود را ارتقا دهند.

  • برنامه‌نویسان آینده: افرادی که قصد دارند توسعه‌دهنده نرم‌افزار، مهندس سیستم، مهندس داده شوند یا در حوزه تکنولوژی فعالیت کنند.

  • متخصصان شاغل: توسعه‌دهندگانی که می‌خواهند DSA را مرور کنند، کدهای بهتری بنویسند یا برای تغییر شغل و مصاحبه‌ها آماده شوند.

منابع دوره:


  • منابع آنلاین: مسائل تمرینی، کوییزها و تمرینات کدنویسی.

  • راهنمای نرم‌افزاری: راهنمایی‌های ساده برای نصب پایتون و راه‌اندازی ویرایشگری مانند VS Code یا هر IDE آنلاین.


مدرس:


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


سرفصل ها و درس ها

DSA چیست، چرا و چگونه؟ DSA - What, Why and How ?

  • چرا DSA مهم است؟ Why is DSA Important ??

  • نقشه راه یادگیری DSA Roadmap to learn DSA

تحلیل الگوریتم‌ها Analysis of Algorithms

  • مرتبه رشد Order of Growth

  • نماد Big O Big O Notation

  • تحلیل الگوریتم‌ها (پیش‌زمینه) Analysis of Algorithms (Background)

  • نماد Omega Omega Notation

  • نماد Theta Theta Notation

  • تحلیل حلقه‌های رایج Analysis of Common Loops

  • تحلیل بازگشتی Analysis of Recursion

  • پیچیدگی مکانی Space Complexity

ریاضیات Mathematics

  • مجموع اعداد طبیعی Sum of Natural numbers

  • شمارش ارقام Count Digits

  • عدد پالیندروم Palindrome Number

  • فاکتوریل یک عدد Factorial of a number

  • بزرگترین مقسوم علیه مشترک (GCD) GCD or HCF of two numbers

  • کوچکترین مضرب مشترک (LCM) LCM of two numbers

  • بررسی عدد اول Check for Prime

  • تجزیه به عوامل اول Prime Factorization

  • تمام مقسوم‌علیه‌های یک عدد All Divisors of a Number

  • غربال اراتستن Sieve of Eratosthenes

  • محاسبه توان Computing Power

  • توان تکرار شونده (توان‌رسانی دودویی) Iterative Power (Binary Exponentiation)

جادوی بیت‌ها (Bit Magic) Bit Magic

  • عملگرهای بیتی در پایتون بخش اول Bitwise Operators in Python Part 1

  • عملگرهای بیتی در پایتون بخش دوم Bitwise Operators in Python Part 2

  • نمایش دودویی اعداد منفی Binary Representation of Negative Numbers

  • بررسی ست بودن بیت k-ام Check Kth bit is set or not

  • شمارش بیت‌های یک Count Set Bits

  • یافتن تنها عدد فرد Find the only Odd

  • توان ۲ Power of 2

  • یافتن یک عدد با تکرار فرد One Odd Occurring

  • یافتن دو عدد با تکرار فرد Two odd occurring

  • مجموعه توانی با استفاده از عملیات بیتی Power Set using Bitwise

بازگشتی Recursion

  • مقدمه‌ای بر بازگشتی Recursion Introduction

  • کاربردهای بازگشتی Applications of Recursion

  • تمرینات بازگشتی (بخش اول) Practice For Recursion (Part 1)

  • تمرینات بازگشتی (بخش دوم) Practice For Recursion (Part 2)

  • چاپ ۱ تا N با بازگشتی در پایتون Print 1 to N using Recursion in Python

  • چاپ N تا ۱ با بازگشتی در پایتون Print N to 1 using Recursion in Python

  • بازگشتی دمی (Tail Recursion) Tail Recursion

  • نوشتن موارد پایه در بازگشتی Writing base cases in Recursion

  • مجموع ارقام با استفاده از بازگشتی Sum Of Digits Using Recursion

  • بررسی پالیندروم با استفاده از بازگشتی Palindrome Check Using Recursion

  • مسئله برش طناب Rope Cutting Problem

  • برج هانوی در پایتون Tower of Hanoi in Python

  • مسئله جوزفوس در پایتون Josephus Problem in Python

  • یافتن تمام مجموع‌های زیرمجموعه‌ای متمایز Find all distinct subset (or subsequence) sums

  • چاپ تمام جایگشت‌ها Printing all Permutations

  • کندی کراش محدود شده Restrictive Candy Crush

لیست List

  • مقدمه‌ای بر لیست (آرایه با اندازه پویا) List (Dynamic Sized Array) Introduction

  • نحوه کار لیست در پایتون Working of List in Python

  • میانگین یک لیست Average or Mean of a List

  • جداسازی اعداد زوج و فرد Separate Even and Odd

  • یافتن عناصر کوچک‌تر Get Smaller Elements

  • برش (Slicing) در لیست، تاپل و رشته Slicing (List,Tuple And String)

  • کامپرهنشن (Comprehensions) در پایتون Comprehensions in Python

  • بزرگترین عنصر در یک لیست Largest Element in a List

  • دومین عنصر بزرگ در یک لیست Second Largest Element in a list

  • بررسی مرتب بودن لیست Check if a list is Sorted

  • معکوس کردن لیست در پایتون Reverse a List in Python

  • حذف موارد تکراری Remove Duplicates

  • کار با آرایه Play with an array

  • سه تایی شادترین (Happiest Triplet) Happiest Triplet

  • چرخش چپ لیست به اندازه یک Left Rotate a List by one

  • چرخش چپ به اندازه d جایگاه Left Rotate by d Places

  • بیشترین مجموع زیرآرایه Maximum Subarray Sum

  • طولانی‌ترین زیرآرایه زوج-فرد Longest Even Odd Subarray

  • بیشترین مجموع زیرآرایه دایره‌ای Maximum Circular Sum SubArray

  • عنصر اکثریت Majority Element

  • حداقل تعداد تغییرات (Flips) Min Number of Flips

  • تکنیک پنجره لغزان (Sliding Window) Sliding Window Technique

  • زیرآرایه با مجموع مشخص Subarray with Given Sum

  • تکنیک مجموع پیشوندی (Prefix Sum) Prefix Sum Technique

  • نقطه تعادل Equilibrium Point

  • بیشترین عنصر ظاهر شده در بازه‌ها Maximum Appearing Element in Ranges

جستجو Searching

  • جستجوی دودویی در پایتون Binary Search in Python

  • جستجوی دودویی بازگشتی در پایتون Recursive Binary Search in Python

  • تحلیل جستجوی دودویی Analysis of Binary Search

  • اندیس اولین occurrence در آرایه مرتب Index of First Occurrence in a Sorted Array

  • اندیس آخرین occurrence Index of Last Occurrence

  • شمارش تعداد ۱ها در لیست دودویی مرتب Count 1's in a Sorted Binary List

  • جذر (Square Root) Square Root

  • جستجو در آرایه مرتب Sorted Array Search

  • جستجو در آرایه چرخان شده ۲ Search in Rotated Array 2

  • یافتن مقدار چرخش k-ام Find Kth Rotation

  • شمارش تکرارها در آرایه مرتب Count Occurrences in a Sorted Array

  • رویکرد دو اشاره‌گر (Two Pointers) Two Pointers Approach

  • سه تایی در آرایه مرتب Triplet in a Sorted Array

  • میانه دو آرایه مرتب Median of Two Sorted Arrays

  • عناصر تکراری (بخش اول) Repeating Elements (Part 1)

  • عنصر تکراری (بخش دوم) Repeating Element (Part 2)

  • تخصیص حداقل صفحات (روش ساده) Allocate Minimum Pages (Naive Method)

  • تخصیص حداقل صفحات (جستجوی دودویی) Allocate Minimum pages (Binary Search)

مرتب‌سازی Sorting

  • مرتب‌سازی در پایتون Sorting in Python

  • متد List Sort در پایتون List Sort in Python

  • توابع Sorted در پایتون Sorted in Python

  • پایداری در الگوریتم‌های مرتب‌سازی Stability in Sorting Algorithm

  • مرتب‌سازی حبابی (Bubble Sort) Bubble Sort

  • مرتب‌سازی انتخابی (Selection Sort) Selection Sort

  • مرتب‌سازی درجی (Insertion Sort) Insertion Sort in Python

  • مقدمه‌ای بر مرتب‌سازی ادغامی (Merge Sort) Merge sort introduction

  • ادغام دو آرایه مرتب Merge Two Sorted Arrays

  • ادغام زیرآرایه‌ها Merge Subarrays

  • الگوریتم Merge Sort Merge Sort Algorithm

  • تحلیل Merge Sort Merge Sort Analysis

  • اجتماع دو آرایه مرتب Union of two sorted array

  • اشتراک دو آرایه مرتب Intersection of two sorted array

  • شمارش وارونگی‌ها (Inversions) در آرایه Count inversions in Array

  • افراز یک آرایه داده شده Partition a Given Array

  • افراز Hoare Hoare's Partition

  • مقدمه‌ای بر مرتب‌سازی سریع (Quick Sort) Quick Sort Introduction

  • Quick Sort با افراز Lomuto Quick Sort using Lomuto Partition

  • Quick Sort با افراز Hoare Quick Sort using Hoare's Partition

  • تحلیل Quick Sort Analysis of Quick Sort

  • تحلیل فضای Quick Sort Space Analysis of Quick Sort

  • مرتب‌سازی هیپ (Heap Sort) Heap Sort

  • مروری بر الگوریتم‌های مرتب‌سازی Overview of sorting algorithm

  • حذف فراخوانی دمی در Quick Sort Tail Call Elimination in Quick Sort

  • K-امین کوچکترین عنصر Kth Smallest

  • حداقل اختلاف در یک آرایه Minimum Difference in an Array

  • مسئله توزیع شکلات Chocolate Distribution Problem

  • مرتب‌سازی آرایه با دو نوع عنصر Sort an array with two types of element

  • مرتب‌سازی آرایه با سه نوع عنصر Sort an array with three types of elements

  • ادغام بازه‌های هم‌پوشان Merge overlapping intervals

  • ملاقات با حداکثر مهمانان Meeting the maximum guests

  • مرتب‌سازی شمارشی (Counting Sort) Counting Sort

  • مرتب‌سازی چرخشی (Cycle Sort) Cycle Sort

  • مقدمه‌ای بر مرتب‌سازی رادیکسی (Radix Sort) Radix Sort - Introduction

  • پیاده‌سازی Radix Sort در پایتون Radix Sort - Python Implementation

  • مقدمه‌ای بر مرتب‌سازی سطل (Bucket Sort) Bucket Sort - Introduction

  • پیاده‌سازی Bucket Sort Bucket Sort Implementation

ماتریس Matrix

  • آرایه‌های چندبعدی در پایتون Multidimentional Array in Python

  • ارسال آرایه دو-بعدی به عنوان آرگومان در پایتون Passing a 2D array as argument in Python

  • ماتریس با الگوی مار (Snake Pattern) Matrix in Snake Pattern

  • پیمایش محیط ماتریس Matrix Boundary Traversal

  • ترانهاده یک ماتریس Transpose of a Matrix

  • ردیف با بیشترین تعداد ۱ها Row with max 1s

  • میانه یک ماتریس مرتب شده ردیفی Median of a row wise sorted matrix

  • پیاده‌سازی میانه در ماتریس مرتب شده ردیفی Median in a row-wise sorted Matrix - implementation

هشینگ Hashing

  • مقدمه‌ای بر هشینگ Introduction to Hashing

  • کاربردهای هشینگ Hashing Application

  • جدول آدرس مستقیم Direct Address Table

  • توابع هش Hashing Functions

  • مدیریت برخورد (Collision Handling) Collision Handling

  • زنجیرسازی (Chaining) Chaining

  • پیاده‌سازی Chaining در پایتون Implementation of Chaining in Python

  • آدرس‌دهی باز (Open Addressing) Open Addressing

  • هشینگ دوگانه (Double Hashing) Double Hashing

  • فرکانس‌ها در یک آرایه محدود Frequencies in a Limited Array

  • پیاده‌سازی Open Addressing در پایتون Implementation of Open Addressing in Python

  • مقایسه Chaining و Open Addressing Chaining vs Open Addressing

  • مجموعه (Set) در پایتون Set in Python

  • دیکشنری (Dictionary) در پایتون Dictionary in Python

  • شمارش عناصر متمایز در یک لیست Count Distinct Elements in a List

  • اشتراک دو آرایه Intersection of two Arrays

  • زیررشته‌های متمایز Distinct Substrings

  • زیرآرایه با مجموع صفر در پایتون Subarray with 0 sum in Python

  • زیرآرایه با مجموع مشخص Subarray with Given Sum

  • بررسی جایگشت پالیندروم Check for Palindrome Permutation

  • طولانی‌ترین زیرآرایه با مجموع مشخص Longest Subarray with given sum

  • طولانی‌ترین زیرآرایه با تعداد برابر صفر و یک Longest Subarray with equal number of zero and one

  • طولانی‌ترین بازه مشترک با مجموع یکسان در آرایه دودویی Longest Common Span with Same sum in Binary Array

  • شمارش عناصر متمایز در هر پنجره Count distinct elements in every window

  • تکرار بیش از n/k More than n/k Occurence

  • تکرار بیش از n/k (راهکار O(nk)) More than n/k Occurences (O(nk) solution)

  • شمارش زیرآرایه‌ها با k عدد فرد Count Subarray with k odds

رشته String

  • رشته‌ها در پایتون Strings in Python

  • توالی‌های Escape و رشته‌های خام (Raw Strings) Escape Sequences and Raw Strings

  • رشته‌های فرمت شده در پایتون Formatted String in Python

  • مقایسه رشته‌ها در پایتون String Comparison in Python

  • عملیات رشته‌ای بخش اول String Operations Part (1)

  • عملیات رشته‌ای بخش دوم String Operations Part (2)

  • معکوس کردن رشته در پایتون Reverse A String in Python

  • اعتبارسنجی یک آدرس IP Validate an IP Address

  • بررسی پالیندروم در پایتون Check For Palindrome In Python

  • بررسی اینکه آیا یک رشته، زیرتوالی رشته دیگر است Check if a String is Subsequence of Other

  • بررسی آناگرام در پایتون Check for Anagram in Python

  • چپ‌ترین کاراکتر تکراری Leftmost Repeating Character

  • معکوس کردن کلمات در یک رشته Reverse words in a string

  • مروری بر جستجوی الگو (Pattern Searching) Overview of Pattern Searching

  • جستجوی الگو در پایتون Pattern Searching in Python

  • جستجوی الگوی ساده (Naive) Naive Pattern Searching

  • جستجوی ساده بهبود یافته برای موارد متمایز Improved Naive Pattern Searching for Distinct

  • الگوریتم رابین-کارپ (Rabin Karp) Rabin Karp Algorithm

  • الگوریتم KMP (بخش اول: ساخت آرایه LPS) KMP Algorithm (Part 1: Constructing LPS Array)

  • الگوریتم KMP (بخش دوم: الگوریتم کامل) KMP Algorithm (Part 2 : Complete Algorithm)

  • رتبه لغت‌نامه‌ای (Lexicographic rank) یک رشته Lexicographic rank of a String

  • طولانی‌ترین زیررشته با کاراکترهای متمایز Longest Substring With Distinct Characters

  • ضرب دو رشته Multiply two strings

  • زیرتوالی رشته String Subsequence

لیست پیوندی Linked List

  • مشکلات ساختار داده آرایه Problems with Array Data Structure

  • مقدمه‌ای بر لیست پیوندی در پایتون Linked List Introduction in Python

  • پیاده‌سازی ساده لیست پیوندی در پایتون Simple Linked List Implementation in Python

  • کاربردهای لیست پیوندی Applications of Linked List

  • پیمایش لیست پیوندی در پایتون Traversing a Linked List in Python

  • جستجو در لیست پیوندی Search in Linked List

  • درج در ابتدای لیست پیوندی در پایتون Insert At The Beginning of Linked list in Python

  • درج در انتهای لیست پیوندی Insert at The End Of Linked List

  • درج در موقعیت مشخص در لیست پیوندی یک‌طرفه Insert at Given Position in Singly Linked list

  • حذف اولین گره لیست پیوندی در پایتون Delete First Node Of Linked List in Python

  • حذف آخرین گره لیست پیوندی Delete Last Node of Linked List

  • حذف گره با داشتن اشاره‌گر به آن Delete a node with pointer given to it

  • درج مرتب در لیست پیوندی در پایتون Sorted Insert Linked List in Python

  • میانه لیست پیوندی Middle of Linked List

  • N-امین گره از انتهای لیست پیوندی Nth Node From end of Linked List

  • حذف تکراری‌ها از لیست پیوندی یک‌طرفه مرتب Remove duplicates from a sorted Singly Linked List

  • معکوس کردن لیست پیوندی در پایتون Reverse a Linked List In Python

  • معکوس کردن بازگشتی لیست پیوندی (بخش اول) Recursive Reverse A Linked List (Part 1)

  • معکوس کردن بازگشتی لیست پیوندی (بخش دوم) Recursive Reverse A Linked List (Part 2)

  • لیست پیوندی دوطرفه در پایتون Doubly Linked List in Python

  • مقایسه لیست پیوندی یک‌طرفه و دوطرفه (مزایا و معایب) Singly Vs Doubly Linked List (Advantages & Disadvantages)

  • درج در ابتدای DLL در پایتون Insert at the Beginning of DLL in Python

  • درج در انتهای DLL در پایتون Insert at the End of DLL in Python

  • حذف سر (Head) لیست پیوندی دوطرفه Delete Head of A Doubly Linked List

  • حذف آخرین گره DLL در پایتون Delete Last Node of DLL in Python

  • معکوس کردن لیست پیوندی دوطرفه در پایتون Reverse A Doubly Linked Llist in Python

  • لیست پیوندی دایره‌ای در پایتون Circular Linked List in Python

  • لیست پیوندی دایره‌ای (مزایا و معایب) Circular Linked List (Advantages & Disadvantages)

  • پیمایش لیست پیوندی دایره‌ای Circular Linked List traversal

  • درج در ابتدای لیست پیوندی دایره‌ای Insert at the Beginning of Circular Linked List

  • درج در انتهای لیست پیوندی دایره‌ای Insert at The End of A Circular Linked List

  • حذف سر (Head) لیست پیوندی دایره‌ای Delete Head of circular Linked List

  • حذف k-امین گره لیست پیوندی دایره‌ای Delete Kth Node of Circular Linked List

  • معکوس کردن لیست پیوندی در گروه‌های k تایی Reverse a linked list in groups of size k

  • جداسازی گره‌های زوج و فرد Segregate Even and Odd Nodes

  • تعویض جفتی گره‌ها Pairwise Swap Nodes

  • شبیه‌سازی (Clone) لیست پیوندی با اشاره‌گر تصادفی Clone a linked list with Random Pointer

  • ادغام دو لیست پیوندی مرتب Merge two sorted linked lists

  • لیست پیوندی پالیندروم Palindrome Linked List

  • چرخش لیست پیوندی دوطرفه Rotate doubly Linked List

  • حذف تمام تکرارهای یک عنصر در لیست پیوندی Remove all occurences of duplicates in a linked list

پشته Stack

  • ساختار داده پشته (Stack) Stack Data Structure

  • پشته در پایتون Stack in Python

  • پیاده‌سازی پشته با لیست پیوندی در پایتون Linked List Implementation of Stack in Python

  • کاربردهای پشته Applications of Stack

  • بررسی تعادل پرانتزها در پایتون Check for Balanced Parenthesis in Python

  • پیاده‌سازی دو پشته در یک آرایه Implement two Stacks in an Array

  • پیاده‌سازی K پشته در یک آرایه Implement K Stacks in an Array

  • مسئله Stock Span Stock Span Problem

  • عنصر بزرگتر قبلی Previous Greater Element

  • عنصر بزرگتر بعدی Next Greater Element

  • بزرگترین مساحت در هیستوگرام - بخش اول Largest Area in a Histogram - Part 1

  • بزرگترین مساحت در هیستوگرام - بخش دوم Largest Area in a Histogram - Part 2

  • بزرگترین مستطیل با تمام ۱ها Largest Rectangle with all 1's

  • پشته با قابلیت getMin() در O(1) Stack with getMin() in O(1)

  • طراحی پشته با getMin() در فضای O(1) Design a Stack with getMin() in O(1) Space

  • مقدمه‌ای بر Infix, Prefix و Postfix Infix, Prefix and Postfix Introduction

  • تبدیل Infix به Postfix (راهکار ساده) Infix to Postfix (Simple Solution)

  • تبدیل Infix به Postfix (راهکار بهینه) Infix to Postfix (Efficient Solution)

  • ارزیابی Postfix Evaluation of Postfix

  • تبدیل Infix به Prefix (راهکار ساده) Infix to Prefix (Simple Solution)

  • تبدیل Infix به Prefix (راهکار بهینه) Infix to Prefix (Efficient Solution)

  • ارزیابی Prefix Evaluation of Prefix

صف Queue

  • ساختار داده صف (Queue) Queue Data Structure

  • کاربردهای ساختار داده صف Application of Queue Data structure

  • صف در پایتون Queue in Python

  • پیاده‌سازی صف با لیست پیوندی در پایتون Linked List Implementation of Queue in Python

  • پیاده‌سازی صف با استفاده از لیست دایره‌ای Queue Implementation using Circular List

  • پیاده‌سازی پشته با استفاده از صف Implement Stack using Queue

  • معکوس کردن صف Reverse a Queue

  • تولید n عدد اول با ارقام داده شده Generate first n numbers with the given digits

دک (Deque) Deque

  • مقدمه‌ای بر Deque Deque Introduction

  • کاربردهای Deque Deque Applications

  • Deque در پایتون Deque in Python

  • پیاده‌سازی Deque با لیست پیوندی Linked List Implementation of Deque

  • پیاده‌سازی Deque با لیست List Implementation of Deque

  • طراحی ساختار داده با عملیات min/max Design a data structure with min/max operations

  • بیشترین مقدار تمام زیرآرایه‌های اندازه k Maximums of all subarrays of size k

  • اولین تور دایره‌ای First Circular Tour

درخت Tree

  • ساختار داده درخت (Tree) Tree Data Structure

  • کاربردهای درخت Application of Tree

  • درخت دودویی در پایتون Binary Tree in Python

  • پیمایش درخت Tree Traversal

  • پیمایش Inorder در پایتون Inorder Traversal in Python

  • پیمایش Preorder در پایتون Preorder Traversal in Python

  • پیمایش Postorder در پایتون Postorder Traversal in Python

  • ارتفاع درخت دودویی Height of Binary Tree

  • چاپ گره در فاصله K Print Node at K distance

  • پیمایش سطح به سطح (Level Order) Level Order Traversal

  • اندازه درخت دودویی در پایتون Size of Binary Tree in Python

  • بیشترین مقدار در درخت دودویی Maximum in Binary Tree

  • نمای چپ درخت دودویی Left View of Binary Tree

  • بررسی تعادل درخت دودویی Check for Balanced Binary Tree

  • حداکثر عرض درخت دودویی Maximum Width of Binary Tree

  • تبدیل درخت دودویی به لیست پیوندی دوطرفه Convert Binary Tree to Doubly Linked List

  • ساخت درخت دودویی از Inorder و Preorder Construct Binary Tree from Inorder and Preorder

  • پیمایش درخت به صورت مارپیچ (Spiral) Tree Traversal in Spiral Form

  • قطر درخت دودویی Diameter of a Binary Tree

  • کمترین جد مشترک (LCA) درخت دودویی - بخش اول LCA of Binary Tree (Part 1)

  • کمترین جد مشترک (LCA) درخت دودویی - بخش دوم LCA of Binary Tree (Part 2)

  • سوزاندن درخت دودویی از یک برگ Burn a Binary Tree from a Leaf

  • درخت دودویی تاشو (Foldable) Foldable Binary Tree

  • شمارش گره‌ها در درخت دودویی کامل Count Nodes in a Complete Binary Tree

  • سریال‌سازی و دسریال‌سازی درخت دودویی Serialize and Deserialize a Binary Tree

  • نمای پایین درخت دودویی Bottom View of Binary Tree

  • پیمایش Inorder تکرار شونده Iterative Inorder Traversal

  • پیمایش Preorder تکرار شونده Iterative Preorder Traversal

  • پیمایش Preorder تکرار شونده (بهینه‌سازی شده در فضا) Iterative Preorder Traversal (Space Optimized)

درخت جستجوی دودویی Binary Search Tree

  • درخت جستجوی دودویی (پیش‌زمینه) Binary Search Tree(Background)

  • درخت جستجوی دودویی (مقدمه) Binary Search Tree(Introduction)

  • جستجو در BST Search in BST

  • درج در BST Insert in BST

  • حذف گره از BST Delete a node from BST

  • کف (Floor) در BST (مسئله و ایده راهکار) Floor in BST (Problem and Solution Idea)

  • پیاده‌سازی Floor در BST با پایتون BST Floor in Python

  • سقف (Ceiling) در BST با پایتون Ceiling in BST in Python

  • BST خود-متعادل‌ساز Self Balancing BST

  • درخت AVL AVL Tree

  • درخت سیاه و قرمز (Red Black Tree) Red Black Tree

  • مسیرهای ریشه تا برگ Root to Leaf Paths

  • اصلاح BST با جابجایی دو گره Fix BST with Two Nodes Swapped

  • BST با بن‌بست (Dead End) BST with Dead End

  • کاربردهای BST Applications of BST

هیپ (Heap) Heap

  • مقدمه‌ای بر Binary Heap Binary Heap Introduction

  • پیاده‌سازی Heap در پایتون (مقدمه) Heap Python Implementation (Introduction)

  • درج در Binary Heap Binary Heap Insert

  • Binary Heap (استخراج مینیمم و Heapify) Binary Heap (Extract min and Heapify)

  • عملیات کاهش کلید و حذف Decrease Key and Delete Operations

  • ساخت Heap Build Heap

  • مرتب‌سازی هیپ (Heap Sort) Heap Sort

  • کتابخانه heapq در پایتون Heapq in Python

  • به حداکثر رساندن اسباب‌بازی‌ها Maximize Toys

  • K عنصر بزرگتر K Largest Elements

  • K عنصر نزدیک‌تر K Closest Element

  • یافتن موقعیت درج K در آرایه مرتب Search insert position of K in a sorted array

  • ادغام K آرایه مرتب Merge K sorted Arrays

  • میانه یک جریان داده (Stream) Median of a Stream

گراف Graph

  • مقدمه‌ای بر گراف Introduction to Graph

  • نمایش گراف (ماتریس مجاورت) Graph Representation (Adjacency Matrix)

  • نمایش گراف (لیست مجاورت) Graph Representation (Adjacency List)

  • نمایش لیست مجاورت گراف در پایتون Graph Adjacency List Representation in Python

  • مقایسه ماتریس و لیست مجاورت Adjacency Matrix and List Comparison

  • جستجوی اول سطح (BFS) در پایتون Breadth First Search in Python

  • BFS برای گراف‌های غیرپیوسته BFS for Disconnected Graph

  • اجزای متصل در گراف بدون جهت با BFS Connected Components in an Undirected Graph using BFS

  • کاربردهای BFS Applications of BFS

  • تعداد گام‌های اسب شطرنج Steps by Knight

  • جستجوی اول عمق (DFS) Depth First Search

  • DFS برای گراف‌های غیرپیوسته DFS For Disconnected Graph

  • اجزای متصل در گراف بدون جهت با DFS Connected Components in an Undirected Graph using DFS

  • کاربردهای DFS Applications of DFS

  • کوتاه‌ترین مسیر در گراف بدون وزن Shortest Path in an Unweighted Graph

  • مرتب‌سازی توپولوژیک (الگوریتم Kahn بر پایه BFS) Topological Sorting (Kahn's BFS Based Algortihm)

  • مرتب‌سازی توپولوژیک (الگوریتم بر پایه DFS) Topological Sorting (DFS Based Algorithm)

  • کوتاه‌ترین مسیر در DAG Shortest Path in DAG

  • الگوریتم Prim / درخت پوشای مینیمم (MST) Prim's Algorithm/Minimum Spanning Tree

  • پیاده‌سازی الگوریتم Prim Implementation of Prims Algorithm

  • الگوریتم کوتاه‌ترین مسیر دایکسرا (Dijkstra) Dijkstra's Shortest Path Algorithm

  • پیاده‌سازی الگوریتم دایکسرا Implementation of Dijkstra Algorithm

  • الگوریتم کوساراجو - بخش اول Kosaraju's Algorithm Part 1

  • الگوریتم کوساراجو - بخش دوم Kosaraju's Algorithm Part 2

  • الگوریتم کوتاه‌ترین مسیر بلمن-فورد Bellman Ford Shortest Path Algorithm

  • نقطه مفصلی (Articulation Point) Articulation Point

  • پل‌ها در گراف Bridges in Graph

  • الگوریتم تارچان (Tarjan) Tarjans Algorithm

  • الگوریتم کروسکال (Kruskal) Kruskal's Algorithm

  • بسته‌بندی متن (Word Wrap) Word Wrap

الگوریتم‌های حریصانه Greedy

  • مقدمه‌ای بر الگوریتم‌های حریصانه Introduction to Greedy Algorithms

  • مسئله انتخاب فعالیت Activity Selection Problem

  • انتخاب فعالیت Activity Selection

  • مسئله کوله‌پشتی کسری (Fractional Knapsack) Fractional Knapsack Problem

  • کوله‌پشتی کسری در پایتون Fractional Knapsack in Python

  • حداکثر قطارهای قابل توقف Maximum trains for which stoppage can be provided

  • کدگذاری هافمن (مقدمه) Huffman Coding (introduction)

  • الگوریتم‌های هافمن Huffman Algorithms

پس‌گرد (Backtracking) Backtracking

  • مفهوم پس‌گرد (Backtracking) Concept of backtracking

  • موش در هزارتو Rat In a Maze

  • مسئله N-ملکه N Queen Problem

  • حل سودوکو Solve the Sudoku

برنامه‌نویسی پویا Dynamic Programming

  • مقدمه‌ای بر برنامه‌نویسی پویا (DP) Introduction to DP

  • یادداشت‌برداری در DP (Memoization) Dynamic Programming Memoization

  • جدول‌بندی در DP (Tabulation) Dynamic Programming Tabulation

  • تغییرات LCS Variation of LCS

  • تعویض سکه - بخش اول (راهکار بازگشتی) Coin Change - Part 1 (Recursive Solution)

  • تعویض سکه - بخش دوم (راهکار DP) Coin Change - Part 2 (DP Solution)

  • طولانی‌ترین زیرتوالی صعودی در O(nLogn) Longest Increasing Subsequence in O(nLogn)

  • تغییرات LIS (بخش اول) Variations of LIS (Part 1)

  • تغییرات LIS (بخش دوم) Variations of LIS (Part 2)

  • برش طناب (راهکار DP) Rope Cutting (DP Solution)

  • حداقل سکه برای ساخت یک مقدار مشخص Minimum coins to make a given value

  • استراتژی بهینه برای بازی - بخش اول (بازگشتی) Optimal Strategy for a Game - Part 1 (Recursive Solutions)

  • استراتژی بهینه برای بازی - بخش دوم (DP) Optimal Strategy for a Game - Part 1 (DP Solution)

  • پازل رها کردن تخم‌مرغ - بخش اول Egg Dropping Puzzle - Part 1

  • پازل رها کردن تخم‌مرغ - بخش دوم Egg Dropping Puzzle - Part 2

  • شمارش BSTهای دارای n کلید Count BSTs with n Keys

  • بیشترین مجموع بدون دو عنصر متوالی Maximum Sum with No Two Consecutive

  • ضرب زنجیره‌ای ماتریس‌ها (راهکار ساده) Matrix Chain Multiplication - Naive Solution

  • ضرب زنجیره‌ای ماتریس‌ها (راهکار DP) Matrix Chain Multiplication - DP Solution

  • افراز پالیندروم Palindrome Partitioning

  • تخصیص حداقل صفحات (روش ساده) Allocate Minimum Pages (Naive Method)

  • تخصیص حداقل صفحات (راهکار DP) Allocate Minimum Pages - DP Solution

  • طولانی‌ترین زیرتوالی تکراری Longest Repeating Subsequence

  • پرانتزگذاری در ضرب زنجیره‌ای ماتریس‌ها Brackets in Matrix Chain Multiplication

  • برش میله Rod Cutting

  • بزرگترین مربع تشکیل شده در ماتریس Largest square formed in a matrix

  • تمام افرازهای پالیندرومی All Palindromic Partitions

  • رشته بهتر Better String

تری (Trie) Trie

  • ساختار داده تری (Trie) - مقدمه Trie Data Structure (Introduction)

  • تری (نمایش، جستجو و درج) Trie (Representation, Search and Insert)

  • حذف در تری Trie Delete

  • شمارش ردیف‌های متمایز در ماتریس دودویی Count Distinct Rows in a Binary Matrix

درخت‌های سگمنت و بایندکس Segment and Binary Indexed Trees

  • درخت سگمنت (مقدمه) Segment Tree (Introduction)

  • ساخت درخت سگمنت Constructing Segment Tree

  • پرس‌وجوی بازه (Range Query) در درخت سگمنت Range Query on Segment Tree

  • پرس‌وجوی به‌روزرسانی در درخت سگمنت Update query on Segment Tree

  • درخت بایندکس (مقدمه) Binary Indexed Tree (Intoduction)

  • درخت بایندکس (یک مسئله نمونه) Binary Indexed Tree (An Example Problem)

  • درخت بایندکس (مجموع پیشوندی) Binary Indexed Tree (Prefix Sum)

  • پیاده‌سازی بایندکس (عملیات به‌روزرسانی) Binary Indexed Implementation (Update Operation)

  • ساخت درخت بایندکس Binary Indexed Tree (Construction)

مجموعه مجزا (Disjoint Set) Disjoint Set

  • مقدمه‌ای بر مجموعه‌های مجزا (Disjoint Set) Disjoint Set Introduction

  • عملیات Find و Union در مجموعه‌های مجزا Find and Union Operations on Disjoint Sets

  • اتصال بر اساس رتبه (Union by Rank) Union by Rank

  • فشرده‌سازی مسیر (Path Compression) Path Compression

  • الگوریتم کروسکال Kruskal's Algorithm

نمایش نظرات

آموزش دوره جامع ساختار داده و الگوریتم با پایتون
جزییات دوره
71 hours
414
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
534
4.6 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

GeeksforGeeks (GfG) GeeksforGeeks (GfG)

گیکز فور گیکز (GeeksforGeeks)