An excellent algorithm often comes along with a set of excellent knowledge buildings that enable the algorithm to govern the information effectively. On this course, we contemplate the frequent knowledge buildings which can be utilized in numerous computational issues. You’ll learn the way these knowledge buildings are carried out in numerous programming languages and can apply implementing them in our programming assignments. It will enable you to know what’s going on inside a specific built-in implementation of an information construction and what to anticipate from it. Additionally, you will be taught typical use circumstances for these knowledge buildings.
A number of examples of questions that we’re going to cowl on this class are the next:
- What is an effective technique of resizing a dynamic array?
- How precedence queues are carried out in C++, Java, and Python?
- implement a hash desk in order that the amortized operating time of all operations is O(1) on common?
- What are good methods to maintain a binary tree balanced?
Additionally, you will learn the way companies like Dropbox handle to add some massive information immediately and to avoid wasting numerous space for storing!
SKILLS YOU WILL GAIN
- Binary Search Tree
- Priority Queue
- Hash Table
- Stack (Abstract Data Type)List
In this module, you will learn about the basic data structures used throughout the rest of this course. We start this module by looking in detail at the fundamental building blocks: arrays and linked lists. From there, we build up two important data structures: stacks and queues. Next, we look at trees: examples of how they’re used in Computer Science, how they’re implemented, and the various ways they can be traversed. Once you’ve completed this module, you will be able to implement any of these data structures, as well as have a solid understanding of the costs of the operations, as well as the tradeoffs involved in using each data structure.