Being a good software engineer not only needs to know what tools (e.g., data structures and algorithms) are available but also understand how to choose the right tools. In addition, a good…
Build the Forest in Python Series: AVL Tree
After the Red-Black Tree discussion, this article will implement another variant of the self-balancing binary search tree: the AVL Tree. Project Setup Follow the same style and assumption as other articles in…
Build the Forest in Python Series: Red-Black Tree
[Updated: December 31, 2021] From the Binary Search Tree: Analysis, we know the tree height is the critical factor of binary search tree’s performance. This article and the following article will implement…
Build the Forest in Python Series: Double-Threaded Binary Search Tree
[Updated: July 3, 2021] Continue the discussion of Threaded Binary Trees; the article will implement Double Threaded Binary Search Tree, which combines the left and right single-threaded binary trees and has both…
Build the Forest in Python Series: Single-Threaded Binary Search Trees
[Updated: December 31, 2021] The article is the third one of the Build the Forest Series. In the previous article, Binary Tree Traversal, we talked about the binary tree traversals using the…
Build the Forest in Python Series: Binary Tree Traversal
[Updated: July 3, 2021] The article is the second one of the Build the Forest Series. In this article, we are not going to build a tree. Instead, we will implement the…
Build the Forest in Python Series: Binary Search Tree
Building software projects is hard, and it also requires broad knowledge such as writing code, understanding algorithms, set up environments, testing, and deployment. Besides, each language has its ways of implementing things,…
My C++ Coding Style and Principles
[Assume C++ 17 or newer] This article is my C++ version of My Python Coding Style and Principles. A coding guideline is a bare minimum for keeping the software developing under certain…
Setting Up VS Code for Scala Development on WSL
Visual Studio Code (VS Code) has been my favorite editor for years. With the numerous extensions and community support, VS Code has become one of the most popular editors for programming. Windows…
Using Git Submodule and Develop Mode to Manage Python Projects
[Updated: December 27, 2020] As a software engineer, it is not uncommon that we work on a project that has a dependency on the other project that we also work on at…