C# Intermediate - Part III (Abstract Data Structures and Sorting Algorithms)
Queue, Stack, Linked List, Trees, Graphs, Quick and Merge Sort, Time Complexity
Development ,Programming Languages,C#
Lectures -46
Resources -17
Duration -11.5 hours
Lifetime Access
Lifetime Access
30-days Money-Back Guarantee
Get your team access to 10000+ top Tutorials Point courses anytime, anywhere.
Course Description
In this course the students will develop their logical and algorithmic thinking creating the static and dynamic version of the abstract data structures Linked List, Doubly Linked List, Stack and Queue. Understanding the intricacies of the structures, their advantages and disadvantages, how they work, how much memory they need, how to compute their time complexity will boost students’ confidence and clarity. Software developers will be able to pick the right structure for the specific scenario they need in their working environment.
Teaching students complicated topics as graphs and trees are a challenge for every teacher. I am convinced that the subjects are covered in such a way that the students will be able to grasp the fundamental ideas and depending on their skill implement them with code. The advanced concepts are hard because they require knowledge about the recursion which I decided to include as well.
The peculiar data structures Hashset and Dictionary will be covered in the course as well increasing the range of options for the students.
The basic sorting algorithms – Selection, Bubble, Insertion – are explained with examples and code too. The advanced sorting algorithms (Merge and Quick) are presented in a way that will be helpful for the students’ mind to come up with the algorithm and write it down.
Before we start making multi-tier applications a strong foundation of knowledge, skills and experience with solving simple tasks are necessary. This course is the fourth stepping stone towards achieving that goal.
I hope that my students will be benevolent toward each other in the Q&A section of the courses and be successful in their future career as a software developer (and engineer).
Goals
- The intricacies, advantages and disadvantages of the static and dynamic implementation of Linked List, Doubly Linked List, Stack and Queue.
- When and how to use Hashset and Dictionary.
- Definition, usage and implementation of Binary Tree and Graph.
- How to sort data with various sorting algorithms – Selection, Bubble, Insertion, Quick and Merge.
- In-depth analysis and explanation of the Doubly Linked List, Binary Tree and Graph structures, Quick and Merge sort behavior too.
- Recursion as an alternative solution and approach to solving iterative problems.
- Compare your way of thinking and solving exercises with mine solutions to the problems.
- How to compute the time complexity of sorting algorithms and abstract data structures’ operations.
Prerequisites
- Anyone who has an interest in software development and particularly abstract data structures and sorting algorithms.
- Students should have knowledge about the basics of Object-oriented programming or finished my course "C# Intermediate - Part I (Mastering OOP)".
- Finishing my course "C# Intermediate - Part II (Reflection, Events, LINQ)" will be of great help.

Curriculum
Check out the detailed breakdown of what’s inside the course
Abstract Data Structures
10 Lectures
-
Excerpts 05:59 05:59
-
Introduction 05:54 05:54
-
Static Implementation of Dynamic List 51:23 51:23
-
Dynamic Implementation of Dynamic List 48:33 48:33
-
Queue 08:30 08:30
-
Static Implementation of Queue 20:05 20:05
-
Dynamic Implementation of Queue 18:31 18:31
-
Stack 04:13 04:13
-
Static Implementation of Stack 18:04 18:04
-
Dynamic Implementation of Stack 22:42 22:42
Abstract Data Structures - Advanced
18 Lectures

Sorting Algorithms
7 Lectures

Binary Search and Big O Notation
6 Lectures

Materials/Solutions
5 Lectures

Instructor Details
Ivan Iliev
Greetings, stranger! :) I am not surprised to see your kind here. If you want to break free from the Singleton pattern and the exceptional thought about learning from more than one teacher pops up in your mind stack, then you better try that idea now, before the memory reallocation takes place. Some say that in order to become a great software developer you shall learn from the start. The mighty and fearsome kung-fu legends of the past talked and taught about the importance of a strong foundation. In their case that was the core and the legs, in our case, that’s the fundamental theory that will allow us to build complex and meaningful applications.
But don’t be fooled by the seemingly simple task – the casting of that theory into practice will have its price – the asynchronous 0s and 1s that will create the never-ending illusion of everything. The battles ahead will contain different data types, complicated concepts, composite layers of business logic, a variety of databases, and on top of that a selection of presentation layers for the different tastes of the end users. If you are intrepid and passionate enough, merciful and generous towards my lack of ‘x’ years in renowned universities and companies – you have the basic requirements and I am thankful. I will do my best so you can become what I am not – a better version in that repository! :)
P.S.: If you enjoy playing computer games like Witcher 3, WarCraft 3 TFT, Heroes 3 Might and Magic, AOE 2/3, and Diablo 2 – congratulations, you met the recommended requirements for my courses. :)
P.S.S: I have been teaching professional classes in Software Development for 5 years and have a Bachelor's degree in Business Information Technology.
Course Certificate
Use your certificate to make a career change or to advance in your current career.

Our students work
with the Best


































Related Video Courses
View MoreAnnual Membership
Become a valued member of Tutorials Point and enjoy unlimited access to our vast library of top-rated Video Courses
Subscribe now
Online Certifications
Master prominent technologies at full length and become a valued certified professional.
Explore Now