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

دانلود Data Structures and Algorithms with Java

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: تسلط بر برنامه‌نویسی جاوا و ساختمان داده‌ها برنامه‌نویسی پایه جاوا – سینتکس، انواع داده‌ها، ساختارهای کنترلی، توابع و مدیریت استثناها. برنامه‌نویسی شی‌گرا (OOP) – مفاهیمی مانند کلاس‌ها، اشیاء، ارث‌بری، چندریختی، انتزاع و کپسوله‌سازی در جاوا. اصول طراحی – استانداردهای صنعتی مانند SOLID، DRY، KISS و YAGNI برای نوشتن کدی تمیز و قابل نگهداری. الگوهای طراحی و کدنویسی ماشینی – آشنایی با الگوهای رایج طراحی و نحوه مواجهه با مراحل کدنویسی در مصاحبه‌های شغلی. ساختمان داده‌های خطی – پیاده‌سازی و کاربردهای آرایه‌ها، ArrayList، لیست‌های پیوندی، پشته‌ها، صف‌ها و HashMapها در جاوا. ساختمان داده‌های غیرخطی – درک درخت‌ها (BST, AVL)، هیپ‌ها (Min/Max)، Trieها و گراف‌ها به همراه الگوریتم‌های پیمایش مانند DFS و BFS. دستکاری بیت‌ها (Bit Manipulation) – درک عمیق نحوه عملکرد بیت‌ها، شامل تبدیل باینری به دهدهی و عملیات سطح پایین. پیچیدگی زمانی و مکانی – یاد بگیرید چگونه کارایی کد خود را با استفاده از نماد Big-O تحلیل کنید. پیش نیازها: آشنایی اولیه با مفاهیم برنامه‌نویسی (مفید است اما اجباری نیست)

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

در این دوره جامع، ما با مبانی اصلی جاوا شروع می‌کنیم و سینتکس، برنامه‌نویسی شی‌گرا (OOP) و اصول ضروری طراحی مانند SOLID، DRY و KISS را پوشش می‌دهیم. چه در برنامه‌نویسی تازه‌کار باشید و چه دانشجویی که قصد تقویت مهارت‌های جاوای خود را دارد، این دوره راهنمای کامل شماست. ما گام به گام پیش می‌رویم تا از درک کامل هر مبحث اطمینان حاصل کنیم.

زبان جاوا به دلیل محبوبیت بالا، قدرت بخش بیش از ۹۰٪ شرکت‌های Fortune 500، اپلیکیشن‌های اندروید و سیستم‌های مالی است. پشتیبانی قوی آن از OOP، آن را به انتخابی ایده‌آل برای مهندسان نرم‌افزار تبدیل کرده است.

شما همچنین یاد می‌گیرید که چگونه ساختمان داده‌های خطی و غیرخطی را پیاده‌سازی کرده و با آن‌ها کار کنید. در بخش خطی، آرایه‌ها، ArrayListها، لیست‌های پیوندی، پشته‌ها، صف‌ها و HashMapها را بررسی می‌کنیم که بلوک‌های سازنده هر برنامه کارآمد هستند. سپس به مباحث پیشرفته‌ای مانند درخت‌ها (BST, AVL)، هیپ‌ها (Min/Max)، Trieها و گراف‌ها، شامل الگوریتم‌های کلیدی پیمایش مانند DFS و BFS می‌پردازیم.

این دوره سرشار از چالش‌های کدنویسی است تا به شما در تثبیت مفاهیم و آمادگی برای مصاحبه‌های فنی و مراحل کدنویسی ماشینی کمک کند.

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


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

مقدمه Introduction

  • جاوا چگونه کار می‌کند How Java Works

  • نصب جاوا و محیط IntelliJ IDEA Setting up Java and Intellij Idea

مبانی Basics

  • برنامه Hello World Hello World

  • انواع داده‌ها در جاوا Data Types in Java

  • انواع داده‌های غیر اولیه Non Primitive Data Types

  • متغیرها و ثابت‌ها در جاوا Variables and Constants in Java

  • عملگرهای ریاضی پایه Basic Athematic Operators

  • دریافت ورودی از کاربر Taking Input from User

  • دستورات شرطی در جاوا Conditional Statements in Java

  • دستورات Switch در جاوا Switch Statements in Java

  • حلقه‌ها در جاوا Loops in Java

  • آرایه‌ها چیستند؟ What are Arrays?

  • آرایه‌ها در جاوا Arrays in Java

  • آرایه‌ها در جاوا بخش دوم Arrays in Java Part 2

  • آرایه‌های دو بعدی در جاوا 2D Arrays in Java

  • آرایه‌های پویا با استفاده از List Dynamic Arrays using Lists

  • استثناها و مدیریت استثناها Exception and Exception Handling

  • ساختار داده آرایه Array Data Structure

  • ساختار داده HashMap HashMap Data Structure

  • ساختار داده Set Set Data Structure

برنامه‌نویسی شی‌گرا با جاوا Object Oriented Programming with Java

  • مقدمه‌ای بر OOPS Introduction to OOPS

  • مزایای برنامه‌نویسی شی‌گرا Benefits of OOPS

  • متدها و کلمه کلیدی this Methods and this keyoword

  • سازنده (Constructor) Constructor

  • متدهای Getter و Setter Getters and Setters

  • کلمه کلیدی Static Static Keyword

  • ستون‌های اصلی OOPS Pillars of OOPS

  • ستون‌های اصلی OOPS بخش دوم Pillars of OOPS Part 2

  • کلاس‌ها و متدهای انتزاعی (Abstract) Abstract Classes and Methods

  • اینترفیس‌ها (Interfaces) Interfaces

  • تمرینات OOPS شماره ۱ OOPS Practice Question - 1

اصول و الگوهای طراحی Design Principles and Patterns

  • اصل DRY DRY

  • اصول KISS و YAGNI KISS and YAGNI

  • اصول S.O.L.I.D S.O.L.I.D Principles

  • الگوی طراحی Singleton Singleton Design Pattern

  • الگوی طراحی Factory Factory Design Pattern

  • الگوی طراحی Builder Builder Design Pattern

  • الگوی طراحی Adapter Adapter Design Pattern

  • الگوی طراحی Bridge Bridge Design Pattern

  • الگوی طراحی Proxy Proxy Design Pattern

  • الگوی طراحی Command Command Design Pattern

  • الگوی طراحی Observer Observer Design Pattern

  • الگوی طراحی Iterator Iterator Design Pattern

ساختمان داده و الگوریتم‌ها Data Structure and Algorithms

  • پیچیدگی زمانی و مکانی Space and Time Complexity

  • پیچیدگی زمانی-مکانی ثابت Constant Space Time Complexity

  • پیچیدگی زمانی-مکانی خطی Linear Space Time Complexity

  • DSA چیست؟ What is DSA?

  • پیچیدگی زمانی-مکانی لگاریتمی Logarithmic Space Time Complexity

  • پیچیدگی زمانی-مکانی درجه دو Quadratic Space Time Complexity

  • مرور سریع Quick Recap

اصول پایه Fundamentals

  • مبانی سیستم اعداد باینری و دهدهی Basics of Binary and Decimal Number System

  • عملگرهای بیتی Bitwise Operators

  • شیفت به چپ و راست Left Shift and Right Shift

  • شمارش بیت‌ها Counting Bits

  • تبدیل باینری به دهدهی Convert Binary to Decimal

  • تبدیل دهدهی به باینری Convert Decimal to Binary

  • معکوس کردن عدد صحیح Reverse and Integer

  • توان دو Power of two

  • متمم عدد صحیح در مبنای ۱۰ Compliment Base 10 Integer

ریاضیات پایه Basic Maths

  • اعداد اول Prime Number

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

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

مبانی بازگشتی (Recursion) Basics of Recursion

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

  • محاسبه X به توان n X to the Power n

ساختمان داده‌های خطی Linear Data Structures

  • مقدمه Introduction

  • شروع کار با آرایه‌ها Getting Started with Arrays

  • درک تخصیص حافظه Understanding Memory Allocation

  • آرایه‌های پویا Dynamic Arrays

  • ساخت آرایه از صفر Create Array from Scratch

  • یافتن ایندکس با جستجوی خطی Find Index using Linear Search

  • حذف عناصر Removing Elements

  • کمترین و بیشترین مقدار در آرایه Min and Max in Array

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

  • افزودن قابلیت اندازه پویا به آرایه‌ها Adding support to Dynamic Size Arrays

حل مسئله با آرایه‌ها Problem Solving - Arrays

  • عدد تکی Single Number

  • مجموع دو عدد (Two Sum) Two Sum

  • مرتب‌سازی رنگ‌ها Sort Colors

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

  • انتقال صفرها Move Zeros

  • اشتراک آرایه‌ها Intersect Arrays

  • بررسی مرتب بودن و چرخش آرایه Check if Array is Sorted and Rotated

لیست‌های پیوندی Linked Lists

  • مقدمه Introduction

  • درک تخصیص حافظه Understanding Memory Allocation

  • کار با LinkedList داخلی جاوا Working with Built-In LinkedList

  • انواع لیست‌های پیوندی Types of LinkedList

  • ساخت لیست پیوندی از صفر Creating LinkedList from Scratch

  • پیمایش لیست پیوندی Traversing LinkedList

  • معکوس کردن لیست پیوندی Reverse LinkedList

  • حذف گره از ابتدا Delete Node from Beginning

  • حذف گره از انتها Delete Node From End

  • یافتن گره K-ام از انتها Kth Node From End

  • پیمایش لیست پیوندی (تکرار) Traversing Linked List

  • معکوس کردن لیست پیوندی (تکرار) Reverse Linked List

حل مسئله با لیست‌های پیوندی Problem Solving - LinkedList

  • تعویض جفت‌ها Swap Pairs

  • معکوس کردن در گروه‌های K تایی Reverse in K groups

  • تشخیص چرخه (Cycle Detection) Cyclic Detection

  • یافتن نقطه وسط لیست پیوندی Find Middle of LinkedList

  • تشخیص و حذف حلقه Detect & Remove Loop

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

پشته‌ها Stacks

  • مقدمه Introduction

  • کار با کلاس Stack Working with Stack Class

  • ساخت پشته اختصاصی Creating Own Stack

  • حذف عناصر از بالا (Pop) Remove Elements from Top

  • مشاهده عنصر بالا (Peek) Peek Elements

  • سرریز پشته (Stack Overflow) Stack Overflow

  • تخلیه پشته (Stack Underflow) Stack Underflow

  • ساخت پشته با استفاده از لیست پیوندی Creating Stack using LinkedList

حل مسئله با پشته‌ها Problem Solving Stacks

  • دو پشته Two Stacks

  • معکوس کردن رشته‌ها Reverse Strings

  • بررسی پرانتزهای معتبر Valid Parentheses

  • درج عنصر در کف پشته Insert An Element At its bottom

  • معکوس کردن پشته Reverse Stack

  • مرتب‌سازی پشته Sort Stack

  • پرانتزهای اضافی Redundant Brackets

  • مسئله سلبریتی Celebrity Problem

  • کمترین مقدار پشته با پیچیدگی O(n) Min Stack O(n)

  • کمترین مقدار پشته با پیچیدگی O(1) Min Stack O(1)

صف‌ها Queues

  • مقدمه Introduction

  • کار با صف‌ها در جاوا Working with Queues in Java

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

  • ساخت صف اختصاصی Creating Own Queue

  • خروج از صف (Dequeue) Dequeue from Queue

  • خطای موجود در صف Bug in Queue

  • رفع خطا در آرایه‌های حلقوی Fixing Bug in Circular Arrays

  • ساخت صف با استفاده از پشته‌ها Building Queue using Stacks

  • صف‌های اولویت‌دار Priority Queues

  • ساخت صف اولویت‌دار Build Priority Queue

صف‌ها بخش دوم Queue Part - 2

  • طراحی صف حلقوی Design Circular Queue

  • طراحی صف دو سر (Deque) Design Double Ended Queue

  • معکوس کردن صف با بازگشتی Reverse Queue using Recursion

  • اولین عدد منفی در پنجره‌ای به اندازه K First Negative Integer in window size K

  • معکوس کردن K عنصر اول صف Reverse First K elements of Queue

  • در هم تنیدن نیمه اول و دوم صف Interleave the first half of queue with second one

هش‌مپ‌ها (HashMaps) HashMaps

  • مقدمه Introduction

  • HashMap در جاوا HashMap Java

  • کاراکتر غیر تکراری Non Repeated Char

  • اولین کاراکتر تکراری First Repeated Char

  • تابع هش (Hash Function) Hash Function

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

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

  • ساخت HashMap اختصاصی Building Own HashMap

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

  • دریافت داده‌ها Getting Data

  • کاوش درجه دو (Quadratic Probing) Quadratic Probing

  • حذف داده‌ها Remove Data

ساختمان داده‌های غیرخطی Non Linear Data Structures

  • مقدمه Introduction

درخت‌های باینری Binary Trees

  • مقدمه Introduction

  • درک درخت‌های باینری و درخت‌های جستجوی باینری Understanding Binary and Binary Search Trees

  • ساخت درخت جستجوی باینری (BST) Building Binary Search Tree

  • پیمایش گره‌ها Travelling Nodes

  • یافتن عنصر در درخت Find Element in Tree

  • روش‌های پیمایش درخت Tree Traversals

  • پیمایش Pre-Order Pre-Order

  • پیمایش In-Order In-Order

  • پیمایش Post-Order Post Order

  • عمق و ارتفاع درخت Depth and Height

  • کمترین مقدار در درخت Minimum Value in Tree

  • بررسی برابری درخت‌ها Equality Checking

  • اعتبارسنجی درخت باینری Validating Binary Tree

  • گره‌هایی در فاصله K Nodes at K distance

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

تسلط بر درخت‌های باینری Mastering Binary Trees

  • قطر درخت (Diameter) Diameter

  • بررسی متوازن بودن درخت Balanced or Not

  • بررسی درخت مجموع (Sum Tree) Sum Tree or Not

  • پیمایش زیگزاگی Zig Zag Traversal

  • پیمایش مرزی Boundary Traversal

  • پیمایش ترتیب عمودی Vertical Order Traversal

  • نمای بالا (Top View) Top View

  • نمای پایین (Bottom View) Bottom View

  • نمای راست (Right View) Right View

  • پیمایش قطری Diagonal Traversal

  • مجموع گره‌های طولانی‌ترین مسیر Sum of nodes of longest path

  • کمترین جد مشترک (LCA) در درخت باینری LCA of Binary Tree

  • حداقل زمان برای سوزاندن درخت Minimum Time to Burn Tree

  • پیمایش موریس (Morris Traversal) Morris Traversal

  • تخت کردن درخت باینری Flatten Binary Tree

درخت‌های جستجوی باینری (BST) Binary Search Trees

  • پیش‌رو و پس‌روی In-order In-order Predecessor and Succesor

  • K-امین کوچکترین/بزرگترین در BST Kth Smallest/Largest in BST

  • کمترین جد مشترک (LCA) در BST LCA in BST

  • تبدیل BST معمولی به متوازن Normal BST to Balanced

  • ادغام دو درخت باینری Merge Two Binary Trees

  • بزرگترین BST در یک درخت باینری Largest BST in Binary Tree

درخت‌های AVL AVL Trees

  • مقدمه Introduction

  • درک چرخش‌ها (Rotations) Understanding Rotations

  • چرخش‌های LeftRight و RightLeft LeftRight and RightLeft Rotations

  • ساخت درخت AVL از صفر Creating an AVL Tree from Scratch

  • تشخیص گره نامتوازن Detecting Imbalanced Node

  • تشخیص چرخش‌ها ۱ Detecting Rotations - 1

  • تشخیص چرخش‌ها ۲ Detecting Rotations - 2

  • پیاده‌سازی چرخش‌های چپ و راست Implementing Left and Right Rotations

هیپ‌ها (Heaps) Heaps

  • مقدمه Introduction

  • منطق درج در هیپ Heap Insert Logic

  • ساخت هیپ از صفر Creating Heap from Scratch

  • منطق حذف عنصر Removing Element Logic

  • عملیات Heapify Heapify

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

  • بررسی معتبر بودن Max Heap در درخت باینری Check if Binary Tree is a Valid Max Heap

  • کوچکترین بازه در K لیست Smallest Range in K Lists

ترایزها (Tries) Tries

  • مقدمه Introduction

  • ساخت TRIE از صفر Building TRIE from Scratch

  • تکمیل خودکار (Autocomplete) با TRIE Autocomplete using TRIE

  • حذف عناصر از TRIE Removing Elements from TRIE

  • طولانی‌ترین پیشوند مشترک Longest Common Prefix

گراف‌ها Graphs

  • مقدمه Introduction

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

  • ساخت گراف از صفر Building Graph from Scratch

  • پیمایش جستجوی اول سطح (BFS) Traversal - Breadth First Search

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

  • تشخیص چرخه در گراف Cyclic Detection in Graph

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

  • الگوریتم کان (Kahn's Algorithm) Kahn's Algorithm

  • بازنویسی گراف به سبک OOPS Refactoring Graphs to OOPS Style

  • ساخت گراف جهت‌دار وزن‌دار Building Directed Weighted Graph

  • الگوریتم کوتاه‌ترین مسیر Shortest Path Algorithm

  • کدنویسی الگوریتم کوتاه‌ترین مسیر Shortest Path Algorithm - Code

گراف‌های بدون جهت Undirected Graphs

  • مقدمه Introduction

  • تشخیص چرخه Cyclic Detection

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

  • کدنویسی الگوریتم دایکسترا Coding Dijkstra's Algorithm

  • درخت پوشای کمینه (MST) Minimum Spanning Tree

  • الگوریتم پرایم Prim's Algorithm

  • کدنویسی الگوریتم پرایم Prim's Algorithm Code

الگوریتم‌ها Algorithms

  • بازگشتی Recursion

  • پشته حافظه بازگشتی Recursion Memory Stack

  • سری فیبوناچی Fibonacci Series

  • مسئله بالا رفتن از پله‌ها Climb Stairs

  • تکرار ارقام Say Digits

  • معکوس کردن رشته‌ها Reverse Strings

  • بررسی پالیندروم بودن Check for Pallindrome

تسلط بر بازگشتی بخش دوم Mastering Recursion - Part 2

  • زیرمجموعه / زیرتوالی‌های رشته Subset / Subsequences of String

  • مسئله کیپد تلفن Phone Keypad Problem

  • جایگشت‌های رشته Permutation of String

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

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

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

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

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

  • مرتب‌سازی سریع (Quick Sort) Quick Sort

الگوریتم‌های جستجو Searching Algorithms

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

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

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

  • جستجوی نمایی (Exponential Search) Exponential Search

نمایش نظرات

آموزش جامع ساختمان داده‌ها و الگوریتم‌ها با جاوا
جزییات دوره
43.5 hours
241
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
401
4.5 از 5
ندارد
دارد
دارد
Piyush Garg
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Piyush Garg Piyush Garg

من توسعه‌دهنده می‌سازم، نه فقط اپلیکیشن.