Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
This project is using the Catalogue of Life dataset, with over 2.3 million species. The main data structure is built on a graph that is bidirectional, and calculates its own depth. The main goal is to find the relatedness between two different species, output the path between them, and compare BFS and DFS when searching for a common ancestor. Usage: Clone or pull to make sure the tsv are installed properly, otherwise download here: https://drive.google.com/drive/folders/1EoXUhYoT98MNpYTP3l9lG752HALaDImx?usp=sharing g++ main.cpp Taxon.cpp Load.cpp -o relation run relation.exe Wait for the program to load the datasets and depth. Input species 1 and species 2 or common names. (Due to graph structure, names are case sensitive and the dataset has a mix of both). It should return the relatedness percentage, the path, and the common ancestor.. Name validations should work for the most part. Creating the graph is O(n), n entries from the dataset. Computing the depth for each vertice is O(n). Finding the common ancestor is O(h), h is the depth of the graph. DFS should be slightly faster than BFS for farther relations, but both should be O(h). Other functions should be O(1). Documentation for the dataset: https://www.checklistbank.org/about/formats#data-content https://catalogueoflife.github.io/coldp/ Documentation for search implementation (basically the same as BST, but in graph format): https://www.geeksforgeeks.org/dsa/graph-data-structure-and-algorithms/ https://www.geeksforgeeks.org/dsa/breadth-first-search-or-bfs-for-a-graph/ https://www.geeksforgeeks.org/dsa/depth-first-search-or-dfs-for-a-graph/ TO-DO: - Autofill names, fix case sensitivity. - Preferably you would type in the name on the web, and then there would be a drop down list of matching names. - Implement web app - and all the functions for it - Debug everything Download the ZIP and compile. * I am using VSCode and Windows, I am not sure if it works on CLion or Linux.