This repository contains toy implementations of various things for personal interest. I would not recommend using anything here for anything important though everything is under the MIT license.
Incomplete table with descriptions:
| File | Description |
|---|---|
| bit-manipulation.c | Fun with bits in C. Implemented unsigned long printing with base 2 and insertion of N into M's [i,j]th bits. This assumes that N fits within those bits. |
| bloom.cc | Basic bloom filter implementation in C++ |
| bloom.go | Basic bloom filter implementation in Go |
| bst.go | Basic binary search tree implementation in Go |
| cache.go | LRU Cache implementation in Go (hashtable and doubly linked lists) |
| chatbox.go | Simple chatbox |
| data-structs.c | Implementation of a stack and hashtable in C |
| data-structs.cc | Implementation of a stack and hashtable in C++ |
| hamming_distance.go | Hamming distance computation |
| huffman.go | Basic Huffman Coding |
| inverted_index.cc | An interactive program to query for files that contain certain text (exact string matches) |
| malloc.go | A malloc implementation (maybe?) in Go. Please don't use this. |
| radix_tree.go | A radix tree implementation in Go |
| self-repl.py | A self-replicating python script |
| self-repl.c | A C program which will generate a self-replicating C program. The generated C program is identical to the original except for whitespace differences and the way the string is constructed. |
| self-repl-mem.c | Identical to self-repl.c except this contains a memory indicating which "generation" the current copy of the program is from. The initial value is -1 so that the first "truly replicating" program starts from 0 (ie. self-repl-mem.c is the parent of the 0th generation of self-replicating programs). |
| switch-card-game.go | Simulate (badly) the game where under one card is a prize, and the player is allowed to make a choice, then an incorrect card is removed, and the player is allowed to switch. |
| quicksort.c | Quicksort implementation |