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

دانلود 100 Days of Code: JavaScript Data Structures and Algorithms

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

آیا آماده‌اید مهارت‌های جاوا اسکریپت خود را متحول کنید و به شکلی ساختاریافته، جذاب و کاربردی بر ساختمان داده‌ها و الگوریتم‌ها مسلط شوید؟

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


چرا این دوره؟

  • بسیاری از دوره‌ها تئوری‌های خشک ارائه می‌دهند، اما این دوره متفاوت است!
  • برنامه ساختاریافته ۱۰۰ روزه – دیگر نیازی نیست نگران این باشید که بعداً چه چیزی یاد بگیرید. ما هر روز شما را راهنمایی می‌کنیم.
  • تمرین‌های کدنویسی عملی – بیش از ۱۵۰ تمرین با مسائل کدنویسی واقعی، از جمله چالش‌های LeetCode، HackerRank و به سبک FAANG.
  • آمادگی عملی برای مصاحبه – بر مفاهیم دقیقی که در مصاحبه‌های کدنویسی پرسیده می‌شوند، با توضیحات گام به گام مسلط شوید.
  • توضیح پیچیدگی Big O – تکنیک‌های کدنویسی بهینه را بیاموزید، راه‌حل‌های خود را بهینه‌سازی کنید و کد مقیاس‌پذیر بنویسید.
  • غواصی عمیق در جاوا اسکریپت – نه فقط الگوریتم‌ها، بلکه پیاده‌سازی‌های ویژه جاوا اسکریپت که مهارت‌های حل مسئله شما را تقویت می‌کنند.

چه چیزی یاد خواهید گرفت:


این دوره هر چیزی که باید در مورد ساختمان داده‌ها و الگوریتم‌ها (DSA) در جاوا اسکریپت بدانید را پوشش می‌دهد:

  • نمادگذاری Big O و تحلیل پیچیدگی

یاد بگیرید چگونه کد خود را تحلیل و بهینه کنید.

ساختمان داده‌های ضروری

  • آرایه‌ها، لیست‌های پیوندی (تکی، دوتایی، حلقوی)
  • پشته‌ها و صف‌ها (پیاده‌سازی آرایه و لیست پیوندی)
  • جداول هش (تکنیک‌های حل تصادم)
  • درخت‌ها و گراف‌ها (BFS، DFS، لیست مجاورت و ماتریس)
  • تری‌ها، هرم‌ها و مجموعه‌های مجزا

الگوریتم‌های مرتب‌سازی و جستجو

  • مرتب‌سازی حبابی، مرتب‌سازی انتخابی، مرتب‌سازی درجی
  • مرتب‌سازی ادغامی، مرتب‌سازی سریع، مرتب‌سازی سطلی
  • جستجوی خطی، جستجوی دودویی

الگوریتم‌های پیشرفته

  • الگوریتم‌های گراف – BFS، DFS، مرتب‌سازی توپولوژیکی، دایکسترا، بلمن-فورد، فلوید-وارشال
  • برنامه‌نویسی پویا (DP) – Memoization، Tabulation، فیبوناچی، دزد خانه، تعویض سکه
  • تقسیم و غلبه – QuickSelect، توان‌رسانی با مربع کردن، مسئله خط افق
  • الگوریتم‌های حریصانه – انتخاب فعالیت، کدگذاری هافمن، کوله پشتی کسری
  • بازگشت به عقب – N-Queens، جستجوی کلمه، جایگشت‌ها

تمرین مصاحبه در سطح FAANG

  • بیش از 75 مسئله LeetCode & HackerRank با راه‌حل‌های گام به گام
    مسائل کدنویسی واقعی برای آماده‌سازی شما برای کار!

این دوره برای چه کسانی مناسب است؟


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

چرا این دوره را نسبت به سایر دوره‌ها انتخاب کنیم؟

  • ۱۰۰ روز یادگیری ساختاریافته – برخلاف آموزش‌های تصادفی، این دوره شما را در هر مرحله راهنمایی می‌کند.
  • بیش از ۱۵۰ چالش کدنویسی عملی – زیرا تئوری به تنهایی باعث استخدام شما نمی‌شود.
  • پرسش‌های مصاحبه LeetCode & FAANG-Level – در حین یادگیری، تمرین مصاحبه واقعی داشته باشید.
  • DSA ویژه جاوا اسکریپت – بیاموزید که چگونه جاوا اسکریپت حافظه، بازگشت و ساختارهای داده را بهتر از دوره‌های عمومی مدیریت می‌کند.
  • توضیحات واضح و عملی – بدون حاشیه. بدون اتلاف وقت. فقط نتیجه!

نظرات دانشجویان از سایر دوره‌های من

"بهترین دوره عملی DSA! بسیار ساختاریافته و مفصل." - جان مونتگیا
"من به خاطر این دوره مصاحبه FAANG خود را قبول شدم. ۱۰۰٪ توصیه می‌شود!" - ادی یوگا
"این کامل‌ترین نقشه راه DSA است. اگر در مورد مصاحبه‌ها جدی هستید، این دوره را بگذرانید." - نیکیتا داباس


آماده هستید که یک متخصص جاوا اسکریپت DSA شوید؟

وقت خود را با منابع پراکنده تلف نکنید—یک نقشه راه اثبات شده را دنبال کنید و در ۱۰۰ روز بر DSA مسلط شوید!

همین حالا ثبت‌نام کنید و کدنویسی برای رسیدن به موفقیت را شروع کنید!


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

روز اول - مقدمه Day 1 - Introduction

  • خوش آمدید Welcome

  • چگونه بیشترین بهره را از این دوره ببریم How to Get Most of Out of This Course

  • کانال دوره Channel for the Course

  • ساختار داده چیست؟ What is a Data Structure?

  • الگوریتم چیست؟ What is an Algorithm?

  • چرا ساختمان داده و الگوریتم مهم هستند؟ Why are Data Structures and Algorithms important?

  • ویرایشگر کد Code Editor

  • DSA DSA

روز دوم - نماد Big O Day 2 - Big O Notation

  • Big O چیست؟ What is Big O?

  • نمادهای Big O - تتا، امگا و Big O Big O Notations - Theta , Omega and Big O

  • Big O - O(1) Big O - O(1)

  • Big O - O(n) Big O - O(n)

  • حذف ثابت ها Drop Constants

  • Big O - O(n2) Big O - O(n2)

  • حذف عبارات غیر غالب Drop Non Dominant Terms

  • Big O - O(Log n) Big O - O(Log n)

  • عبارات مختلف برای ورودی - جمع در مقابل ضرب Different Terms for Input - Add vs Multiply

  • پیچیدگی فضایی Space Complexity

  • چگونه کد را با استفاده از Big O اندازه گیری کنیم؟ How to Measure the Code using Big O?

  • آزمون Big O Big O Quiz

روز 3/4 - آرایه ها Day 3/4 - Arrays

  • آرایه چیست؟ چرا به آن نیاز داریم؟ What is an Array? Why do we need it?

  • انواع آرایه ها Types of Arrays

  • آرایه ها در حافظه Arrays in Memory

  • ایجاد آرایه ها Creating Arrays

  • وارد کردن عناصر به آرایه Inserting Elements to Array

  • دسترسی به عناصر آرایه و پیمایش آرایه Accessing Array Elements and Array Traversal

  • جستجو برای یک مقدار در آرایه Search for a Value in Array

  • حذف عناصر از آرایه Deleting Elements from Array

  • آزمون آرایه جاوا اسکریپت Javascript Array Quiz

روز 4/5 - تمرین های کدنویسی آرایه Day 4/5 - Array Coding Exercises

  • ایجاد و دستکاری آرایه ها Create and Manipulate Arrays

  • معکوس کردن یک آرایه Reverse an Array

  • وارد کردن و حذف عناصر Insert and Remove Elements

  • کمترین و بیشترین Minimum and Maximum

  • مجموع عناصر آرایه Sum of Array Elements

  • LeetCode 1 - Two Sum LeetCode 1 - Two Sum

  • LeetCode 189 - Rotate Array LeetCode 189 - Rotate Array

روز 6/7 - لیست پیوندی Day 6/7 - Linked List

  • لیست پیوندی چیست؟ What is Linked List?

  • لیست پیوندی در مقابل آرایه ها Linked List vs Arrays

  • لیست پیوندی در حافظه Linked List in Memory

  • findIndex findIndex

  • انواع لیست پیوندی Types of Linked List

  • Find Missing Number Find Missing Number

  • سازنده کلاس گره Node Class Constructor

  • ایجاد لیست پیوندی یک طرفه Create Singly Linked List

  • متد Append لیست پیوندی یک طرفه Append Method Singly Linked List

  • متد toString لیست پیوندی یک طرفه toString Method Singly Linked List

  • متد Prepend لیست پیوندی یک طرفه Prepend Method Singly Linked List

  • متد Insert لیست پیوندی یک طرفه Insert Method Singly Linked List

  • پیمایش لیست پیوندی یک طرفه Traversal of Singly Linked List

  • متد Search لیست پیوندی یک طرفه Search Method Singly Linked List

  • متد Get لیست پیوندی یک طرفه Get Method Singly Linked List

  • متد Set لیست پیوندی یک طرفه Set Method Singly Linked List

  • متد popFirst لیست پیوندی یک طرفه popFirst Method Singly Linked List

  • متد Pop لیست پیوندی یک طرفه Pop Method Singly Linked List

  • متد Remove لیست پیوندی یک طرفه Remove Method Singly Linked List

  • متد Delete All لیست پیوندی یک طرفه Delete All Method Singly Linked List

  • پیچیدگی زمانی و مکانی لیست پیوندی یک طرفه Time and Space Complexity of Singly Linked List

  • لیست پیوندی یک طرفه Singly Linked List

روز 8 - تمرین های کدنویسی لیست پیوندی Day 8 - Linked List Coding Exercises

  • سازنده لیست پیوندی یک طرفه Singly Linked List Constructor

  • متد Append لیست پیوندی یک طرفه Singly Linked List Append Method

  • متد Prepend لیست پیوندی یک طرفه Singly Linked List Prepend Method

  • متد Get لیست پیوندی یک طرفه Singly Linked List Get Method

  • متد Set لیست پیوندی یک طرفه Singly Linked List Set Method

  • متد Pop First لیست پیوندی یک طرفه Singly Linked List Pop First Method

روز 9 - لیست پیوندی یک طرفه LeetCode و HackerRank Day 9 - Singly Linked List LeetCode and HackerRank

  • Remove Duplicates from Sorted List (LeetCode 83) Remove Duplicates from Sorted List (LeetCode 83)

  • Compare two linked lists (HackerRank) Compare two linked lists (HackerRank)

  • Remove Linked List Elements (LeetCode 203) Remove Linked List Elements (LeetCode 203)

  • Merge two sorted linked lists (HackerRank) Merge two sorted linked lists (HackerRank)

  • Palindrome Linked List (LeetCode 234) Palindrome Linked List (LeetCode 234)

روز 10/11 - لیست پیوندی یک طرفه دایره ای Day 10/11 - Circular Singly Linked List

  • ایجاد لیست پیوندی یک طرفه دایره ای (CSLL) Create Circular Singly Linked List (CSLL)

  • متد Append لیست پیوندی یک طرفه دایره ای Append Method Circular Singly Linked List

  • متد toString toString Method

  • متد Prepend لیست پیوندی یک طرفه دایره ای Prepend Method Circular Singly Linked List

  • پیمایش لیست پیوندی یک طرفه دایره ای Traversal of Circular Singly Linked List

  • متد Search لیست پیوندی یک طرفه دایره ای Search Method Circular Singly Linked List

  • متد Get لیست پیوندی یک طرفه دایره ای Get Method Circular Singly Linked List

  • متد Set لیست پیوندی یک طرفه دایره ای Set Method Circular Singly Linked List

  • متد Pop First لیست پیوندی یک طرفه دایره ای Pop First Method Circular Singly Linked List

  • متد Pop لیست پیوندی یک طرفه دایره ای Pop Method Circular Singly Linked List

  • متد Remove لیست پیوندی یک طرفه دایره ای Remove Method Circular Singly Linked List

  • متد Delete All لیست پیوندی یک طرفه دایره ای Delete All Method Circular Singly Linked List

  • پیچیدگی زمانی و مکانی لیست پیوندی یک طرفه دایره ای Time and Space Complexity of Circular Singly Linked List

  • آزمون لیست پیوندی یک طرفه دایره ای Circular Singly Linked List Quiz

روز 12 - تمرین های کدنویسی لیست پیوندی دایره ای (LeetCode و HackerRank) Day 12 - Circular Linked List CODING EXERCISES (LeetCode and HackerRank)

  • Insert at the end of CSLL Insert at the end of CSLL

  • Insert at the Beginning of CSLL Insert at the Beginning of CSLL

  • Delete from the Beginning of CSLL Delete from the Beginning of CSLL

  • Delete from the end of CSLL Delete from the end of CSLL

  • Cycle Detection (HackerRank and LeetCode 141) Cycle Detection (HackerRank and LeetCode 141)

روز 13/14 - لیست پیوندی دو طرفه Day 13/14 - Doubly Linked List

  • کلاس گره لیست پیوندی دو طرفه Doubly Linked List Node Class

  • کلاس لیست پیوندی دو طرفه - سازنده Doubly Linked List Class - Constructor

  • متد Append لیست پیوندی دو طرفه Append Method Doubly Linked List

  • متد toString لیست پیوندی دو طرفه toString Method Doubly Linked List

  • متد Prepend لیست پیوندی دو طرفه Prepend Method Doubly Linked List

  • متد Traversal لیست پیوندی دو طرفه Traversal Method Doubly Linked List

  • متد Reverse Traversal لیست پیوندی دو طرفه Reverse Traversal Method Doubly Linked List

  • متد Search لیست پیوندی دو طرفه Search Method Doubly Linked List

  • متد Get لیست پیوندی دو طرفه Get Method Doubly Linked List

  • متد Set لیست پیوندی دو طرفه Set Method Doubly Linked List

  • متد Insert لیست پیوندی دو طرفه Insert Method Doubly Linked List

  • متد PopFirst لیست پیوندی دو طرفه PopFirst Method Doubly Linked List

  • متد Pop لیست پیوندی دو طرفه Pop Method Doubly Linked List

  • متد Remove لیست پیوندی دو طرفه Remove Method Doubly Linked List

  • متد Delete All لیست پیوندی دو طرفه Delete All Method Doubly Linked List

  • پیچیدگی زمانی و مکانی لیست پیوندی دو طرفه Time and Space Complexity of Doubly Linked List

  • آزمون DLL DLL Quiz

روز 15/16 - لیست پیوندی دو طرفه دایره ای Day 15/16 - Circular Doubly Linked List

  • کلاس گره و سازنده - لیست پیوندی دو طرفه دایره ای Node class and Constructor - Circular Doubly Linked List

  • متد Append - لیست پیوندی دو طرفه دایره ای Append Method - Circular Doubly Linked List

  • متد ToString - لیست پیوندی دو طرفه دایره ای ToString Method - Circular Doubly Linked List

  • متد Prepend - لیست پیوندی دو طرفه دایره ای Prepend Method - Circular Doubly Linked List

  • متد Traverse - لیست پیوندی دو طرفه دایره ای Traverse Method - Circular Doubly Linked List

  • متد Reverse Traverse - لیست پیوندی دو طرفه دایره ای Reverse Traverse Method - Circular Doubly Linked List

  • متد Search - لیست پیوندی دو طرفه دایره ای Search Method - Circular Doubly Linked List

  • متد Get - لیست پیوندی دو طرفه دایره ای Get Method - Circular Doubly Linked List

  • متد Set - لیست پیوندی دو طرفه دایره ای Set Method - Circular Doubly Linked List

  • متد Insert - لیست پیوندی دو طرفه دایره ای Insert Method - Circular Doubly Linked List

  • متد Pop First - لیست پیوندی دو طرفه دایره ای Pop First Method - Circular Doubly Linked List

  • متد Pop - لیست پیوندی دو طرفه دایره ای Pop Method - Circular Doubly Linked List

  • متد Remove - لیست پیوندی دو طرفه دایره ای Remove Method - Circular Doubly Linked List

  • پیچیدگی زمانی و مکانی لیست پیوندی دو طرفه دایره ای Time and Space Complexity of Circular Doubly Linked List

  • آزمون لیست پیوندی دو طرفه دایره ای Quiz Circular Doubly Linked List

روز 17/18 - تمرین های کدنویسی لیست پیوندی دو طرفه / دایره ای Day 17/18 - Doubly / Circular Doubly Linked List CODING EXERCISES

  • متد Append لیست پیوندی دو طرفه Append Method Doubly Linked List

  • متد Prepend لیست پیوندی دو طرفه Prepend Method Doubly Linked List

  • Reverse Traversal Doubly Linked List Reverse Traversal Doubly Linked List

  • متد Pop First لیست پیوندی دو طرفه Pop First Method Doubly Linked List

  • متد Pop لیست پیوندی دو طرفه Pop Method Doubly Linked List

  • متد Append لیست پیوندی دو طرفه دایره ای Append Method Circular Doubly Linked List

  • متد Prepend لیست پیوندی دو طرفه دایره ای Prepend Method Circular Doubly Linked List

  • متد Insert لیست پیوندی دو طرفه دایره ای Insert Method Circular Doubly Linked List

  • متد Delete لیست پیوندی دو طرفه دایره ای Delete Method Circular Doubly Linked List

روز 19/20 - پشته Day 19/20 - Stack

  • پشته چیست؟ What is Stack?

  • عملیات پشته Stack Operations

  • پیاده سازی پشته - سازنده با استفاده از آرایه Stack Implementation - Constructor using Array

  • متد Push با استفاده از آرایه Push Method using Array

  • متد toString با استفاده از آرایه toString Method using Array

  • متد Pop با استفاده از آرایه Pop Method using Array

  • متد Peek با استفاده از آرایه Peek Method using Array

  • متدهای Size و Clear با استفاده از آرایه Size and Clear Method using Array

  • پیچیدگی زمانی و مکانی پشته با استفاده از آرایه Time and Space Complexity of Stack using Array

  • پیاده سازی پشته با استفاده از لیست پیوندی Stack Implementation using Linked List

  • سازنده پشته با استفاده از لیست پیوندی Stack Constructor using Linked List

  • متد Push با استفاده از لیست پیوندی Push Method using Linked List

  • متد Pop با استفاده از لیست پیوندی Pop Method using Linked List

  • متدهای Peek، isEmpty و Clear با استفاده از لیست پیوندی Peek , isEmpty and Clear Method using Linked List

  • پیچیدگی زمانی و مکانی پشته با استفاده از لیست پیوندی Time and Space Complexity of Stack using Linked List

  • آزمون پشته Quiz Stack

روز 20/21 - تمرین های کدنویسی پشته - LEETCODE Day 20/21 - Stack CODING EXERCISES - LEETCODE

  • متد Push با استفاده از آرایه Push Method using Array

  • متد Pop با استفاده از آرایه Pop Method using Array

  • متد Push با استفاده از لیست پیوندی Push Method using Linked List

  • متد Pop با استفاده از لیست پیوندی Pop Method using Linked List

  • Valid Parentheses (LeetCode 20) Valid Parentheses (LeetCode 20)

  • Remove All Adjacent Duplicates In String (LeetCode 1047) Remove All Adjacent Duplicates In String (LeetCode 1047)

  • Min Stack Min Stack

روز 22/23 - صف Day 22/23 - Queue

  • صف چیست؟ چرا به آن نیاز داریم؟ What is Queue? Why we need it?

  • عملیات صف Queue Operations

  • سازنده صف با استفاده از آرایه Queue Constructor using Array

  • متد Enqueue با استفاده از آرایه Enqueue Method using Array

  • متد Dequeue با استفاده از آرایه Dequeue Method using Array

  • متد Peek با استفاده از آرایه Peek Method using Array

  • متدهای isEmpty و Clear با استفاده از آرایه isEmpty and Clear Methods using Array

  • پیچیدگی زمانی و مکانی صف با استفاده از آرایه Time and Space Complexity of Queue using Array

  • سازنده صف با استفاده از لیست پیوندی Queue Constructor using Linked List

  • متد isEmpty با استفاده از لیست پیوندی isEmpty Method using Linked List

  • متد Enqueue با استفاده از لیست پیوندی Enqueue Method using Linked List

  • متد Dequeue با استفاده از لیست پیوندی Dequeue Method using Linked List

  • متد Front (Peek) با استفاده از لیست پیوندی Front (Peek) Method using Linked List

  • متد Clear با استفاده از لیست پیوندی Clear Method Method using Linked List

  • پیچیدگی زمانی و مکانی صف با استفاده از لیست پیوندی Time and Space Complexity of Queue using Linked List

  • آزمون صف Quiz Queue

روز 24/25 - تمرین های کدنویسی صف Day 24/25 - Queue CODING EXERCISES

  • Build a Basic Queue Using Arrays Build a Basic Queue Using Arrays

  • Check if a Queue is Empty Check if a Queue is Empty

  • Implement the Peek Method Implement the Peek Method

  • Circular Queue Using Arrays Circular Queue Using Arrays

  • Reverse a Queue Reverse a Queue

  • Queue with Max Size Queue with Max Size

  • Merge Two Queues Merge Two Queues

  • Implement Stack using Queues Implement Stack using Queues

روز 26 - بازگشت Day 26 - Recursion

  • بازگشت چیست؟ What is Recursion?

  • چرا به بازگشت نیاز داریم؟ Why do we need Recursion?

  • منطق پشت بازگشت - پشته فراخوانی The Logic Behind Recursion - Call Stack

  • راه حل بازگشتی در مقابل تکراری Recursive vs Iterative Solution

  • چگونه یک تابع بازگشتی را در 3 مرحله بنویسیم؟ How to Write Recursive Function in 3 Steps?

  • سری فیبوناچی با استفاده از بازگشت Fibonacci Series using Recursion

  • چگونه یک الگوریتم بازگشتی را با Big O اندازه گیری کنیم؟ How to Measure Recursive Algorithm with Big O?

  • چگونه الگوریتم های بازگشتی که چندین فراخوانی انجام می دهند را اندازه گیری کنیم؟ How to measure Recursive Algorithms that make multiple calls?

  • چه زمانی از بازگشت استفاده کنیم/اجتناب کنیم؟ When to Use/Avoid Recursion?

روز 27/28 - تمرین های کدنویسی بازگشت - LEETCODE Day 27/28 - Recursion CODING EXERCISES - LEETCODE

  • Fibonacci Fibonacci

  • Sum of Digits Sum of Digits

  • Power Function Power Function

  • Reverse a String Reverse a String

  • Check if a String is a Palindrome Check if a String is a Palindrome

  • Power of Two (LeetCode 231) Power of Two (LeetCode 231)

روز 29 - درخت Day 29 - Tree

  • درخت چیست؟ What is a Tree?

  • چرا درخت؟ Why Tree?

  • اصطلاحات درخت Tree Terminology

  • سازنده درخت و گره Tree and Node Constructor

  • Add Child Add Child

  • Remove Child Remove Child

  • Tree Quiz Tree Quiz

روز 30/31 - درخت باینری (پیاده سازی لیست پیوندی) Day 30/31 - Binary Tree (Linked List Implementation)

  • درخت باینری چیست؟ What is Binary Tree?

  • انواع درخت باینری Types of Binary Tree

  • ایجاد درخت باینری/گره درخت با استفاده از لیست پیوندی Creating Binary Tree/Tree Node using Linked List

  • پیمایش درخت باینری - پیمایش سطح به سطح Binary Tree Traversal - Level Order Traversal

  • پیاده سازی پیمایش سطح به سطح درخت باینری Binary Tree Level Order Traversal Implementation

  • نسخه بهینه سازی شده پیمایش سطح به سطح درخت باینری Binary. Tree Level Order Traversal Optimized Version

  • متد Insert درخت باینری با استفاده از لیست پیوندی Binary Tree Insert Method using Linked List

  • پیمایش PreOrder درخت باینری با استفاده از لیست پیوندی (رویکرد تکراری) Binary Tree PreOrder Traversal using Linked List (Iterative Approach)

  • بهینه سازی پیمایش PreOrder درخت باینری Binary Tree PreOrder Traversal Optimization

  • پیمایش PreOrder درخت باینری با استفاده از لیست پیوندی (رویکرد بازگشتی) Binary Tree PreOrder Traversal using Linked List (Recursive Approach)

  • پیمایش InOrder با استفاده از لیست پیوندی (رویکرد تکراری) InOrder Traversal using Linked List (Iterative Approach)

  • پیمایش InOrder با استفاده از لیست پیوندی (رویکرد بازگشتی) InOrder Traversal using Linked List (Recursive Approach)

  • پیمایش PostOrder درخت باینری با استفاده از لیست پیوندی (رویکرد تکراری) Binary Tree PostOrder Traversal using Linked List (Iterative Approach)

  • پیمایش PostOrder درخت باینری با استفاده از لیست پیوندی Binary Tree PostOrder Traversal using Linked List

  • بهینه سازی پیمایش PostOrder درخت باینری با استفاده از لیست پیوندی Binary Tree PostOrder Traversal using Linked List Optimization

  • پیمایش PostOrder درخت باینری با استفاده از لیست پیوندی (رویکرد بازگشتی) Binary Tree PostOrder Traversal using Linked List (Recursive Approach)

  • متد Search درخت باینری با استفاده از لیست پیوندی Search Method Binary Tree using Linked List

  • متد حذف عمیق ترین گره Delete Deepest Node Method

  • متد حذف گره درخت باینری با استفاده از لیست پیوندی Delete Node Method Binary Tree using Linked List

روز 32/33 - درخت باینری (پیاده سازی آرایه) Day 32/33 - Binary Tree (Array Implementation)

  • ایجاد درخت باینری با استفاده از پیاده سازی آرایه Create Binary Tree using Array Implementation

  • متد Insert درخت باینری با استفاده از آرایه Insert Method Binary Tree using Array

  • متد پیمایش سطح به سطح درخت باینری با استفاده از آرایه Level Order Traversal Method Binary Tree using Array

  • متد پیمایش PreOrder درخت باینری با استفاده از آرایه PreOrder Traversal Method Binary Tree using Array

  • پیمایش InOrder با استفاده از رویکرد تکراری InOrder Traversal using Iterative Approach

  • متد پیمایش InOrder درخت باینری با استفاده از آرایه InOrder Traversal Method Binary Tree using Array

  • پیمایش PreOrder با استفاده از رویکرد تکراری PreOrder Traversal using Iterative Approach

  • متد پیمایش PostOrder درخت باینری با استفاده از آرایه PostOrder Traversal Method Binary Tree using Array

  • متد Search درخت باینری با استفاده از آرایه Search Method Binary Tree using Array

  • متد حذف گره درخت باینری با استفاده از آرایه Delete Node Method Binary Tree using Array

  • درخت باینری - پیاده سازی آرایه Binary Tree - Array Implementation

روز 34 - تمرین های کدنویسی درخت باینری - LEETCODE Day 34 - Binary Tree CODING EXERCISES - LEETCODE

  • متد Insert درخت باینری (پیاده سازی آرایه) Binary Tree Insert Method (Array Implementation)

  • متد Insert درخت باینری (پیاده سازی لیست پیوندی) Binary Tree Insert Method (Linked List Implementation)

  • LeetCode 144 - PreOrder Traversal LeetCode 144 - PreOrder Traversal

  • LeetCode 145 - PostOrder Traversal LeetCode 145 - PostOrder Traversal

  • LeetCode 94 - InOrder Traversal LeetCode 94 - InOrder Traversal

  • LeetCode 543 - Diameter of Binary Tree LeetCode 543 - Diameter of Binary Tree

  • LeetCode 101 - Symmetric Tree LeetCode 101 - Symmetric Tree

روز 35 - درخت جستجوی باینری Day 35 - Binary Search Tree

  • درخت جستجوی باینری چیست؟ What is Binary Search Tree?

  • سازنده درخت جستجوی باینری Binary Search Tree Constructor

  • متد Insert درخت جستجوی باینری Insert Method Binary Search Tree

  • متدهای پیمایش درخت جستجوی باینری Traversal Methods Binary Search Tree

  • متد Search درخت جستجوی باینری Search Method Binary Search Tree

  • متد Minimum Value درخت جستجوی باینری Minimum Value Method Binary Search Tree

  • متد Delete Node درخت جستجوی باینری Delete Node Method Binary Search Tree

  • پیچیدگی زمانی و مکانی درخت جستجوی باینری Time and Space Complexity of Binary Search Tree

  • درخت جستجوی باینری Binary Search Tree

روز 36 - تمرین های کدنویسی درخت جستجوی باینری - LEETCODE Day 36 - Binary Search Tree CODING EXERCISES - LEETCODE

  • سازنده BST و متد Insert BST Constructor and Insert Method

  • متد Delete Node BST BST Delete Node Method

  • LeetCode 653 Two Sum IV - Input is a BST LeetCode 653 Two Sum IV - Input is a BST

  • LeetCode 783 - Minimum Distance Between BST Nodes LeetCode 783 - Minimum Distance Between BST Nodes

  • LeetCode 897 - Increasing Order Search Tree LeetCode 897 - Increasing Order Search Tree

روز 36/37 - درخت AVL Day 36/37 - AVL Tree

  • درخت AVL چیست؟ چرا به آن نیاز داریم؟ What is an AVL Tree? Why do we need it?

  • سازنده درخت AVL AVL Tree Constructor

  • متد Insert درخت AVL - شرط چپ چپ Insert Method AVL Tree - Left Left Condition

  • متد Insert شرط چپ راست Insert Method Left Right Condition

  • متد Insert شرط راست راست Insert Method Right Right Condition

  • متد Insert شرط راست چپ Insert Method Right Left Condition

  • متد Insert همه شرایط با هم Insert Method All Conditions Together

  • پیاده سازی متد Insert Insert Method Implementation

  • متد Delete AVL Delete Method AVL

  • پیچیدگی زمانی و مکانی درخت AVL Time and Space Complexity of AVL Tree

  • AVL در مقابل درخت جستجوی باینری AVL vs Binary Search Tree

  • آزمون AVL AVL QUIZ

روز 38/39 - تمرین های کدنویسی درخت AVL Day 38/39 - AVL Tree CODING EXERCISES

  • Implement an AVL Tree Implement an AVL Tree

  • Implement getHeight(node) Implement getHeight(node)

  • Implement getBalance(node) Implement getBalance(node)

  • Implement Left Rotate Function Implement Left Rotate Function

  • Implement Right Rotate Function Implement Right Rotate Function

  • Implement insert(data) Implement insert(data)

  • Implement delete(value) Implement delete(value)

  • Implement levelOrderTraversal() Implement levelOrderTraversal()

روز 40/41 - هرم باینری Day 40/41 - Binary Heap

  • هرم باینری چیست؟ What is Binary Heap?

  • سازنده هرم باینری Binary Heap Constructor

  • متدهای getRightChild، getLeftChild و getParent getRightChild, getLeftChild and getParent Methods

  • Insert a Node in Binary Heap Insert a Node in Binary Heap

  • HeapifyUp HeapifyUp

  • پیاده سازی متد Insert Insert Method Implementation

  • Common Binary Heap Methods Common Binary Heap Methods

  • Extract Method - Heapify Down Extract Method - Heapify Down

  • پیچیدگی زمانی و مکانی هرم باینری Time and Space Complexity of Binary Heap

  • آزمون هرم باینری Binary Heap Quiz

روز 42/43 - تمرین های کدنویسی هرم باینری - LEETCODE Day 42/43 - Binary Heap CODING EXERCISES - LEETCODE

  • Create Binary Heap with its Simple Methods Create Binary Heap with its Simple Methods

  • Heapify Up Heapify Up

  • Heapify Down Heapify Down

  • Insert Method in Binary Heap Insert Method in Binary Heap

  • Extract Method in Binary Heap Extract Method in Binary Heap

  • Last Stone Weight - LEETCODE 1046 Last Stone Weight - LEETCODE 1046

  • Kth Largest Element in a Stream - LEETCODE 703 Kth Largest Element in a Stream - LEETCODE 703

روز 43/44/45 - جدول های هش Day 43/44/45 - Hash Tables

  • جدول هش چیست؟ چرا به آن نیاز داریم؟ What is Hash Table? Why we need it?

  • اصطلاحات هشینگ Hashing Terminology

  • نمونه توابع هش و خواص آنها Sample Hash Functions and Their Properties

  • تکنیک های رفع تصادم - پیاده سازی زنجیره سازی مستقیم Collision Resolution Techniques - Direct Chaining Implementation

  • متد Set - پیاده سازی زنجیره سازی مستقیم Set Method - Direct Chaining Implementation

  • متد Get - پیاده سازی زنجیره سازی مستقیم Get Method - Direct Chaining Implementation

  • متد Remove - پیاده سازی زنجیره سازی مستقیم Remove Method - Direct Chaining Implementation

  • زنجیره سازی مستقیم با استفاده از لیست پیوندی Direct Chaining using Linked List

  • متد Set - هشینگ زنجیره سازی مستقیم با استفاده از لیست پیوندی Set Method - Hashing Direct Chaining using Linked List

  • متد Get - هشینگ زنجیره سازی مستقیم با استفاده از لیست پیوندی Get method - Hashing Direct Chaining using Linked List

  • متد Remove - هشینگ زنجیره سازی مستقیم با استفاده از لیست پیوندی Remove Method - Hashing Direct Chaining using Linked List

  • بررسی خطی Linear Probing

  • متد Set - بررسی خطی Set Method - Linear Probing

  • متد Get - بررسی خطی Get Method - Linear Probing

  • بررسی درجه دوم Quadratic Probing

  • متد Set - بررسی درجه دوم Set Method - Quadratic Probing

  • متد Get - بررسی درجه دوم Get Method - Quadratic Probing

  • هشینگ مضاعف Double Hashing

  • متد Set - هشینگ مضاعف Set Method - Double Hashing

  • Javascript Objects as HashTable Javascript Objects as HashTable

  • Hash Table Quiz Hash Table Quiz

روز 46/47 - تمرین های کدنویسی جدول های هش - LEETCODE Day 46/47 - Hash Tables CODING EXERCISES - LEETCODE

  • Creating the Hash Table (Constructor & _hash Method) - Direct Chaining Array Creating the Hash Table (Constructor & _hash Method) - Direct Chaining Array

  • Implement the set Method in Direct Chaning using Array Implement the set Method in Direct Chaning using Array

  • Implement the get Method in Direct Chaning using Array Implement the get Method in Direct Chaning using Array

  • Implement the set Method Using Linear Probing Implement the set Method Using Linear Probing

  • Ransom Note - LEETCODE 383 Ransom Note - LEETCODE 383

  • Isomorphic Strings - LEETCODE 205 Isomorphic Strings - LEETCODE 205

  • Word Pattern - LEETCODE 290 Word Pattern - LEETCODE 290

  • Valid Anagram - LEETCODE 242 Valid Anagram - LEETCODE 242

  • Happy Number - LEETCODE 202 Happy Number - LEETCODE 202

روز 48 - Trie Day 48 - Trie

  • Trie چیست؟ What is Trie?

  • سازنده Trie Trie Constructor

  • متد Insert در Trie Insert Method in Trie

  • متد Search در Trie Search Method in Trie

  • متد Insert در Trie Insert Method in Trie

  • متد Delete در Trie Delete Method in Trie

  • Trie Quiz Trie Quiz

روز 49 - تمرین های کدنویسی Trie Day 49 - Trie CODING EXERCISES

  • Implement the insert Method Implement the insert Method

  • Implement the search Method Implement the search Method

  • Implement the startsWith Method Implement the startsWith Method

  • Implement the delete Method Implement the delete Method

روز 50 - الگوریتم های مرتب سازی (مرتب سازی حبابی) Day 50 - Sorting Algorithms (Bubble Sort)

  • مرتب سازی چیست؟ What is Sorting?

  • انواع مرتب سازی Types of Sorting

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

  • پیاده سازی مرتب سازی حبابی Bubble Sort Implementation

  • چه زمانی از مرتب سازی حبابی استفاده کنیم/اجتناب کنیم؟ When to use/avoid Bubble Sort

  • Sorting Quiz Sorting Quiz

روز 51 - تمرین های کدنویسی مرتب سازی حبابی Day 51 - Bubble Sort CODING EXERCISES

  • Implement the Basic Bubble Sort Algorithm Implement the Basic Bubble Sort Algorithm

  • Optimize Bubble Sort with a Swap Check Optimize Bubble Sort with a Swap Check

  • Implement Bubble Sort in Descending Order Implement Bubble Sort in Descending Order

  • Count the Number of Swaps in Bubble Sort Count the Number of Swaps in Bubble Sort

  • Implement Bubble Sort for Strings Implement Bubble Sort for Strings

روز 52 - مرتب سازی انتخابی Day 52 - Selection Sort

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

  • پیاده سازی مرتب سازی انتخابی Selection Sort Implementation

  • Selection Sort Practice Selection Sort Practice

  • چه زمانی از مرتب سازی انتخابی استفاده کنیم/اجتناب کنیم؟ When to use/avoid Selection Sort

  • Selection Sort Quiz Selection Sort Quiz

روز 53 - تمرین های کدنویسی مرتب سازی انتخابی Day 53 - Selection Sort CODING EXERCISES

  • Implement Selection Sort Implement Selection Sort

  • Find the Number of Swaps in Selection Sort Find the Number of Swaps in Selection Sort

  • Optimize Selection Sort for Nearly Sorted Arrays Optimize Selection Sort for Nearly Sorted Arrays

  • Selection Sort in Descending Order Selection Sort in Descending Order

روز 54 - مرتب سازی درجی Day 54 - Insertion Sort

  • مرتب سازی درجی Insertion Sort

  • Insertion Sort Practice Insertion Sort Practice

  • چه زمانی از مرتب سازی درجی استفاده کنیم/اجتناب کنیم؟ When to use/avoid Insert Sort

  • Insertion Sort Quiz Insertion Sort Quiz

روز 55 - تمرین های کدنویسی مرتب سازی درجی Day 55 - Insertion Sort CODING EXERCISES

  • Implement Insertion Sort Implement Insertion Sort

  • Count the Number of Shifts in Insertion Sort Count the Number of Shifts in Insertion Sort

  • Optimize Insertion Sort for Already Sorted Arrays Optimize Insertion Sort for Already Sorted Arrays

  • Insertion Sort in Descending Order Insertion Sort in Descending Order

روز 56 - مرتب سازی سطلی Day 56 - Bucket Sort

  • مرتب سازی سطلی Bucket Sort

  • پیاده سازی مرتب سازی سطلی Bucket Sort Implementation

  • چه زمانی از مرتب سازی سطلی استفاده کنیم/اجتناب کنیم؟ When to use/avoid Bucket Sort

  • Bucket Sort Quiz Bucket Sort Quiz

روز 57 - تمرین های کدنویسی مرتب سازی سطلی Day 57 - Bucket Sort CODING EXERCISES

  • Implement Bucket Sort Implement Bucket Sort

  • شمارش تعداد عناصر جابجا شده Count the Number of Elements Moved

  • بهینه‌سازی مرتب‌سازی سطلی برای داده‌های تقریباً مرتب Optimize Bucket Sort for Nearly Sorted Data

روز 58 - مرتب‌سازی ادغامی Day 58 - Merge Sort

  • مرتب‌سازی ادغامی Merge Sort

  • تابع کمکی ادغام Merge Helper Function

  • پیاده‌سازی مرتب‌سازی ادغامی Merge Sort Implementation

  • تمرین مرتب‌سازی ادغامی Merge Sort Practice

  • مرتب‌سازی ادغامی Big O Merge Sort Big O

  • مرتب‌سازی ادغامی Merge Sort

روز 59 - تمرین‌های کدنویسی مرتب‌سازی ادغامی Day 59 - Merge Sort CODING EXERCISES

  • پیاده‌سازی تابع ادغام Implement the Merge Function

  • پیاده‌سازی مرتب‌سازی ادغامی Implement Merge Sort

  • اصلاح مرتب‌سازی ادغامی برای شمارش معکوس‌ها Modify Merge Sort to Count Inversions

روز 60 - مرتب‌سازی سریع Day 60 - Quick Sort

  • مرور کلی مرتب‌سازی سریع QuickSort Overview

  • مرور کلی محور Pivot Overview

  • پیاده‌سازی محور Pivot Implementation

  • پیاده‌سازی مرتب‌سازی سریع Quick Sort Implementation

  • Big O - مرتب‌سازی سریع Big O - Quick Sort

  • آزمون مرتب‌سازی سریع Quick Sort Quiz

روز 61 - تمرین‌های کدنویسی مرتب‌سازی سریع Day 61 - Quick Sort CODING EXERCISES

  • پیاده‌سازی تابع تعویض Implement the Swap Function

  • پیاده‌سازی تابع محور Implement the Pivot Function

  • پیاده‌سازی مرتب‌سازی سریع Implement QuickSort

روز 62 - الگوریتم‌های جستجو Day 62 - Searching Algorithms

  • جستجوی خطی Linear Search

  • جستجوی دودویی Binary Search

  • آزمون الگوریتم‌های جستجو Searching Algorithms Quiz

روز 63/64 - تمرین‌های کدنویسی الگوریتم‌های جستجو (LeetCode و HackerRank) Day 63/64 - Searching Algorithms CODING EXERCISES (LeetCode and HackerRank)

  • پیاده‌سازی جستجوی خطی Implement Linear Search

  • جستجوی دودویی Binary Search

  • جستجوی محل درج (LeetCode 35) Search Insert Position (LeetCode 35)

  • جذر(x) (LeetCode 69) Sqrt(x) (LeetCode 69)

  • شرلوک و آرایه (HackerRank) Sherlock and Array (HackerRank)

روز 65/66 - ساختمان داده گراف Day 65/66 - Graph Data Structures

  • گراف چیست؟ What is a Graph?

  • اصطلاحات گراف Graph Terminology

  • انواع گراف‌ها Types of Graphs

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

  • پیاده‌سازی ماتریس مجاورت Adjacency Matrix Implementation

  • متد افزودن یال - ماتریس مجاورت Add Edge Method - Adjacency Matrix

  • متد حذف یال - ماتریس مجاورت Remove Edge Method - Adjacency Matrix

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

  • افزودن راس - لیست مجاورت Add Vertex - Adjacency List

  • افزودن یال - لیست مجاورت Add Edge - Adjacency List

  • حذف یال - لیست مجاورت Remove Edge - Adjacency List

  • آزمون گراف Graph Quiz

روز 67 - پیمایش گراف - الگوریتم جستجوی اول سطح Day 67 - Graph Traversal - Breadth First Search Algorithm

  • الگوریتم جستجوی اول سطح Breadth First Search Algorithm

  • پیاده‌سازی جستجوی اول سطح Breadth First Search Implementation

  • آزمون BFS BFS Quiz

روز 68 - پیمایش گراف - الگوریتم جستجوی اول عمق Day 68 - Graph Traversal - Depth First Search Algorithm

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

  • پیاده‌سازی جستجوی اول عمق Depth First Search Implementation

  • BFS در مقابل DFS BFS vs DFS

  • آزمون DFS DFS Quiz

روز 69/70 - تمرین‌های کدنویسی گراف Day 69/70 - Graph CODING EXERCISES

  • پیاده‌سازی addVertex (لیست مجاورت) Implement addVertex (Adjacency List)

  • پیاده‌سازی addEdge (لیست مجاورت) Implement addEdge (Adjacency List)

  • پیاده‌سازی removeEdge (لیست مجاورت) Implement removeEdge (Adjacency List)

  • پیاده‌سازی removeVertex (لیست مجاورت) Implement removeVertex (Adjacency List)

  • پیاده‌سازی addEdge (ماتریس مجاورت) Implement addEdge (Adjacency Matrix)

  • پیاده‌سازی removeEdge (ماتریس مجاورت) Implement removeEdge (Adjacency Matrix)

  • شبیه‌سازی گراف - LEETCODE 133 Clone Graph - LEETCODE 133

روز 71 - مرتب‌سازی توپولوژیکی Day 71 - Topological Sort

  • مرتب‌سازی توپولوژیکی چیست؟ What is Topological Sort?

  • پیاده‌سازی مرتب‌سازی توپولوژیکی Topological Sort Implementation

  • چرا مرتب‌سازی توپولوژیکی؟ Why Topological Sort?

  • آزمون مرتب‌سازی توپولوژیکی Topological Sort Quiz

روز 71 - الگوریتم کوتاه‌ترین مسیر از مبدا واحد Day 71 - Single Source Shortest Path Algorithm

  • مسئله کوتاه‌ترین مسیر از مبدا واحد چیست؟ What is Single Source Shortest Path Problem?

  • BFS برای SSSPP BFS for SSSPP

  • چرا BFS برای گراف وزن‌دار کار نمی‌کند؟ Why BFS does not for Work Weighted Graph?

  • چرا DFS برای SSSPP کار نمی‌کند؟ Why DFS does not Work for SSSPP?

  • آزمون SSSP SSSP Quiz

روز 72 - تمرین‌های کدنویسی مرتب‌سازی توپولوژیکی و کوتاه‌ترین مسیر از مبدا واحد Day 72 - Topological Sort and Single Source Shortest Path CODING EXERCISES

  • پیاده‌سازی مرتب‌سازی توپولوژیکی Implement Topological Sort

  • مدیریت موارد لبه‌ای در مرتب‌سازی توپولوژیکی Handle Edge Cases in Topological Sort

  • تشخیص چرخه‌ها قبل از انجام مرتب‌سازی توپولوژیکی Detect Cycles Before Performing Topological Sort

  • پیاده‌سازی BFS برای کوتاه‌ترین مسیر Implement BFS for Shortest Path

روز 73 - الگوریتم دایکسترا Day 73 - Dijkstra's Algorithm

  • الگوریتم دایکسترا Dijkstra Algorithm

  • پیاده‌سازی دایکسترا Dijkstra Implementation

  • تمرین دایکسترا Dijkstra Practice

  • دایکسترا با چرخه منفی Dijkstra with Negative Cycle

  • آزمون الگوریتم دایکسترا Dijkstra Algorithm Quiz

روز 74 - الگوریتم بلمن-فورد Day 74 - Bellman Ford Algorithm

  • الگوریتم بلمن-فورد Bellman Ford Algorithm

  • پیاده‌سازی الگوریتم بلمن-فورد Bellman Ford Algorithm Implementation

  • بلمن-فورد با چرخه منفی Bellman Ford with Negative Cycle

  • چرا بلمن-فورد چرخه منفی را در تکرار Vام تشخیص می‌دهد؟ Why Bellman Ford Catches Negative Cycle in Vth Iteration?

  • BFS در مقابل دایکسترا در مقابل بلمن-فورد BFS vs Dijkstra vs Bellman Ford

  • آزمون بلمن-فورد Bellman Ford Quiz

روز 75 - الگوریتم کوتاه‌ترین مسیر بین همه جفت راس‌ها Day 75 - All Pairs Shortest Path Algorithm

  • مسئله کوتاه‌ترین مسیر بین همه جفت راس‌ها All Pairs Shortest Path Problem

  • منطق کوتاه‌ترین مسیر بین همه جفت راس‌ها All Pairs Shortest Path Logic

  • APSP APSP

روز 76 - الگوریتم فلوید-وارشال Day 76 - Floyd Warshall Agorithm

  • الگوریتم فلوید-وارشال Floyd Warshall Algorithm

  • پیاده‌سازی الگوریتم فلوید-وارشال Floyd Warshall Algorithm Implementation

  • چرخه منفی در الگوریتم فلوید-وارشال Negative Cycle in Floyd Warshall Algorithm

  • آزمون فلوید-وارشال Floyd Warshall Quiz

روز 77/78 - تمرین‌های کدنویسی دایکسترا، بلمن-فورد و فلوید-وارشال Day 77/78 - Dijkstra, Bellman Ford and Floy Warshall CODING EXERCISES

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

  • پیاده‌سازی الگوریتم بلمن-فورد Bellman-Ford Algorithm Implementation

  • پیاده‌سازی الگوریتم فلوید-وارشال Floyd-Warshall Algorithm Implementation

روز 79 - مجموعه مجزا (درخت پوشای کمینه) Day 79 - Disjoint Set (Minimum Spanning Tree)

  • MST چیست؟ What is MST?

  • مجموعه مجزا Disjoint Set

  • پیاده‌سازی مجموعه مجزا Disjoint Set Implementation

  • متد Find Find Method

  • متد Union Union Method

روز 80 - الگوریتم کروسکال Day 80 - Kruskal Algorithm

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

  • پیاده‌سازی الگوریتم کروسکال Kruska's Algorithm Implementation

  • آزمون کروسکال Kruskal Quiz

روز 81 - الگوریتم پریم Day 81 - Prim's Algorithm

  • الگوریتم پریم Prims Algorithm

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

  • پریم در مقابل کروسکال Prims vs Kruskal

  • آزمون پریم Prims Quiz

روز 82/83 - تمرین‌های کدنویسی الگوریتم‌های کروسکال و پریم Day 82/83 - Kruskal and Prims Algorithms CODING EXERCISES

  • مجموعه مجزا (Union-Find) Disjoint Set (Union-Find)

  • پیاده‌سازی الگوریتم کروسکال Implement Kruskal Algorithm

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

  • اتصال شهرها با کمترین هزینه - LEETCODE 1135 Connecting Cities With Minimum Cost - LEETCODE 1135

  • حداقل هزینه برای اتصال همه نقاط - LEETCODE 1584 Min Cost to Connect All Points - LEETCODE 1584

  • اتصال اضافی - LEETCODE 684 Redundant Connection - LEETCODE 684

  • درخت معتبر گراف - LEETCODE 261 Graph Valid Tree - LEETCODE 261

روز 84/85 - الگوریتم‌های حریصانه Day 84/85 - Greedy Algorithms

  • حریصانه چیست؟ What is Greedy?

  • الگوریتم‌های حریصانه شناخته شده Known Greedy Algorithms

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

  • مسئله تغییر سکه Coin Change Problem

  • کوله پشتی کسری Fractional Knapsack

روز 86 - تمرین‌های کدنویسی الگوریتم‌های حریصانه Day 86 - Greedy Algorithms CODING EXERCISES

  • مسئله ترتیب‌بندی شغل Job Sequencing Problem

  • کدگذاری هافمن Huffman Coding

  • حداقل سکو Minimum Platforms

روز 87/88 - الگوریتم‌های تقسیم و غلبه Day 87/88 - Divide and Conquer Algorithms

  • تقسیم و غلبه چیست؟ What is Divide and Conquer?

  • سری فیبوناچی با استفاده از تقسیم و غلبه Fibonnaci Series using Divide and Conquer

  • فاکتور عدد Number Factor

  • مسئله دزد خانه House Robber Problem

روز 89/90 - تمرین‌های کدنویسی الگوریتم‌های تقسیم و غلبه Day 89/90 - Divide and Conquer Algorithms CODING EXERCISES

  • توان‌رسانی با مربع کردن Exponentiation by Squaring

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

  • یافتن عنصر قله - LEETCODE 162 Find Peak Element - LEETCODE 162

  • جستجو در آرایه مرتب شده چرخشی - LEETCODE 33 Search in Rotated Sorted Array - LEETCODE 33

  • یافتن حداقل مقدار در آرایه مرتب شده چرخشی - LEETCODE 153 Find Minimum in Rotated Sorted Array - LEETCODE 153

روز 91/92 - برنامه‌نویسی پویا Day 91/92 - Dynamic Programming

  • برنامه‌نویسی پویا چیست؟ What is Dynamic Programming?

  • رویکرد از بالا به پایین - Memoization Top Down Approach - Memoization

  • رویکرد از پایین به بالا - Tabulation Buttom Up Approach - Tabulation

  • از بالا به پایین در مقابل از پایین به بالا Tow Down vs Buttom Up

  • فاکتور عدد با استفاده از از بالا به پایین Number Factor using Top Down

  • فاکتور عدد با استفاده از از پایین به بالا Number Factor using Buttom Up

روز 93/94 - تمرین‌های کدنویسی برنامه‌نویسی پویا Day 93/94 - Dynamic Programming CODING EXERCISES

  • دزد خانه (برنامه‌نویسی پویا) House Robber (Dynamic Programming)

  • فاکتور عدد (برنامه‌نویسی پویا) Number Factor (Dynamic Programming)

  • بالا رفتن از پله‌ها - LeetCode 70 Climbing Stairs - LeetCode 70

  • حداقل هزینه برای بالا رفتن از پله‌ها - LeetCode 746 Minimum Cost to Climb Stairs - LeetCode 746

  • طولانی‌ترین زیردنباله صعودی - LeetCode 300 Longest Increasing Subsequence - LeetCode 300

  • تغییر سکه - LeetCode 322 Coin Change - LeetCode 322

روز 95/96 - عقبگرد Day 95/96 - Backtracking

  • عقبگرد چیست؟ What is Backtracking?

  • مسئله N-Queens N-Queens Problem

  • پیاده‌سازی N-Queens N-Queens Implementation

روز 97/98 - تمرین‌های کدنویسی عقبگرد Day 97/98 - Backtracking CODING EXERCISES

  • زیرمجموعه‌ها - LeetCode 78 Subsets - LeetCode 78

  • مجموع ترکیب - LeetCode 39 Combination Sum - LeetCode 39

  • جایگشت‌ها - LeetCode 46 Permutations - LeetCode 46

  • N-Queens - LeetCode 51 N-Queens - LeetCode 51

  • جستجوی کلمه - LeetCode 79 Word Search - LeetCode 79

روز 99 - دستورالعملی برای حل مسئله Day 99 - A Recipe for Problem Solving

  • دستورالعملی برای حل مسئله A Recipe For Problem Solving

  • درک مسئله Understand the Problem

  • بررسی مثال‌ها Explore Examples

  • تجزیه کردن آن Breake it Down

  • حل/ساده‌سازی Solve / Simplify

  • بازنگری و بازسازی Look Back Refactor

روز 100 - تمرین، تمرین، تمرین Day 100 - PRACTICE PRACTICE PRACTICE

  • پر تکرارترین سوالات مصاحبه Most Frequently Asked Interview Questions

بخش جایزه Bonus Section

  • سخنرانی جایزه Bonus Lecture

نمایش نظرات

آموزش 100 روز کدنویسی: ساختمان داده‌ها و الگوریتم‌ها با جاوااسکریپت
جزییات دوره
30.5 hours
312
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
4,220
4.8 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Elshad Karimov Elshad Karimov

توسعه دهنده نرم افزار من الشاد کریموف هستم و یک توسعه دهنده نرم افزار ، مربی آنلاین ، وبلاگ نویس و نویسنده کتاب ، ساختارهای داده و الگوریتم ها در Swift هستم. من بیش از 10 سال تجربه توسعه نرم افزار با سابقه خوب در زمینه توسعه iOS و توسعه بازی و همچنین Oracle PL / SQL ، Java و Python دارم. من در چندین شرکت کار کردم و چندین برنامه افزودنی برای نرم افزارهای مالی و صورتحساب ایجاد کردم. من دو بازی با استفاده از Unity توسعه داده ام و بیش از 10 برنامه iOS در Appstore در دسترس دارم.