DataStructures/REDBLACKTREE.CPP at main · WW92030-STORAGE/DataStructures

Data Structures in Java and C++. Contribute to WW92030-STORAGE/DataStructures development by creating an account on GitHub.

GitHub
Started reading the #clrs book. My first formal introduction to #algorithms and #datastructures!

\(\textit{Purely Functional Data Structures}\) (1999) by Chris #Okasaki is a 💎.

All popular algorithms and data structures textbooks, including my favourite, the venerable #CLRS, are decidedly #imperative. The more a book leans toward the practical, the more blatantly imperative it gets.

But #Okasaki's book, the only one of its kind that I'm aware, is markedly different. It's functional—purely #functional. It's written in #StandardML, my favourite #programming language. It also includes #Haskell implementations in the appendix. The writing style is typical #CS—clear, concise, cogent.

I never got to teach from it, since it came out well after I escaped academia. But I heartily recommend serious CS students to study it, especially those with an unhealthy FP obsession. Experienced #FP programmers should read it, too. And FP novices must read it.

https://www.amazon.com/Purely-Functional-Data-Structures-Okasaki/dp/0521663504/ref=sr_1_1?crid=3ENNO0AYGXFGO&keywords=purely+functional+data+structures&qid=1691546864&sprefix=purely+functional+%2Caps%2C184&sr=8-1&ufe=app_do%3Aamzn1.fos.18ed3cb5-28d5-4975-8bc7-93deae8f9840

Amazon.com

I just published on GitHub the #Jupyter #notebook #Python implementations and commentaries of several #algorithms from #CLRS (4ed, 2022, https://rb.gy/mt0ak).

The purpose of this project is to show undergraduate #CS students and #IT practitioners how to derive \(\textit{code}\) from the English algorithmic descriptions given in CLRS and how to \(\textit{test}\) the code using the theorems, lemmas, and other mathematical properties proven in CLRS.

This is an ongoing endeavour. In the initial publication, it includes the elementary graph algorithms. I will be adding more algorithms from the textbook, in due course.

To read the rendered Jupyter notebooks in the browser, just click on the \(\texttt{.ipynb}\) files in the repository, or type in the repository URL into https://MyBinder.org. The README shows how to use JupyterLab Desktop to interact with the live notebooks locally on the user's computer.

https://github.com/amenzwa/clrs