پیشنهاد فرادرس

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

دسته بندی ها: سی پلاس پلاس ، آموزش های پلورال سایت (Pluralsight)

دانستن برخی از ساختارهای داده ها و الگوریتم ها به شما کمک می کند تا برنامه نویس ++C بهتری باشید. در این دوره شما خواهید آموخت که چگونه برخی از ساختارهای اساسی داده ها و الگوریتم های ++ C را با ترکیب یک مقدمه نظری با استفاده از اسلایدها و همچنین کد پیاده سازی ++C به کار ببرید. هیچ دانش قبلی از ساختار داده یا دانش تئوری الگوریتم مورد نیاز نیست. شما فقط نیاز به دانش پایه ای از ویژگی های زبان سی پلاس پلاس دارید. در ابتدا با نحوه توسعه کلاس ++C جهت استفاده ایمن از آرایه ها، با مدیریت خودکار مموری با استفاده از constructor و destructor و دسترسی ایمن آرایه ها با bounds checking  آشنا می شوید. سپس، خواهید دید که چطور این کلاس آرایه را بهبود می بخشید. همچنین چگونه آرایه ها را درست کپی می کنید و اصطلاح copy-and-swap را به وضوح در عمل می بینید. سپس، شما نحوه تعریف کلاس آرایه با قالب ها را خواهید آموخت. سپس، Big O notation را فرا خواهید گرفت و آنها را به چند الگوریتم جستجو اعمال می کنید. شما شروع به یادگیری نحوه جستجو با استفاده از جستجوی خطی ساده خواهید کرد و سپس خواهید دید که چگونه جستجو را با استفاده از جستجو باینری بهبود بخشید. پس از اتمام این دوره، شما می توانید برخی از ساختارها و الگوریتم های داده های اساسی را در ++C پیاده سازی کنید. شما درک عمیقی از  Big O notation برای ارزیابی و مقایسه روند عملکرد الگوریتم خواهید داشت و چندین تکنیک جالب ++C  در پروژه ها را نیز یاد می گیرید.

سرفصل:

  • معرفی دوره
  • آرایه ها
  • پیش نیازها
  • آرایه چیست؟
  • Stack و ارایه های سی پلاس پلاس در مقابل Heap Allocations
  • شروع asic Array Class Implementation
  • دسترسی به عناصر آرایه با Overloaded operator[]
  • Array Index Bounds-checking
  • بهبود پیاده سازی آرایه
  • Copy-and-swap
  • بهینه سازی کلاس آرایه با انتقال معناشناسی
  • جستجوی موثر
  • پیاده سازی جستجوی خطی در ++C
  • پیاده سازی جستجوی باینری در ++C
  • معرفی Big O Notation و پیچیدگی زمان اجرای خطی
  • Stack چیست؟
  • عملیات اصلی Stack
  • پیاده سازی Stack در سی پلاس پلاس
  • Stack Overflow
  • Linked List چیست؟
  • Linked Lists در مقابل آرایه ها
  • وارد کردن Node جدید در Linked List
  • حذف Node  از Linked List
  • و غیره
آیا این نوشته را دوست داشتید؟
Introduction to Data Structures and Algorithms in C++ Publisher:Pluralsight Author:Giovanni Dicanio Duration:3h 29m Level:Intermediate

This introductory course will teach you how to implement some fundamental data structures and algorithms in C++ from scratch, with a combination of theoretical introduction using slides, and practical C++ implementation code.
Knowing some fundamental data structures and algorithms both in theory and from a practical implementation perspective helps you in being a better C++ programmer, gives you a good foundation to understand standard library’s containers and algorithms inner “under the hood” mechanics, and serves as a kind of knowledge that is required in several coding interviews, as well. In this course, Introduction to Data Structures and Algorithms in C++, you’ll learn how to implement some fundamental data structures and algorithms in C++ from scratch, with a combination of theoretical introduction using slides, and practical C++ implementation code as well. No prior data structure or algorithm theory knowledge is required. You only need a basic knowledge of C++ language features. First, you'll discover how to develop a C++ class to safely use arrays, with automatic memory management using constructor and destructor, and safely accessing array elements with bounds checking. Then, you’ll see how to further improve this array class, overloading the insertion operator to offer a simple nice idiomatic printing syntax for arrays, and optimizing the array class with move semantics. You’ll also learn how to properly copy arrays, and you’ll see the copy-and-swap idiom in action. Then, you’ll learn how to generalize the array class with templates. Next, you’ll learn about the Big O notation in a practical intuitive way, and you’ll apply that knowledge to a couple of search algorithms. You’ll start learning how to search using the simple linear search, and then you’ll see how to improve searching, using binary search. I’ll first introduce these algorithms using slides, and then you’ll see them in action in concrete C++ demo code. Finally, you’ll discover how to implement other common data structures, like the stack with its LIFO policy and push and pop operations, and linked lists, including operations like list node insertion and removal, and searching elements in a linked list. After completing this course, you will be able to implement some common fundamental data structures and algorithms from scratch in C++, you’ll have a practical understanding of the Big O notation to evaluate and compare algorithm performance trends, and you’ll see in action, several interesting C++ coding techniques that you’ll be able to reuse in your own C++ projects as well.
Moreover, you will be able to use this foundational knowledge to move forward to more advanced C++ data structures and algorithms topics.
Course Overview
Course Overview
2m
Safely Using Arrays
Introduction
3m
Prerequisites
1m
Module Overview
1m
What Is an Array?
5m
C++ Built-in Arrays and Stack vs. Heap Allocations
3m
Starting a Basic Array Class Implementation Journey
5m
Spotting a Bug in the Array Class
4m
Fixing Memory Leaks with a Destructor
2m
Accessing Array Elements with Overloaded operator[]
3m
Granting Read-only Access to Array Elements
1m
Bounds-checking for Safe Array Element Access
4m
Array Index Bounds-checking in Action
3m
Summary
1m
Improve Array Implementation
Introduction
2m
Conveniently Printing Arrays
6m
Demo: Printing Arrays with the Overloaded Insertion Operator
1m
Demo: A Subtle Bug When Copying Arrays
2m
Analyzing the Subtle Copy Bug: Shallow vs. Deep Copies
4m
Safely Copying Arrays with a Custom Copy Constructor
2m
Demo: Custom Array Copy Constructor in Action Fixing the Copy Bug
1m
Overloading the Assignment Operator
3m
The Copy-and-swap Idiom
6m
Optimizing the Array Class with Move Semantics
5m
Generalizing the Array Class with Templates
5m
Summary
2m
Efficiently Searching
Introduction
1m
A Simple Straightforward Algorithm: Linear Search
2m
Demo: Implementing Linear Search in C++
10m
Smarter Searching with Binary Search
3m
Demo: Implementing Binary Search in C++
8m
Introducing the Big O Notation and Asymptotic Runtime Complexity
8m
Comparing the Efficiency of Linear Search vs. Binary Search
4m
Summary
1m
Implementing a Last-in First-out Pattern with the Stack
Introduction
1m
What Is a Stack?
2m
An Important Application: The Call Stack
2m
Fundamental Stack Operations
5m
Demo: A Basic Stack Implementation in C++
7m
Demo: Stack in Action
4m
Stack Overflow: What Is It and How to Protect Your Code
2m
Demo: Stack Overflow in Action
7m
Summary
1m
Introducing Node-based Data Structures: Linked-lists
Introduction
1m
What Is a Linked List?
6m
Linked Lists vs. Arrays
4m
Inserting a New Node in a Linked List
3m
Removing a Node from a Linked List
2m
Traversing a Linked List
2m
Demo: Implementing a Linked List in C++
13m
Demo: Linked List C++ Class in Action
4m
Summary and Thank You
1m

پیشنهاد فرادرس

لینک های دانلود حجم فایل: 301.0MB Pluralsight Introduction to Data Structures and Algorithms in C_git.ir.rar