{"id":33002990,"url":"https://github.com/ZigRazor/CXXGraph","last_synced_at":"2025-11-15T11:01:26.061Z","repository":{"id":38086435,"uuid":"273547783","full_name":"ZigRazor/CXXGraph","owner":"ZigRazor","description":"Header-Only C++ Library for Graph Representation and Algorithms","archived":false,"fork":false,"pushed_at":"2025-10-31T08:06:54.000Z","size":75308,"stargazers_count":650,"open_issues_count":49,"forks_count":138,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-10-31T10:10:16.869Z","etag":null,"topics":["algorithm","algorithms","bfs-algorithm","cpp","cpp-library","cpp17","cycle-detection","dfs-algorithm","dijkstra-algorithm","graph","graph-algorithms","graph-analysis","graph-theory-algorithms","hacktoberfest","hacktoberfest-accepted","header-only","machine-learning","partitioning","partitioning-algorithms","search-algorithm"],"latest_commit_sha":null,"homepage":"https://zigrazor.github.io/CXXGraph/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZigRazor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION","codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-06-19T17:11:45.000Z","updated_at":"2025-10-31T08:06:58.000Z","dependencies_parsed_at":"2023-10-03T16:25:15.321Z","dependency_job_id":"1c91bbff-0ed9-4510-838b-76f58587af96","html_url":"https://github.com/ZigRazor/CXXGraph","commit_stats":{"total_commits":486,"total_committers":47,"mean_commits":"10.340425531914894","dds":"0.33127572016460904","last_synced_commit":"33dff884e9cd10bb73cf31ddeb3d9f32f4435412"},"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/ZigRazor/CXXGraph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZigRazor%2FCXXGraph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZigRazor%2FCXXGraph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZigRazor%2FCXXGraph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZigRazor%2FCXXGraph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZigRazor","download_url":"https://codeload.github.com/ZigRazor/CXXGraph/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZigRazor%2FCXXGraph/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284545264,"owners_count":27023524,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-15T02:00:06.050Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithm","algorithms","bfs-algorithm","cpp","cpp-library","cpp17","cycle-detection","dfs-algorithm","dijkstra-algorithm","graph","graph-algorithms","graph-analysis","graph-theory-algorithms","hacktoberfest","hacktoberfest-accepted","header-only","machine-learning","partitioning","partitioning-algorithms","search-algorithm"],"created_at":"2025-11-13T14:00:38.905Z","updated_at":"2025-11-15T11:01:26.031Z","avatar_url":"https://github.com/ZigRazor.png","language":"C++","readme":"\u003cimg style=\"float: right;\" align=\"left\" src=\"https://raw.github.com/ZigRazor/CXXGraph/master/logos/CXXBanner.png\"\u003e\n\n# CXXGraph\n\n\u003cimg src=\"https://img.shields.io/badge/c++%20-%2300599C.svg?\u0026style=for-the-badge\u0026logo=c%2B%2B\u0026ogoColor=white\"/\u003e \u003cimg src=\"https://img.shields.io/badge/github%20-%23121011.svg?\u0026style=for-the-badge\u0026logo=github\u0026logoColor=white\"/\u003e\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5878831.svg)](https://doi.org/10.5281/zenodo.5878831)\n\n[![DOI](https://img.shields.io/badge/doi-10.6084/m9.figshare.18705572-blue.svg?style=flat\u0026labelColor=gainsboro\u0026logoWidth=40\u0026logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAFAAAAAZCAYAAACmRqkJAAAKi0lEQVR4Ae3ZaVBUV97H8evuE0EfH32MmkcfoyAuGjXKgkvMaFRAFuiloemWvRuEXlgEBREXBYJiXAQUFeKocUniQiKogAJhQWwWENDEjLNYvjFLzUzNkplEZb5kTme6nCRjKlOpSZlb9SmL2%2Ffcuv3re87%2FnKP0TYfOcslqPMbt63xBKuh09MTxgi7HKT1Sj1TvKp%2BMkZB6%2FXT8c4AjUYPyVdfb7Qs6HTIJ8EHe7Ul%2B152CphDabRQ0uMr7%2FRQgh%2B8qU6%2FBiPDVGv0jq0uGE94b0ZZ3j%2B25MTetoMsh%2FWD91OBqT9%2Fsehd5EqGV17nKMzTqOHvaRMMLEp7qACfinq%2FW1BBx5ZxB13x5X3Jr1v%2Fz9pUcaHU63PiicjrhvXfNRbY1Th49Q6Y1vu6zyqSjzX3aVIgf4OkKToxhgxpd5OMzV0bYE4CRN1Chu34pnTfwnV03FiTlfzDRXBHo6dfgIq8sX6ByV6vjthGc0UdrrPPVGFQBxlSjzJQWENVUZkebceiLpyM8IZSx7O7Zl4JivUNMZX5h8Rt4%2B2L0llKfgu6JKa%2BXvpB5bZ48%2Ba3F6lil2pDkE2rODzCsU0VUnNFHNZQqdS3lx3Utl%2FMILQcfYt5TEeC1GSprgAq0XlgYGLQyxJTlr0uK0DVX7E5s2ZtOgHvLw5fLK9xVmcqguEj%2F2LXbwsvPBkZZKl4j5NcIKinaUsLbejFWZ7m8Do2cmwnb4cFqArRwx3TEYzi%2Bz7DTD0uhxnj8cAEWWUZK%2BTcdhh4pmTWUsW01Y1uCUmNY7Rtqzo5svJSS0poVXtg6yVj7sn9qunek3j8xPVXXeMFoaDkev6lDF7ene7Y5r2taNAXmEBXaP69zevaOjuUeeZ0zhzJuPsM5CdYvOhZVqBMhBqIVDt8zwGdQjR4of9AA%2BXJjUFpww7GodnHAQca4srDAWCXjW3pETal%2BbfumuOLKqSm17vIQtWr1Uu3JYy6JbXuXFbRN1R8pm5byxtG5CcdOz9EUVc7I5IeQEWQ7wWVwzwrsRn%2BbAFeiCxNsKv5Y9P03BFgjAlT90AGOQy2T47fObl00ocFZHl%2B2UGXw0RjzNUWHTPFthckHWh18al8KsGuaFigVVzlKuY%2BG9z37qvuoGlelpsJVldrgrFjbOE%2BeWe8uW18W84qCqc4s7tmCIgzI75hs%2FaJKNFu7rF%2BIIIhr%2BmIQ%2Btn8LQkDMQOeWAYnDHgsQI3NNU7W9j4h5t72o%2FEyvLEQ%2F%2Bu7ymzbOxbCAeOxAgtghz6YgOVYiufEOUlqu0M37ho%2BYn%2FnpJT8bsejVSt90uqdFdlGmV7hF7cuWXetNCShLX%2BI3nKhN%2ByvCs%2Bs6GQpWB33fzKNQR%2BqWr022yvc94q7spBCY%2Bbzkou6ZfJNPf89ZN%2FdidYHnIsKfIzjCMIc7MAwSJiMPFxGMcKQixGwx07R%2FiEe4CNsxFCbAJvwifj8LkIgYRHa8Lm47jNY8AokmMS5NryPh%2FijOB%2BOX4h7foEuyPHlisMtylJpzu1YspkQ36YbLqnx8F1X4abaqmYs9DGmLlrk4CE9XlHlKZskxfpt%2FUJLzyhV23dG%2BITF72fqo9njEaokwIu8lSbG1N4wx273CrP%2B%2BjniQVZhGrzQjlEioFIRcjDM6MIdjBVtHogvl4W9qIX8sTfwU5SgU%2FzdhdGYLcJ9BzvRID6vgx2SxN8PUI9KnIEWH4n7FuIo%2FoRfYV5vMMV4wHRFs%2BvG%2FKl05ZrDVdP11T7eulK3oNQcz%2FAXcj3DpMePjO44KetDL2lDh%2FmV1S3nNoeWnJb7RSXmMJl%2BI0GmH13rKs8lvEdQwfoWKmCxdmGbAEdgAW5jFiQhBb8WXSYTPSjGCBHaMPR5LMANkOCM%2B%2FgD3MS5Z8W1ElzwW3HNJCSI9tcw2ub%2BO8T5LPTBQBy1nusNcB7ztximI1sIsSSzXb04v3vyusJmx63nMufHXlV6LvpEShDd9x%2FHFYWXVPuSX7%2FD7zmpcjuWRupbyvaHnj8Z7BNsUFCArm70iTRcd5bFEN7oxwJs%2FpoA%2FwfBaLJ2Z2EFbmEsNKL7fYYPUI9DIqj%2Fsgkw0CasW%2BL6RbBDFI7gTZSKzz6Gk02AJ23G3QF4xybYU8INce6s5CJNlTyXhYwKv%2FRWMiEeimquzIhrPpGzuSNCsbvLec2%2Brpmh2e0yu%2FxOp96wv6p8X0xeIZW5Bo2%2F6ucdvb%2FdMWVDm8lX11pRpD16OJ6VyZsrQ8yK%2BVFJ9h4UhwEHDj5JgGE23UkSfoZujMMzSESNCPBT9KAFjqi2rcIYZRPgYmzDQ9xDLSz4%2FGsCPIE%2BNkWrTJy%2FhRrRthpVyJJExbnmG2I%2B6x%2BT%2FHxYyQkzQfJGlufpWy6bYlvPUEgu%2BHlHJA5boo7rE3blnBR7r6mv%2BvCBMYEag%2Faqsyr1%2BIk5a%2Fd2z9zGBDpZ31qulCWk9443Hfg5BuJJAgxAG0ZBEmS4DZ7RKIliMVi0d8UvRUCeuPoNAf4Z%2FmgV13pAwiwR3iffFKBQJM5noB%2F6Y5h45v7Wwf0cDtD1DlMIeiugWmZOy5Cv3RgjX7%2FF4GdMXasOjgurmqdafqpojltml9IjvOJ8NMu9lNL5gQmXdMu0BTefz8loMyoJvivs3VMZvhpjqaig%2FZ8gwJGYIsIKRh%2FY4wh%2Bg%2FGQoxYbREgZ%2BB3uww1V3xKgN%2BrwCNtF4Pvx8NveQCEYX%2BAukhCIYuHZLy%2FyDjHbJQfo7PTK1dEBWqPBX2vS%2B2hNW1XquDURypiwXStCjVWuyrSKQC%2FdoUaHtOT2HENoyal4b40x7rK7ylip9NIV3Jy0P6fD24fl3Ra6uoe3PNqOH2Pw3x%2FC8K8CHIU%2BIpQ7OI8yNOJ9TMJO%2FAU9Nn6PjRiGmm%2FpwgsRLQpKjwjuU%2Fz1CQK0R4G4T4%2FwCHWYKlmcA6xr4SA2EzobXeUa9vh21LgpdKxK8hqd5RsaXWS7S9YvlhU2O7ya3ekXrm%2B9lK3KzFH6a4y5V92Ve5hkM4d02EShMestZekE2IxZX7MWdkAgBtmsi9U2lXEwliAOK%2BGLTowThWIZkrEVSSKYgegPOUxwtFmdaBGLsRgg2qeKtosQDh2GYzbisUIEaPvcQ8T5VGzCKowBk2I3mTVALe4wd4tumKcoaZirSKte4RtVrvXwLrw%2BJXV%2F18Ts3BtLEmOaS0yRtRdMfpGJhTKNMbDJWR5V7eEbUNDtcIQAd1PJMwnuJl6E9KQHY7AAHkzQoBkj8B%2B%2FpTWQ4Maezne1P3x1esLBuqmB%2BbccNhJMGetbM%2BGZIi1V%2FoRyOXB77sKVWuPmrd4RBvYQm9ihVue%2F7xDPGljB50MoJmO%2By36gCGsQovCyCGwOarD9R7PLLXZOJjKZvse%2FDQQSvffG7F1rWrZPiLKUX2DPr1hbfHAKb0kDBSeTed5MQj94Pn1xBMvA%2B2IDYTAkcXzXANPRjHq04ACeFeH9aAIcBC3LOq%2FY5pPDeYtO4yRTmzUhbx9LozCEea8ybaHoxDNmVtPltxSVzxhCm3Asg4Tvs683Aa5wwkD8qP9XbgQqUbb6Tp09U5Os3rWiV4jZv2OuvxPdvht70RfST8fjATZd7P33OYzxZ%2FdF7FwcgqPU0yMR2vMYDulpDfBvw%2BGCdBePpq8AAAAASUVORK5CYII%3D)](https://doi.org/10.6084/m9.figshare.18705572.v1)\n\n[![codecov](https://codecov.io/gh/ZigRazor/CXXGraph/branch/master/graph/badge.svg?token=773AQ2H9RQ)](https://codecov.io/gh/ZigRazor/CXXGraph)\n[![CodeFactor](https://www.codefactor.io/repository/github/zigrazor/cxxgraph/badge)](https://www.codefactor.io/repository/github/zigrazor/cxxgraph)\n\n[![GitHub license](https://img.shields.io/github/license/ZigRazor/CXXGraph.svg)](https://github.com/ZigRazor/CXXGraph/blob/master/LICENSE) [![GitHub release](https://img.shields.io/github/release/ZigRazor/CXXGraph.svg)](https://GitHub.com/ZigRazor/CXXGraph/releases/) [![Conan Center](https://img.shields.io/conan/v/cxxgraph)](https://conan.io/center/recipes/cxxgraph)\n\n[![Generic badge](https://img.shields.io/badge/Required-G++7.3.0-Green.svg)](https://shields.io/) [![Generic badge](https://img.shields.io/badge/required-C++17-Green.svg)](https://shields.io/) [![Generic badge](https://img.shields.io/badge/Required-CMake3.9-Green.svg)](https://shields.io/)\n\n[![Generic badge](https://img.shields.io/badge/Build-Passed-Green.svg)](https://shields.io/) [![Generic badge](https://img.shields.io/badge/UnitTest-Passed-Green.svg)](https://shields.io/)\n\n## Introduction\n\n**CXXGraph** is a comprehensive C++ library that manages graph algorithms. This header-only library serves as an alternative to the [Boost Graph Library (BGL)](https://www.boost.org/doc/libs/1_77_0/libs/graph/doc/index.html).\n\n[CXXGraph Website](https://zigrazor.github.io/CXXGraph/)\n\n## We are Looking for\n\n**We are looking for:**\n\n- **A Web Developer** for the development of the CXXGraph website. All documentation is currently hosted on this GitHub page.\n- **Developers and Contributors** to provide input. If you are new to the open-source world, we will guide you step by step!\n\nIf you are interested, please contact us at \u003czigrazor@gmail.com\u003e or contribute to this project. We are waiting for you!\n\n## Table of Contents\n\n- [CXXGraph](#cxxgraph)\n  - [Introduction](#introduction)\n  - [We are Looking for...](#we-are-looking-for)\n  - [Table of Contents](#table-of-contents)\n  - [Install and Uninstall](#install-and-uninstall)\n    - [Install Linux Tarballs](#install-linux-tarballs)\n    - [Install RPM](#install-rpm)\n    - [Install DEB](#install-deb)\n    - [Install From Source](#install-from-source)\n  - [Requirements](#requirements)\n  - [How to use](#how-to-use)\n  - [Examples](#examples)\n  - [Unit-Test Execution](#unit-test-execution)\n    - [Google Test Installation](#google-test-installation)\n    - [How to Compile Test](#how-to-compile-test)\n    - [How to Run Test](#how-to-run-test)\n  - [Benchmark Execution](#benchmark-execution)\n    - [Google Benchmark Installation](#google-benchmark-installation)\n    - [How to Compile Benchmark](#how-to-compile-benchmark)\n    - [How to Run Benchmark](#how-to-run-benchmark)\n    - [Benchmark Results](#benchmark-results)\n  - [Packaging](#packaging)\n    - [Tarballs](#tarballs)\n    - [RPM](#rpm)\n      - [(Fedora/CentOS/RedHat)](#fedoracentosredhat)\n    - [DEB](#deb)\n      - [(Debian/Ubuntu)](#debianubuntu)\n  - [Algorithms, Classes and Network Dynamics](#algorithms-classes-and-network-dynamics)\n  - [How to contribute](#how-to-contribute)\n  - [Roadmap](#roadmap)\n  - [Contact](#contact)\n  - [Support](#support)\n  - [References](#references)\n  - [Credits](#credits)\n  - [Contributors](#contributors)\n  - [Cite Us](#cite-us)\n  - [Other Details](#other-details)\n  - [Author](#author)\n\n## Install and Uninstall\n\n### Install Linux Tarballs\n\nTo install on Unix/Linux systems, execute the following from the command line:\n\n`$ sudo tar xjf CXXGraph-{version}.tar.bz2`\n\nTo uninstall:\n\n`$ sudo rm -f /usr/include/Graph.hpp /usr/include/CXXGraph*`\n\n### Install RPM\n\nTo install on Fedora/CentOS/RedHat systems, execute the following from the command line:\n\n`$ sudo rpm -ivh CXXGraph-{version}.noarch.rpm`\n\nTo uninstall:\n\n`$ sudo rpm -e CXXGraph-{version}`\n\n### Install DEB\n\nTo install on Debian/Ubuntu systems, execute the following from the command line:\n\n`$ sudo dpkg -i CXXGraph_{version}.deb`\n\nTo uninstall:\n\n`$ sudo apt-get remove CXXGraph`\n\n### Install From Source\n\nFor self-compiled installations using CMake, execute the following from the command line once compilation is complete:\n\n`$ sudo make install`\n\n## Prerequisites\n\n- The minimum C++ standard required is **C++17**\n- A GCC compiler version 7.3.0 and later *OR* a MSVC compiler that supports C++17\n\n## How to use\n\nTo use the library **simply include the header file `CXXGraph.hpp`**, (make sure to add the [include folder](https://github.com/ZigRazor/CXXGraph/tree/master/include) to your compiler's inlcude path).\n\nCXXGraph revolves around the graph object which contains nodes and edges. This object can then be manipulated with a wide variety of algorithms. Please see the [examples section](#examples), [examples folder](https://github.com/ZigRazor/CXXGraph/tree/master/examples) and [website](https://zigrazor.github.io/CXXGraph/) for more information\n\n## Examples\n\nIn this example, the shortest path between nodeA and nodeC is obtained using Dijkstra's algorithm.\n\n```cpp\n#include \u003ciostream\u003e\n#include \"CXXGraph/CXXGraph.hpp\"\n\nint main(){\n  CXXGraph::Node\u003cint\u003e nodeA(\"A\", 1);\n  CXXGraph::Node\u003cint\u003e nodeB(\"B\", 2);\n  CXXGraph::Node\u003cint\u003e nodeC(\"C\", 3);\n\n  CXXGraph::DirectedWeightedEdge\u003cint\u003e edge1(\"1\", nodeA, nodeB, 1);\n  CXXGraph::DirectedWeightedEdge\u003cint\u003e edge2(\"2\", nodeB, nodeC, 1);\n  CXXGraph::UndirectedWeightedEdge\u003cint\u003e edge3(\"3\", nodeA, nodeC, 6);\n\n  CXXGraph::T_EdgeSet\u003cint\u003e edgeSet;\n  edgeSet.insert(make_shared\u003cCXXGraph::DirectedWeightedEdge\u003cint\u003e\u003e(edge1));\n  edgeSet.insert(make_shared\u003cCXXGraph::DirectedWeightedEdge\u003cint\u003e\u003e(edge2));\n  edgeSet.insert(make_shared\u003cCXXGraph::UndirectedWeightedEdge\u003cint\u003e\u003e(edge3));\n\n  CXXGraph::Graph\u003cint\u003e graph(edgeSet);\n  CXXGraph::DijkstraResult res = graph.dijkstra(nodeA, nodeC);\n\n  for(auto node_user_id : res.path){\n    std::cout \u003c\u003c node_user_id \u003c\u003c '\\n';\n  }\n}\n```\n\nSee more examples in the [examples folder](https://github.com/ZigRazor/CXXGraph/tree/master/examples).\n\n## Unit-Test Execution\n\nThe Unit-Test requires CMake 3.9 and later, and the **[GoogleTest](https://github.com/google/googletest)**  library.\n\n### Install GoogleTest\n\n[GoogleTest](https://github.com/google/googletest)\n\n```bash\ngit clone https://github.com/google/googletest.git\ncd googletest        # Main directory of the cloned repository\nmkdir -p build       # Create a directory to hold the build output\ncd build\ncmake ..             # Generate native build scripts for GoogleTest\nmake                 # Compile\nsudo make install    # Install in /usr/local/ by default\n```\n\n### How to Compile GoogleTest\n\nFrom the base directory:\n\n```bash\nmkdir -p build       # Create a directory to hold the build output\ncd build             # Enter the build folder\ncmake -DTEST=ON ..   # Generate native build scripts for GoogleTest,\nmake                 # Compile\n```\n\n### How to Run GoogleTest\n\nAfter the build has compiled, run the \"test_exe\" executable in the \"build\" directory with the following command:\n\n`./test_exe`\n\n## Benchmark Execution\n\nThe Benchmark requires CMake 3.9 and later, the **GoogleTest** library, and the **Google Benchmark** library.\n\n### Install Google Benchmark\n\n[Google Benchmark](https://github.com/google/benchmark)\n\n```bash\n# Check out the library\n$ git clone https://github.com/google/benchmark.git\n# Google Benchmark requires GoogleTest as a dependency. Add the source tree as a subdirectory\n$ git clone https://github.com/google/googletest.git benchmark/googletest\n# Go to the library's root directory\n$ cd benchmark\n# Make a build directory to place the build output\n$ cmake -E make_directory \"build\"\n# Generate the build system files with CMake\n$ cmake -E chdir \"build\" cmake -DCMAKE_BUILD_TYPE=Release ../\n# If starting with CMake 3.13, you can use the following:\n# cmake -DCMAKE_BUILD_TYPE=Release -S . -B \"build\"\n# Build the library\n$ cmake --build \"build\" --config Release\n# Install the library\n$ sudo cmake --build \"build\" --config Release --target install\n```\n\n### How to Compile Google Benchmark\n\nFrom the base directory:\n\n```bash\nmkdir -p build             # Create a directory to hold the build output\ncd build                   # Enter the build folder\ncmake -DBENCHMARK=ON ..    # Generate native build scripts for Google Benchmark\nmake                       # Compile\n```\n\n### How to Run Google Benchmark\n\nAfter the build has compiled, run the \"benchmark\" executable in the \"build\" directory with the following command:\n\n`./benchmark`\n\n### Benchmark Results\n\nYou can check the benchmark result using this [link](https://zigrazor.github.io/CXXGraph/dev/bench/).\n\n## Packaging\n\n### Tarballs\n\nTo create a tarball package, execute the following from the command line:\n\n```bash\n# Enter Packaging Directory\n$ cd packaging\n# Execute the script to generate tarballs\n$ ./tarballs.sh\n```\n\n### RPM\n\n#### (Fedora/CentOS/RedHat)\n\nTo create an RPM package, execute the following from the command line:\n\n```bash\n# Enter Packaging Directory\n$ cd packaging/rpm\n# Execute the script to generate tarballs\n$ ./make_rpm.sh\n```\n\n### DEB\n\n#### (Debian/Ubuntu)\n\nTo create a deb package, execute the following from the command line:\n\n```bash\n# Enter Packaging Directory\n$ cd packaging/deb\n# Execute the script to generate tarballs\n$ ./make_deb.sh\n```\n\n## Algorithms, Classes and Network Dynamics\n\nBoth the [Doxygen documentation](https://rawcdn.githack.com/ZigRazor/CXXGraph/master/docs/html/index.html) and the [website](https://zigrazor.github.io/CXXGraph/) provide implementation and explanation information on the [classes](https://rawcdn.githack.com/ZigRazor/CXXGraph/master/docs/html/classes.html) and [algorithms](https://zigrazor.github.io/CXXGraph/component-explanation/regular-algorithm) of CXXGraph.\n\n#### Classes\n\nThe Classes Explanation can be found in the [classes section](https://rawcdn.githack.com/ZigRazor/CXXGraph/master/docs/html/classes.html) of the [Doxygen documentation](https://rawcdn.githack.com/ZigRazor/CXXGraph/master/docs/html/index.html).\n\n#### Network Dynamics\n\nMore information can be found [here](https://zigrazor.github.io/CXXGraph/component-explanation/network-dynamics).\n\n- Adjacency Matrix\n- Degree Matrix\n- Laplacian Matrix\n- Transition Matrix\n\n### Algorithms\n\nThe following is a list of all the implemented algorithms, more information on the algorithms can be found [here](https://zigrazor.github.io/CXXGraph/component-explanation/regular-algorithm).\n\n#### Graph Traversal Algorithms\n\n- Breadth First Search (BFS)\n- Depth First Search (DFS)\n- Best First Search (a heuristic-based traversal)\n- Bron–Kerbosch Algorithm (for finding maximal cliques; DFS-based)\n\n#### Shortest Path Algorithms\n\n- Dijkstra's Algorithm (single-source shortest path, non-negative weights)\n- Bellman-Ford Algorithm (handles negative weights)\n- Floyd–Warshall Algorithm (all-pairs shortest path)\n- Dial's Algorithm (optimized Dijkstra for small integer weights)\n\n#### Minimum Spanning Tree Algorithms\n\n- Prim's Algorithm\n- Kruskal's Algorithm\n- Borůvka's Algorithm\n\n#### Network Flow Algorithms\n\n- Ford–Fulkerson Algorithm (maximum flow)\n- Hopcroft–Karp Algorithm (maximum bipartite matching)\n\n#### Connectivity and Component Detection\n\n- Kosaraju's Algorithm (strongly connected components in directed graphs)\n- Tarjan's Algorithm (strongly connected components or articulation points)\n- Connectivity (general graph connectivity checking)\n- Cycle Detection\n\n#### Topological \u0026 Dependency Sorting\n\n- Topological Sort\n- Kahn’s Algorithm (BFS-based topological sorting)\n- Tarjan’s Algorithm (DFS-based topological sorting)\n\n#### Eulerian Path/Cycle Detection\n\n- Hierholzer's Algorithm\n\n#### Graph Transformation\n\n- Transitive Reduction (reduce graph to essential edges while preserving reachability)\n\n#### Graph Coloring Algorithms\n\n- Welsh–Powell Coloring Algorithm\n\n#### Partition Algorithms\n\n- Vertex-Cut\n- Edge Balanced Vertex-Cut\n- Edge Balanced Vertex-Cut based on this [paper](https://arxiv.org/abs/2010.09007)\n- Greedy Vertex-Cut\n- High Degree Replicated First\n\n## How to contribute\n\n[![GitHub contributors](https://img.shields.io/github/contributors/ZigRazor/CXXGraph.svg)](https://GitHub.com/ZigRazor/CXXGraph/graphs/contributors/)\nIf you want to give your support you can create a ***pull request***   [![GitHub pull-requests](https://img.shields.io/github/issues-pr/ZigRazor/CXXGraph.svg)](https://GitHub.com/ZigRazor/CXXGraph/pull/) or report an ***issue***  [![GitHub issues](https://img.shields.io/github/issues/ZigRazor/CXXGraph.svg)](https://GitHub.com/ZigRazor/CXXGraph/issues/).\nIf you want to change the code, fix an issue, or implement a new feature please read our [CONTRIBUTING Guide](https://github.com/ZigRazor/CXXGraph/blob/master/CONTRIBUTING.md).\n\nIf you want to discuss new features or you have any questions or suggestions about the library, please open a [Discussion](https://github.com/ZigRazor/CXXGraph/discussions) or simply chat on [![Join the chat at https://gitter.im/CXXGraph-Community/community](https://badges.gitter.im/CXXGraph-Community/community.svg)](https://gitter.im/CXXGraph-Community/community?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n## Roadmap\n\n| Completed | Description | Date of Completition |\n| :-------: | :---------- | :-------------------: |\n| :heavy_check_mark: | Release 0.4.0 | Oct 7, 2022 |\n| :heavy_check_mark: | Release 0.5.0 | Mar 23, 2023 |\n| :heavy_check_mark: | First Stable Release 1.0.0 | Mar 28, 2023 |\n| :heavy_check_mark: | Release 1.0.1 | May 7, 2023 |\n| :heavy_check_mark: | Release 1.1.0 | May 8, 2023 |\n| :heavy_check_mark: | Stable Release 2.0.0 | Jun 1, 2023 |\n| :heavy_check_mark: | Stable Release 3.0.0 | Nov 3, 2023 |\n| :heavy_check_mark: | Release 3.1.0 | Jan 9, 2023 |\n| :memo: | Introduce Hypergraph [#122](https://github.com/ZigRazor/CXXGraph/issues/122) | TBD |\n| :memo: | Stable Release 4.0.0 | TBD |\n\n## Stars History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=ZigRazor/CXXGraph\u0026type=Date)](https://star-history.com/#ZigRazor/CXXGraph\u0026Date)\n\n## Contact\n\nE-mail : \u003czigrazor@gmail.com\u003e\n\n[![Join the chat at https://gitter.im/CXXGraph-Community/community](https://badges.gitter.im/CXXGraph-Community/community.svg)](https://gitter.im/CXXGraph-Community/community?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n[GitHub Profile](https://github.com/ZigRazor) ![Profile views](https://gpvc.arturio.dev/ZigRazor)\n\n![ZigRazor's github stats](https://github-readme-stats.vercel.app/api?username=ZigRazor\u0026show_icons=true\u0026title_color=fff\u0026icon_color=79ff97\u0026text_color=9f9f9f\u0026bg_color=151515)\n\n## Support\n\nTo support me, add a ***Star*** to the project  [![GitHub stars](https://img.shields.io/github/stars/ZigRazor/CXXGraph.svg?style=social\u0026label=Star\u0026maxAge=2592000)](https://GitHub.com/ZigRazor/CXXGraph/stargazers/) or ***follow me***  [![GitHub followers](https://img.shields.io/github/followers/ZigRazor.svg?style=social\u0026label=Follow\u0026maxAge=2592000)](https://github.com/ZigRazor?tab=followers)\n\nTo stay updated, ***watch*** the project  [![GitHub watchers](https://img.shields.io/github/watchers/ZigRazor/CXXGraph.svg?style=social\u0026label=Watch\u0026maxAge=2592000)](https://GitHub.com/ZigRazor/CXXGraph/watchers/)\n\n## References\n\nWe are referenced by:\n\n- [awesome-hpp](https://github.com/p-ranav/awesome-hpp)\n- [cppreference.com](https://en.cppreference.com/w/cpp/links/libs)\n- [awesome-cpp](https://github.com/fffaraz/awesome-cpp)\n\n## Credits\n\nThanks to the community of [TheAlgorithms](https://github.com/TheAlgorithms) for some algorithm inspiration.\n\nThanks to [GeeksForGeeks](https://www.geeksforgeeks.org/) for some algorithm inspiration.\n\n## Contributors\n\nThank you to all the people who have already contributed to CXXGraph!\n\n[![Contributors](https://contrib.rocks/image?repo=zigrazor/CXXGraph)](https://github.com/ZigRazor/CXXGraph/graphs/contributors)\n\n## Cited By\n\n- Ruizhe Wang, Meng Xu, and N. Asokan. 2024. SeMalloc: Semantics-Informed Memory Allocator. In Proceedings of the 2024 on ACM SIGSAC Conference on Computer and Communications Security (CCS '24). Association for Computing Machinery, New York, NY, USA, 1375–1389. \u003chttps://doi.org/10.1145/3658644.3670363\u003e\n\n## Cite Us\n\nIf you use this software please follow the [CITATION](https://github.com/ZigRazor/CXXGraph/blob/master/CITATION) instructions.\nThank you!\n\n## Other Details\n\nWe participated in Hacktoberfest 2021, 2022 and 2023. Thank you to all the contributors!\n\nView the [Estimated Value of the Project](https://www.openhub.net/p/CXXGraph/estimated_cost)\n\n## Author\n\n| [\u003cimg src=\"https://avatars0.githubusercontent.com/u/6591180?s=460\u0026v=4\" width=\"100\"\u003e\u003cbr\u003e\u003csub\u003e@ZigRazor\u003c/sub\u003e](https://github.com/ZigRazor) |\n|:----:|\n","funding_links":[],"categories":["Graph","Math"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FZigRazor%2FCXXGraph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FZigRazor%2FCXXGraph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FZigRazor%2FCXXGraph/lists"}