This repository consists of 6 seperate projects all using a linked list adt that can store data in unique ways. The first 5 folders consist of projects assigned to me in my cse101 class, the last one, and other's I may add in the future are mine that I created to have a better understanding of computer science algorithms.
All programmed in C
ListADT -> Lex & List: sorts strings alphatetically using linked list adt
MatrixADT -> Sparse Matrix Calculator: A complete ADT constructed of an array of linked lists that can be manipulated as a 2-D matrix, but with much higher efficiency.
BigIntegerADT -> Big Integer Calculatory : An ADT using List.c to handle big integer operations in the form of thousands of digits in less than a few seconds.
BFS -> Graph ADT & BFS : A graph ADT with a Breadth first search function, and ability to return the path between any two nodes.
DFS -> Graph ADT & DFS: Using depth first search, this project can find each connected component, the distance between every node and handle arcs
Dijkstra -> I learned about Dijkstra's algorithm in class, but I didn't know exactly how to implement it. So Christmas break I spent a day modifying my List.c to handle weighted edges (as an extra parameter and couple functions) and then I implemented Dijkstra's algorithm in the Graph.c file. This worked out to be much easier than expected. Does not work in conjunction with other files because Lish.h and List.c were modified to handle the weighted edges.