Telemetry — Implementing a library for Data Structures and Algorithms in C++.

Utkarsh Pant
The Telemetry Blog
Published in
3 min readNov 20, 2019

--

What?

Data Structures and Algorithms is arguably one of the most important courses in Computer Science and Engineering curricula across universities. Fundamentally, the course emphasizes the ability to understand a problem, think of a solution and optimize it, all using the tools at our disposal.

The discussion on data structures starts out small, as a way to represent data in different ways, depending on the context. As we progress through courses, Algorithms are thrown into the mix and suddenly considerations like:

  1. the importance of choosing the right data structure for the problem at hand,
  2. selecting the right approach to solving the problem (approaches being greedy, dynamic programming, divide and conquer and the like) and
  3. optimizing our solution with respect to space and time complexity,

are brought to the fore.

Why?

In the same vein, Telemetry is an attempt to implement some important (and useful) data structures and algorithms in C++. Specifically, the goals of this exercise are to:

  1. Sharpen my C++ skills,
  2. Revisit data structures and algorithms (and every part of them that gave me headaches) and
  3. Hopefully, implement the library in an Object-Oriented fashion and generalize the library using Templates.

Addendum 19th May 2020:

The new goals for this library also include:

  1. Implementing a simplified version of the STL.
  2. Create an easy-to-follow tutorial for dummies like me and document issues I ran into, doubts I had, and helpful reading material I found, all in one place.

How?

I hope to document my progress in this exercise in a series of articles. Since I am a nut for organizing things (at least I like to think so), I’ll try and base each article on a common theme or goal. In each article, I’ll take a reasonable dive into the theoretical aspect of things and follow it up with practical implementation.

I will be pushing all the code for this project to GitHub, here:

Along the way, I’ll drone on with a commentary on the problems that I ran into, everything that confused me or got me stuck and list all the lurking I did on the Interwebs to clarify those doubts, so don’t lose faith in me in case I’m being an idiot about something obvious. Thanks!

Okie Dokie. Here goes...

TL;DR

Here’s every article in the series at a glance. Updated after every new post.

Linked Lists

Stacks

Queues

--

--

Utkarsh Pant
The Telemetry Blog

Computer Engineering grad from Mumbai. A firm believer in the Simple Stick. This is where I ramble about things! Connect at www.linkedin.com/in/utkarshpant.