نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیویی برای نمایش وجود ندارد.
توضیحات دوره:
این دوره مقدماتی به شما می آموزد که چگونه برخی از ساختارهای اساسی داده ها و الگوریتم ها را از ابتدا با C ++ با ترکیبی از مقدمه نظری با استفاده از اسلایدها و کد عملی C ++ پیاده سازی کنید. شناخت برخی از ساختارهای اساسی داده ها و الگوریتم ها هم از لحاظ تئوری و هم از طریق یک اجرای عملی پرسپکتیو به شما در داشتن یک برنامه نویس بهتر C ++ کمک می کند ، پایه خوبی برای درک محتویات استاندارد کتابخانه و الگوریتم های مکانیک "زیر هود" است و به عنوان نوعی دانش که در چندین مصاحبه کدگذاری مورد نیاز است نیز به شما کمک می کند. در این دوره ، مقدمه ای بر ساختارهای داده ها و الگوریتم ها در C ++ ، شما می آموزید که چگونه برخی از ساختارهای اساسی داده ها و الگوریتم ها را در C ++ از ابتدا ، با ترکیبی از مقدمه تئوری با استفاده از اسلایدها ، و کد عملی ++ C نیز اجرا کنید. هیچ دانش قبلی و نظریه الگوریتم داده مورد نیاز نیست. شما فقط به یک دانش اساسی در مورد ویژگی های زبان C ++ نیاز دارید. در ابتدا ، شما می توانید نحوه ایجاد کلاس C ++ را برای استفاده ایمن از آرایه ها ، با مدیریت خودکار حافظه با استفاده از سازنده و تخریب کننده و دسترسی ایمن به عناصر آرایه با بررسی مرزها ، کشف کنید. سپس ، خواهید دید که چگونه می توان این کلاس آرایه را بیشتر بهبود بخشید ، اپراتور درج را بیش از حد بارگذاری کرد تا یک نحو چاپ اصطلاحی ساده برای آرایه ها ارائه دهد و کلاس آرایه را با معنی شناسی حرکت بهینه کنید. همچنین یاد خواهید گرفت که چگونه آرایه ها را به درستی کپی کنید ، و اصطلاح کپی و مبادله را در عمل مشاهده خواهید کرد. سپس ، می آموزید که چگونه کلاس آرایه را با الگوها تعمیم دهید. در مرحله بعدی ، شما با نماد Big O به صورت بصری عملی آشنا خواهید شد و این دانش را در چند الگوریتم جستجو استفاده خواهید کرد. شما یادگیری نحوه جستجو را با استفاده از جستجوی خطی ساده شروع خواهید کرد ، و سپس با استفاده از جستجوی باینری نحوه بهبود جستجو را خواهید دید. من ابتدا این الگوریتم ها را با استفاده از اسلایدها معرفی می کنم و سپس آنها را در حال اجرا در کد آزمایشی C ++ بتن خواهید دید. سرانجام ، شما خواهید فهمید که چگونه سایر ساختارهای داده رایج ، مانند پشته با خط مشی LIFO و عملیات فشار و پاپ ، و لیست های پیوندی ، از جمله کارهایی مانند درج و حذف گره لیست و جستجوی عناصر در یک لیست پیوسته را پیاده سازی کنید. پس از اتمام این دوره ، شما می توانید برخی از ساختارهای بنیادی داده و الگوریتم های رایج را از ابتدا در C ++ پیاده سازی کنید ، شما یک درک عملی از نماد Big O برای ارزیابی و مقایسه روند عملکرد الگوریتم خواهید داشت ، و در عمل خواهید دید چندین روش جالب برنامه نویسی C ++ که قادر خواهید بود از آنها در پروژه های C ++ خود نیز استفاده مجدد کنید. علاوه بر این ، شما قادر خواهید بود با استفاده از این دانش بنیادی به سمت ساختارهای داده و الگوریتم های پیشرفته C ++ پیش بروید.
سرفصل ها و درس ها
بررسی اجمالی دوره
Course Overview
-
بررسی اجمالی دوره
Course Overview
با استفاده از آرایه ها با خیال راحت
Safely Using Arrays
-
مقدمه
Introduction
-
پیش نیازها
Prerequisites
-
بررسی اجمالی ماژول
Module Overview
-
آرایه چیست؟
What Is an Array?
-
C ++ ساخته شده در آرایه ها و پشته در مقابل تخصیص های پشته
C++ Built-in Arrays and Stack vs. Heap Allocations
-
شروع یک سفر پیاده سازی کلاس آرایه اساسی
Starting a Basic Array Class Implementation Journey
-
مشاهده یک اشکال در کلاس آرایه
Spotting a Bug in the Array Class
-
رفع نشت های حافظه با یک تخریب کننده
Fixing Memory Leaks with a Destructor
-
دسترسی به عناصر آرایه با عملگر بیش از حد بارگیری شده []
Accessing Array Elements with Overloaded operator[]
-
اعطای دسترسی فقط خواندنی به عناصر آرایه
Granting Read-only Access to Array Elements
-
بررسی مرزها برای دسترسی به عنصر آرایه ایمن
Bounds-checking for Safe Array Element Access
-
بررسی آرایه محدودیت ها در عمل
Array Index Bounds-checking in Action
-
خلاصه
Summary
پیاده سازی آرایه را بهبود ببخشید
Improve Array Implementation
-
مقدمه
Introduction
-
به راحتی آرایه ها را چاپ می کنید
Conveniently Printing Arrays
-
نسخه ی نمایشی: چاپ آرایه ها با اپراتور اضافه بار بیش از حد
Demo: Printing Arrays with the Overloaded Insertion Operator
-
نسخه ی نمایشی: یک اشکال ظریف هنگام کپی آرایه ها
Demo: A Subtle Bug When Copying Arrays
-
تجزیه و تحلیل اشکال ظریف کپی: کم عمق در مقابل کپی های عمیق
Analyzing the Subtle Copy Bug: Shallow vs. Deep Copies
-
با استفاده از سازنده کپی سفارشی ، آرایه ها را با خیال راحت کپی کنید
Safely Copying Arrays with a Custom Copy Constructor
-
نسخه ی نمایشی: سازنده کپی آرایه های سفارشی در عمل رفع اشکال کپی
Demo: Custom Array Copy Constructor in Action Fixing the Copy Bug
-
بارگذاری بیش از حد اپراتور واگذاری
Overloading the Assignment Operator
-
اصطلاح کپی و مبادله
The Copy-and-swap Idiom
-
بهینه سازی کلاس آرایه با حرکت معنایی
Optimizing the Array Class with Move Semantics
-
تعمیم کلاس آرایه با الگوها
Generalizing the Array Class with Templates
-
خلاصه
Summary
کارآمد جستجو
Efficiently Searching
-
مقدمه
Introduction
-
یک الگوریتم ساده و مستقیم: جستجوی خطی
A Simple Straightforward Algorithm: Linear Search
-
نسخه ی نمایشی: پیاده سازی جستجوی خطی در ++ C
Demo: Implementing Linear Search in C++
-
جستجوی دقیق تر با جستجوی دودویی
Smarter Searching with Binary Search
-
نسخه ی نمایشی: پیاده سازی جستجوی دودویی در ++ C
Demo: Implementing Binary Search in C++
-
معرفی Big O Notation و مجانی بودن پیچیدگی زمان اجرا
Introducing the Big O Notation and Asymptotic Runtime Complexity
-
مقایسه کارایی جستجوی خطی و جستجوی دودویی
Comparing the Efficiency of Linear Search vs. Binary Search
-
خلاصه
Summary
پیاده سازی الگوی آخرین بار در اولین بار با پشته
Implementing a Last-in First-out Pattern with the Stack
-
مقدمه
Introduction
-
پشته چیست؟
What Is a Stack?
-
یک برنامه مهم: Call Stack
An Important Application: The Call Stack
-
عملیات اساسی پشته
Fundamental Stack Operations
-
نسخه ی نمایشی: پیاده سازی اساسی در C ++
Demo: A Basic Stack Implementation in C++
-
نسخه ی نمایشی: Stack in Action
Demo: Stack in Action
-
سرریز پشته: چیست و چگونه می توان از کد خود محافظت کرد
Stack Overflow: What Is It and How to Protect Your Code
-
نسخه ی نمایشی: سرریز پشته در عمل
Demo: Stack Overflow in Action
-
خلاصه
Summary
معرفی ساختارهای داده مبتنی بر گره: لیست های پیوند داده شده
Introducing Node-based Data Structures: Linked-lists
-
مقدمه
Introduction
-
لیست پیوندی چیست؟
What Is a Linked List?
-
لیست های پیوندی در برابر آرایه ها
Linked Lists vs. Arrays
-
درج گره جدید در یک لیست پیوندی
Inserting a New Node in a Linked List
-
حذف گره از لیست پیوند داده شده
Removing a Node from a Linked List
-
مرور لیست پیوندی
Traversing a Linked List
-
نسخه ی نمایشی: پیاده سازی لیست پیوندی در ++ C
Demo: Implementing a Linked List in C++
-
نسخه ی نمایشی: لیست پیوندی کلاس C ++ در عمل
Demo: Linked List C++ Class in Action
-
خلاصه و متشکرم
Summary and Thank You
نمایش نظرات