Data Structures and Algorithms

Custom C Library for data-structures and algorithms

VersionCommit ActivityGitHub IssuesTestsCoverageDiscord

Overview

  • Data Structures is a minimal object generator that is written and run in C language.

Included Data-Structures & Utility Functions =>

Click on the links below to know details about them.

Dependency Diagram =>

Image


Installation

Please install git, (wget or curl) through official package managers of your operating system; then run the following in your favorite terminal.

wget -O- "https://raw.githubusercontent.com/TheScienceUniverse/DSA/refs/heads/master/install.sh"| sh

or

curl "https://raw.githubusercontent.com/TheScienceUniverse/DSA/refs/heads/master/install.sh"| sh

Please note,

  • the contents will be copied in 'DSA' directory
  • there will be 4 more extra folder created in your project directory, 'inc' (location of interfaces), 'lib' (location for libraries) and 'log' (memory usage logging).
  • you may delete the 'DSA' folder from your project if not required any longer
  • you must exclude 'DSA' folder in '.gitignore' file from version control system to reduce extra overhead.

Usage

Please note that you need to use the shared object library as per C compilation, linking and execution standards.

Please observe following example and notice the following,

  • 'inc' (include) folder from DSA project having all interfaces (header files) should be present to resolve symbols during compile time, notice you have already kept it in place during installation, just neither delete it nor edit it without understanding the full codebase
  • compiler and linker is gcc
  • outputting all warnings with -Wall
  • providing local library location ($(pwd)/lib) to linker with option -L
  • calling the dynamic shared object library with standard, -ldsa expands to libdsa.so (dynamic shared object) or libdsa.a (static archive) whichever is available in the linker informed location
  • generating executable file with option -o exec
  • giving input files including main.c and other pre-compiled object files (having '.o' extension) required to build full program like just-in-time compilation
gcc -Wall -L$(pwd)/lib -ldsa -o exec [other-object-files...] main.c

Also please note that we could have copied the libray into standard locations like '/lib/', '/usr/lib/' or '/usr/share/lib/'; but for security conflicts we do not want to install it there.

That is why we chose a workaround (environment variable LD_LIBRARY_PATH) that have highest precedence while looking for libraries, even before standard library locations.

Notice that during execution the LD_LIBRARY_PATH need to set with the library location i.e../lib/ without hampering old values of this environment variable. There is no export command, not even doller ($) while setting the value.

LD_LIBRARY_PATH=./lib/:$LD_LIBRARY_PATH ./exec

History

  • Hi, this is the inititiator of this repo. From the college days it was a trial to create a general purpose data-structure and algorithm (DSA) in C programming language.
  • Please try this tool on systems (computer, mobile, embded systems) after installing GCC (GNU Compiler Collections) or Clang compiler; compile and run it natively or in servers.

Credits

πŸ’ Support

If you like this DSA Project and would like to support & appreciate it via donation then I'll gladly accept it.

Ko-FiBuy Me a Coffee

PatreonPaypalBHIM UPIGoogle PayRazor PayStripe

About

🌴 Data Structures and Algorithms in C

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Data Structures and Algorithms

Custom C Library for data-structures and algorithms

VersionCommit ActivityGitHub IssuesTestsCoverageDiscord

Overview

  • Data Structures is a minimal object generator that is written and run in C language.

Included Data-Structures & Utility Functions =>

Click on the links below to know details about them.

Dependency Diagram =>

Image


Installation

Please install git, (wget or curl) through official package managers of your operating system; then run the following in your favorite terminal.

wget -O- "https://raw.githubusercontent.com/TheScienceUniverse/DSA/refs/heads/master/install.sh"| sh

or

curl "https://raw.githubusercontent.com/TheScienceUniverse/DSA/refs/heads/master/install.sh"| sh

Please note,

  • the contents will be copied in 'DSA' directory
  • there will be 4 more extra folder created in your project directory, 'inc' (location of interfaces), 'lib' (location for libraries) and 'log' (memory usage logging).
  • you may delete the 'DSA' folder from your project if not required any longer
  • you must exclude 'DSA' folder in '.gitignore' file from version control system to reduce extra overhead.

Usage

Please note that you need to use the shared object library as per C compilation, linking and execution standards.

Please observe following example and notice the following,

  • 'inc' (include) folder from DSA project having all interfaces (header files) should be present to resolve symbols during compile time, notice you have already kept it in place during installation, just neither delete it nor edit it without understanding the full codebase
  • compiler and linker is gcc
  • outputting all warnings with -Wall
  • providing local library location ($(pwd)/lib) to linker with option -L
  • calling the dynamic shared object library with standard, -ldsa expands to libdsa.so (dynamic shared object) or libdsa.a (static archive) whichever is available in the linker informed location
  • generating executable file with option -o exec
  • giving input files including main.c and other pre-compiled object files (having '.o' extension) required to build full program like just-in-time compilation
gcc -Wall -L$(pwd)/lib -ldsa -o exec [other-object-files...] main.c

Also please note that we could have copied the libray into standard locations like '/lib/', '/usr/lib/' or '/usr/share/lib/'; but for security conflicts we do not want to install it there.

That is why we chose a workaround (environment variable LD_LIBRARY_PATH) that have highest precedence while looking for libraries, even before standard library locations.

Notice that during execution the LD_LIBRARY_PATH need to set with the library location i.e../lib/ without hampering old values of this environment variable. There is no export command, not even doller ($) while setting the value.

LD_LIBRARY_PATH=./lib/:$LD_LIBRARY_PATH ./exec

History

  • Hi, this is the inititiator of this repo. From the college days it was a trial to create a general purpose data-structure and algorithm (DSA) in C programming language.
  • Please try this tool on systems (computer, mobile, embded systems) after installing GCC (GNU Compiler Collections) or Clang compiler; compile and run it natively or in servers.

Credits

πŸ’ Support

If you like this DSA Project and would like to support & appreciate it via donation then I'll gladly accept it.

Ko-FiBuy Me a Coffee

PatreonPaypalBHIM UPIGoogle PayRazor PayStripe

About

🌴 Data Structures and Algorithms in C

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Data Structures and Algorithms

Custom C Library for data-structures and algorithms

VersionCommit ActivityGitHub IssuesTestsCoverageDiscord

Overview

  • Data Structures is a minimal object generator that is written and run in C language.

Included Data-Structures & Utility Functions =>

Click on the links below to know details about them.

Dependency Diagram =>

Image


Installation

Please install git, (wget or curl) through official package managers of your operating system; then run the following in your favorite terminal.

wget -O- "https://raw.githubusercontent.com/TheScienceUniverse/DSA/refs/heads/master/install.sh"| sh

or

curl "https://raw.githubusercontent.com/TheScienceUniverse/DSA/refs/heads/master/install.sh"| sh

Please note,

  • the contents will be copied in 'DSA' directory
  • there will be 4 more extra folder created in your project directory, 'inc' (location of interfaces), 'lib' (location for libraries) and 'log' (memory usage logging).
  • you may delete the 'DSA' folder from your project if not required any longer
  • you must exclude 'DSA' folder in '.gitignore' file from version control system to reduce extra overhead.

Usage

Please note that you need to use the shared object library as per C compilation, linking and execution standards.

Please observe following example and notice the following,

  • 'inc' (include) folder from DSA project having all interfaces (header files) should be present to resolve symbols during compile time, notice you have already kept it in place during installation, just neither delete it nor edit it without understanding the full codebase
  • compiler and linker is gcc
  • outputting all warnings with -Wall
  • providing local library location ($(pwd)/lib) to linker with option -L
  • calling the dynamic shared object library with standard, -ldsa expands to libdsa.so (dynamic shared object) or libdsa.a (static archive) whichever is available in the linker informed location
  • generating executable file with option -o exec
  • giving input files including main.c and other pre-compiled object files (having '.o' extension) required to build full program like just-in-time compilation
gcc -Wall -L$(pwd)/lib -ldsa -o exec [other-object-files...] main.c

Also please note that we could have copied the libray into standard locations like '/lib/', '/usr/lib/' or '/usr/share/lib/'; but for security conflicts we do not want to install it there.

That is why we chose a workaround (environment variable LD_LIBRARY_PATH) that have highest precedence while looking for libraries, even before standard library locations.

Notice that during execution the LD_LIBRARY_PATH need to set with the library location i.e../lib/ without hampering old values of this environment variable. There is no export command, not even doller ($) while setting the value.

LD_LIBRARY_PATH=./lib/:$LD_LIBRARY_PATH ./exec

History

  • Hi, this is the inititiator of this repo. From the college days it was a trial to create a general purpose data-structure and algorithm (DSA) in C programming language.
  • Please try this tool on systems (computer, mobile, embded systems) after installing GCC (GNU Compiler Collections) or Clang compiler; compile and run it natively or in servers.

Credits

πŸ’ Support

If you like this DSA Project and would like to support & appreciate it via donation then I'll gladly accept it.

Ko-FiBuy Me a Coffee

PatreonPaypalBHIM UPIGoogle PayRazor PayStripe

About

🌴 Data Structures and Algorithms in C

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Data Structures and Algorithms

Custom C Library for data-structures and algorithms

VersionCommit ActivityGitHub IssuesTestsCoverageDiscord

Overview

  • Data Structures is a minimal object generator that is written and run in C language.

Included Data-Structures & Utility Functions =>

Click on the links below to know details about them.

Dependency Diagram =>

Image


Installation

Please install git, (wget or curl) through official package managers of your operating system; then run the following in your favorite terminal.

wget -O- "https://raw.githubusercontent.com/TheScienceUniverse/DSA/refs/heads/master/install.sh"| sh

or

curl "https://raw.githubusercontent.com/TheScienceUniverse/DSA/refs/heads/master/install.sh"| sh

Please note,

  • the contents will be copied in 'DSA' directory
  • there will be 4 more extra folder created in your project directory, 'inc' (location of interfaces), 'lib' (location for libraries) and 'log' (memory usage logging).
  • you may delete the 'DSA' folder from your project if not required any longer
  • you must exclude 'DSA' folder in '.gitignore' file from version control system to reduce extra overhead.

Usage

Please note that you need to use the shared object library as per C compilation, linking and execution standards.

Please observe following example and notice the following,

  • 'inc' (include) folder from DSA project having all interfaces (header files) should be present to resolve symbols during compile time, notice you have already kept it in place during installation, just neither delete it nor edit it without understanding the full codebase
  • compiler and linker is gcc
  • outputting all warnings with -Wall
  • providing local library location ($(pwd)/lib) to linker with option -L
  • calling the dynamic shared object library with standard, -ldsa expands to libdsa.so (dynamic shared object) or libdsa.a (static archive) whichever is available in the linker informed location
  • generating executable file with option -o exec
  • giving input files including main.c and other pre-compiled object files (having '.o' extension) required to build full program like just-in-time compilation
gcc -Wall -L$(pwd)/lib -ldsa -o exec [other-object-files...] main.c

Also please note that we could have copied the libray into standard locations like '/lib/', '/usr/lib/' or '/usr/share/lib/'; but for security conflicts we do not want to install it there.

That is why we chose a workaround (environment variable LD_LIBRARY_PATH) that have highest precedence while looking for libraries, even before standard library locations.

Notice that during execution the LD_LIBRARY_PATH need to set with the library location i.e../lib/ without hampering old values of this environment variable. There is no export command, not even doller ($) while setting the value.

LD_LIBRARY_PATH=./lib/:$LD_LIBRARY_PATH ./exec

History

  • Hi, this is the inititiator of this repo. From the college days it was a trial to create a general purpose data-structure and algorithm (DSA) in C programming language.
  • Please try this tool on systems (computer, mobile, embded systems) after installing GCC (GNU Compiler Collections) or Clang compiler; compile and run it natively or in servers.

Credits

πŸ’ Support

If you like this DSA Project and would like to support & appreciate it via donation then I'll gladly accept it.

Ko-FiBuy Me a Coffee

PatreonPaypalBHIM UPIGoogle PayRazor PayStripe

About

🌴 Data Structures and Algorithms in C

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Data Structures and Algorithms

Custom C Library for data-structures and algorithms

VersionCommit ActivityGitHub IssuesTestsCoverageDiscord

Overview

  • Data Structures is a minimal object generator that is written and run in C language.

Included Data-Structures & Utility Functions =>

Click on the links below to know details about them.

Dependency Diagram =>

Image


Installation

Please install git, (wget or curl) through official package managers of your operating system; then run the following in your favorite terminal.

wget -O- "https://raw.githubusercontent.com/TheScienceUniverse/DSA/refs/heads/master/install.sh"| sh

or

curl "https://raw.githubusercontent.com/TheScienceUniverse/DSA/refs/heads/master/install.sh"| sh

Please note,

  • the contents will be copied in 'DSA' directory
  • there will be 4 more extra folder created in your project directory, 'inc' (location of interfaces), 'lib' (location for libraries) and 'log' (memory usage logging).
  • you may delete the 'DSA' folder from your project if not required any longer
  • you must exclude 'DSA' folder in '.gitignore' file from version control system to reduce extra overhead.

Usage

Please note that you need to use the shared object library as per C compilation, linking and execution standards.

Please observe following example and notice the following,

  • 'inc' (include) folder from DSA project having all interfaces (header files) should be present to resolve symbols during compile time, notice you have already kept it in place during installation, just neither delete it nor edit it without understanding the full codebase
  • compiler and linker is gcc
  • outputting all warnings with -Wall
  • providing local library location ($(pwd)/lib) to linker with option -L
  • calling the dynamic shared object library with standard, -ldsa expands to libdsa.so (dynamic shared object) or libdsa.a (static archive) whichever is available in the linker informed location
  • generating executable file with option -o exec
  • giving input files including main.c and other pre-compiled object files (having '.o' extension) required to build full program like just-in-time compilation
gcc -Wall -L$(pwd)/lib -ldsa -o exec [other-object-files...] main.c

Also please note that we could have copied the libray into standard locations like '/lib/', '/usr/lib/' or '/usr/share/lib/'; but for security conflicts we do not want to install it there.

That is why we chose a workaround (environment variable LD_LIBRARY_PATH) that have highest precedence while looking for libraries, even before standard library locations.

Notice that during execution the LD_LIBRARY_PATH need to set with the library location i.e../lib/ without hampering old values of this environment variable. There is no export command, not even doller ($) while setting the value.

LD_LIBRARY_PATH=./lib/:$LD_LIBRARY_PATH ./exec

History

  • Hi, this is the inititiator of this repo. From the college days it was a trial to create a general purpose data-structure and algorithm (DSA) in C programming language.
  • Please try this tool on systems (computer, mobile, embded systems) after installing GCC (GNU Compiler Collections) or Clang compiler; compile and run it natively or in servers.

Credits

πŸ’ Support

If you like this DSA Project and would like to support & appreciate it via donation then I'll gladly accept it.

Ko-FiBuy Me a Coffee

PatreonPaypalBHIM UPIGoogle PayRazor PayStripe

About

🌴 Data Structures and Algorithms in C

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Data Structures and Algorithms

Custom C Library for data-structures and algorithms

VersionCommit ActivityGitHub IssuesTestsCoverageDiscord

Overview

  • Data Structures is a minimal object generator that is written and run in C language.

Included Data-Structures & Utility Functions =>

Click on the links below to know details about them.

Dependency Diagram =>

Image


Installation

Please install git, (wget or curl) through official package managers of your operating system; then run the following in your favorite terminal.

wget -O- "https://raw.githubusercontent.com/TheScienceUniverse/DSA/refs/heads/master/install.sh"| sh

or

curl "https://raw.githubusercontent.com/TheScienceUniverse/DSA/refs/heads/master/install.sh"| sh

Please note,

  • the contents will be copied in 'DSA' directory
  • there will be 4 more extra folder created in your project directory, 'inc' (location of interfaces), 'lib' (location for libraries) and 'log' (memory usage logging).
  • you may delete the 'DSA' folder from your project if not required any longer
  • you must exclude 'DSA' folder in '.gitignore' file from version control system to reduce extra overhead.

Usage

Please note that you need to use the shared object library as per C compilation, linking and execution standards.

Please observe following example and notice the following,

  • 'inc' (include) folder from DSA project having all interfaces (header files) should be present to resolve symbols during compile time, notice you have already kept it in place during installation, just neither delete it nor edit it without understanding the full codebase
  • compiler and linker is gcc
  • outputting all warnings with -Wall
  • providing local library location ($(pwd)/lib) to linker with option -L
  • calling the dynamic shared object library with standard, -ldsa expands to libdsa.so (dynamic shared object) or libdsa.a (static archive) whichever is available in the linker informed location
  • generating executable file with option -o exec
  • giving input files including main.c and other pre-compiled object files (having '.o' extension) required to build full program like just-in-time compilation
gcc -Wall -L$(pwd)/lib -ldsa -o exec [other-object-files...] main.c

Also please note that we could have copied the libray into standard locations like '/lib/', '/usr/lib/' or '/usr/share/lib/'; but for security conflicts we do not want to install it there.

That is why we chose a workaround (environment variable LD_LIBRARY_PATH) that have highest precedence while looking for libraries, even before standard library locations.

Notice that during execution the LD_LIBRARY_PATH need to set with the library location i.e../lib/ without hampering old values of this environment variable. There is no export command, not even doller ($) while setting the value.

LD_LIBRARY_PATH=./lib/:$LD_LIBRARY_PATH ./exec

History

  • Hi, this is the inititiator of this repo. From the college days it was a trial to create a general purpose data-structure and algorithm (DSA) in C programming language.
  • Please try this tool on systems (computer, mobile, embded systems) after installing GCC (GNU Compiler Collections) or Clang compiler; compile and run it natively or in servers.

Credits

πŸ’ Support

If you like this DSA Project and would like to support & appreciate it via donation then I'll gladly accept it.

Ko-FiBuy Me a Coffee

PatreonPaypalBHIM UPIGoogle PayRazor PayStripe

About

🌴 Data Structures and Algorithms in C

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Data Structures and Algorithms

Custom C Library for data-structures and algorithms

VersionCommit ActivityGitHub IssuesTestsCoverageDiscord

Overview

  • Data Structures is a minimal object generator that is written and run in C language.

Included Data-Structures & Utility Functions =>

Click on the links below to know details about them.

Dependency Diagram =>

Image


Installation

Please install git, (wget or curl) through official package managers of your operating system; then run the following in your favorite terminal.

wget -O- "https://raw.githubusercontent.com/TheScienceUniverse/DSA/refs/heads/master/install.sh"| sh

or

curl "https://raw.githubusercontent.com/TheScienceUniverse/DSA/refs/heads/master/install.sh"| sh

Please note,

  • the contents will be copied in 'DSA' directory
  • there will be 4 more extra folder created in your project directory, 'inc' (location of interfaces), 'lib' (location for libraries) and 'log' (memory usage logging).
  • you may delete the 'DSA' folder from your project if not required any longer
  • you must exclude 'DSA' folder in '.gitignore' file from version control system to reduce extra overhead.

Usage

Please note that you need to use the shared object library as per C compilation, linking and execution standards.

Please observe following example and notice the following,

  • 'inc' (include) folder from DSA project having all interfaces (header files) should be present to resolve symbols during compile time, notice you have already kept it in place during installation, just neither delete it nor edit it without understanding the full codebase
  • compiler and linker is gcc
  • outputting all warnings with -Wall
  • providing local library location ($(pwd)/lib) to linker with option -L
  • calling the dynamic shared object library with standard, -ldsa expands to libdsa.so (dynamic shared object) or libdsa.a (static archive) whichever is available in the linker informed location
  • generating executable file with option -o exec
  • giving input files including main.c and other pre-compiled object files (having '.o' extension) required to build full program like just-in-time compilation
gcc -Wall -L$(pwd)/lib -ldsa -o exec [other-object-files...] main.c

Also please note that we could have copied the libray into standard locations like '/lib/', '/usr/lib/' or '/usr/share/lib/'; but for security conflicts we do not want to install it there.

That is why we chose a workaround (environment variable LD_LIBRARY_PATH) that have highest precedence while looking for libraries, even before standard library locations.

Notice that during execution the LD_LIBRARY_PATH need to set with the library location i.e../lib/ without hampering old values of this environment variable. There is no export command, not even doller ($) while setting the value.

LD_LIBRARY_PATH=./lib/:$LD_LIBRARY_PATH ./exec

History

  • Hi, this is the inititiator of this repo. From the college days it was a trial to create a general purpose data-structure and algorithm (DSA) in C programming language.
  • Please try this tool on systems (computer, mobile, embded systems) after installing GCC (GNU Compiler Collections) or Clang compiler; compile and run it natively or in servers.

Credits

πŸ’ Support

If you like this DSA Project and would like to support & appreciate it via donation then I'll gladly accept it.

Ko-FiBuy Me a Coffee

PatreonPaypalBHIM UPIGoogle PayRazor PayStripe

About

🌴 Data Structures and Algorithms in C

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Data Structures and Algorithms

Custom C Library for data-structures and algorithms

VersionCommit ActivityGitHub IssuesTestsCoverageDiscord

Overview

  • Data Structures is a minimal object generator that is written and run in C language.

Included Data-Structures & Utility Functions =>

Click on the links below to know details about them.

Dependency Diagram =>

Image


Installation

Please install git, (wget or curl) through official package managers of your operating system; then run the following in your favorite terminal.

wget -O- "https://raw.githubusercontent.com/TheScienceUniverse/DSA/refs/heads/master/install.sh"| sh

or

curl "https://raw.githubusercontent.com/TheScienceUniverse/DSA/refs/heads/master/install.sh"| sh

Please note,

  • the contents will be copied in 'DSA' directory
  • there will be 4 more extra folder created in your project directory, 'inc' (location of interfaces), 'lib' (location for libraries) and 'log' (memory usage logging).
  • you may delete the 'DSA' folder from your project if not required any longer
  • you must exclude 'DSA' folder in '.gitignore' file from version control system to reduce extra overhead.

Usage

Please note that you need to use the shared object library as per C compilation, linking and execution standards.

Please observe following example and notice the following,

  • 'inc' (include) folder from DSA project having all interfaces (header files) should be present to resolve symbols during compile time, notice you have already kept it in place during installation, just neither delete it nor edit it without understanding the full codebase
  • compiler and linker is gcc
  • outputting all warnings with -Wall
  • providing local library location ($(pwd)/lib) to linker with option -L
  • calling the dynamic shared object library with standard, -ldsa expands to libdsa.so (dynamic shared object) or libdsa.a (static archive) whichever is available in the linker informed location
  • generating executable file with option -o exec
  • giving input files including main.c and other pre-compiled object files (having '.o' extension) required to build full program like just-in-time compilation
gcc -Wall -L$(pwd)/lib -ldsa -o exec [other-object-files...] main.c

Also please note that we could have copied the libray into standard locations like '/lib/', '/usr/lib/' or '/usr/share/lib/'; but for security conflicts we do not want to install it there.

That is why we chose a workaround (environment variable LD_LIBRARY_PATH) that have highest precedence while looking for libraries, even before standard library locations.

Notice that during execution the LD_LIBRARY_PATH need to set with the library location i.e../lib/ without hampering old values of this environment variable. There is no export command, not even doller ($) while setting the value.

LD_LIBRARY_PATH=./lib/:$LD_LIBRARY_PATH ./exec

History

  • Hi, this is the inititiator of this repo. From the college days it was a trial to create a general purpose data-structure and algorithm (DSA) in C programming language.
  • Please try this tool on systems (computer, mobile, embded systems) after installing GCC (GNU Compiler Collections) or Clang compiler; compile and run it natively or in servers.

Credits

πŸ’ Support

If you like this DSA Project and would like to support & appreciate it via donation then I'll gladly accept it.

Ko-FiBuy Me a Coffee

PatreonPaypalBHIM UPIGoogle PayRazor PayStripe

About

🌴 Data Structures and Algorithms in C

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages