, Paper Strip
, Internal Nodes
, Moving Total
, Book Sale
, Unique Product
, Unique Numbers
, Window Manager
The C++ language provides imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation. Having a basic familiarity with the programming language used on the job is a prerequisite for quickly getting up to speed.
When designing and/or analyzing an algorithm or data structure, it is important to consider the performance and structure of an implementation. Algorithmic thinking is one of the key traits of a good programmer, especially one working on complex or performance-critical code.
Vectors are one-dimensional collections that act as dynamic arrays. In many languages, Vectors offer the flexibility of dynamically sized arrays, the simplicity of access of arrays, and are more performant than more ubiquitous collections in most scenarios.
Many real-life situations are best modeled by graphs. Therefore, an in-depth knowledge of graph data structures is important for a good programmer.
A queue is a collection of items that are maintained in a sequence and can be modified by the addition of entities at one end of the sequence and removal from the other end of the sequence. It is the collection to be used when first-in-first-out (FIFO) collection is needed.
An array is a container of a fixed number of objects of a similar type. It is a fundamental component of most programming languages.
A tree is a hierarchical structure defined recursively starting with the root node, where each node is a data structure consisting of a value, together with a list of references to other nodes (the "children"). A lot of problems can be solved efficiently with trees, which makes them important for developers.
Unordered set is a container that stores unique elements in no particular order, and which allow for fast retrieval of individual elements based on their value.
Choosing the right data structure to solve a problem can have huge implications on the performance of an application. Knowing when to use a specific data structure is one of the most important skills for a programmer.
A linked list is a linear collection of data elements where each element points to the next. It is a data structure consisting of a collection of nodes which together represent a sequence. It is usually used for advanced scenarios where we need fast access to the next element, or when we need to remove an element from anywhere in the collection.
Every programmer should be familiar with data-sorting methods, as sorting is very common in data-analysis processes.
Unordered map (or dictionary) is a data type composed of a collection of key-value pairs, where each possible key appears at most once in the collection. It is used when we need to access items by their keys.