Data structures and algorithm component of the Holberton school "Low-Level and Algorithms" specialization curriculum.
- Ubuntu 14.04 LTS
- gcc 4.8.4
- flags
-Wall -Werror -Wextra -pedantic
Introduction to Red-Black Trees: how they differ from other types of Binary Trees, and how to implement tree validation and node insertion/deletion based on their properties.
Introduction to Graph Theory: what are vertices and edges, different types of graphs (directed, weighted, etc.), the most common ways of representing graphs in C, and DFS versus BFS traversal.
A review of Min/Max Binary Heaps, plus an introduction to priority queues, Huffman Trees, and Huffman Coding, in service of building a file compression application.
Introduction to Pathfinding: its most common applications, backtracking as a class of solutions and how it can be less desireable in graph traversal, Dijkstra’s algorithm and its main weakness, finally the A* algorithm, and its improvements over Dijkstra’s.
Introduction to N-ary trees as an extension of previous Binary Tree concepts: node insertion, tree deletion and traversal, measuring the diameter of a tree, and pathfinding from the root node.
- Samuel Pomeroy - allelomorph