Shehab Abdel-Salam
Writing articles. Writing code. Sometimes I do both.
-
Semantic Versioning in GitLab CI
You and your team are maintaing a set of backend services for an online shopping application. Scenario A, your colleague is pushing a bug fix to Order Service that caused some problems in the Cart Service. This new push has changed the state of the service from the old buggy...
-
Tries
Retrieval data structure. That’s what a Trie is known for, and that’s the easiest way to remember. A Trie is a special kind of a tree that handles string operations more conveniently. The entire English dictionary can be stored in a trie instead of a hash table. A trie is...
-
Binary Search Trees
Best thing about data structures is that you can have a structure or a container that can hold data and a set of methods (algorithms) that can operate on your data. Yeah, that’s pretty much the receipe of a data structure. Container of data + Operations on that container =...
-
Heaps & Priority Queues
A heap is a datastructure that stores the data in a way where the smallest/largest element can be accessed in constant time, i.e., in Big O(1). Binary Heaps are in general implemented using an array, however, we visualize it as a complete binary tree where the value of the parent...
-
Linked Lists (Singly, Doubly, and Circularly)
Linked Lists, another primitive datastructure with significant importance. It is a linear collection of data elements, slightly similar to arrays, the difference is the operations done on it. A linked list is like a train when you think about it, such that each element is a block that is chained...