{"id":20796693,"url":"https://github.com/gotocva/data-structures-and-algorithms-in-javascript","last_synced_at":"2025-07-18T01:04:01.974Z","repository":{"id":114647091,"uuid":"245081303","full_name":"gotocva/data-structures-and-algorithms-in-javascript","owner":"gotocva","description":null,"archived":false,"fork":false,"pushed_at":"2020-03-05T05:58:11.000Z","size":29,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-12T01:44:25.220Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gotocva.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-05T05:57:12.000Z","updated_at":"2020-03-05T05:58:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"c66e4f82-ec64-41e0-b277-78ffccc52cc1","html_url":"https://github.com/gotocva/data-structures-and-algorithms-in-javascript","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gotocva/data-structures-and-algorithms-in-javascript","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotocva%2Fdata-structures-and-algorithms-in-javascript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotocva%2Fdata-structures-and-algorithms-in-javascript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotocva%2Fdata-structures-and-algorithms-in-javascript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotocva%2Fdata-structures-and-algorithms-in-javascript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gotocva","download_url":"https://codeload.github.com/gotocva/data-structures-and-algorithms-in-javascript/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotocva%2Fdata-structures-and-algorithms-in-javascript/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265686591,"owners_count":23811209,"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","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":[],"created_at":"2024-11-17T16:28:39.339Z","updated_at":"2025-07-18T01:04:01.952Z","avatar_url":"https://github.com/gotocva.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Data Structures and Algorithms with ES6\n\n![](https://i.blogs.es/545cf8/es6-logo/original.png) ![](https://lh3.googleusercontent.com/a4Xrc-8oQLu05mOrNPuvA_o2nZEIEnOoTH4wB91Slw_hCvuIu_Qgi440bK9mC8ml-KA=w300)\n\n## Examples in this repo\n\n| **Num** | **Type** | **Exercises** | **Description** |\n--- | --- | --- | ---\n| 1.- | [Array](./02-chapter-Array) | 4 | The `Array` is the most common data structure in computer programming\n| 2.- | [Lists](./03-chapter-List.js) | 5 | A `List` is an ordered sequence of data, where elements are not meant to be ordered.\n| 3.- | [Stacks](./04-chapter-Stack) | 3 | A `Stack` is an example of Last-in, First-Out (LIFO)\n| 4.- | [Queues](./05-chapter-Queue) | 2 | A `Queue` is an example of First-in, First-Out (FIFO)\n| 5.- | [Linked List](./06-chapter-Linked-Lists-types) | 4 | A `Linked list` is a collection of objects called nodes. Each node is linked to a successor node in the list using an object reference.\n| 6.- | [Double Linked List](./06-chapter-Linked-Lists-types) | 3 | Traversing a `Double linked list` are more efficient, since we no longer have to search for the previous node.\n| 7.- | [Circular Linked List](./06-chapter-Linked-Lists-types) | 4 | The reason you might want to create a `Circular linked list` is if you want the ability to go backward through a list but don’t want the extra overhead of creating a doubly linked list.\n| 8.- | [Hashing](./08-chapter-Hashing.js) | 2 | `Hashing` is a common technique for storing data in such a way that the data can be inserted and retrieved very quickly. Hashing uses a data structure called a hash table. Although hash tables provide fast insertion, deletion, and retrieval, they perform poorly for operations that involve searching.\n| 9.- | [Binary Trees and Binary Search Trees](./10-chapter-Binary-Tree) | 4 | `Binary trees` are chosen over other more primary data structures because you can search a binary tree very quickly (as opposed to a linked list, for example) and you can quickly insert and delete data from a binary tree (as opposed to an array).\n| 10.- | [Graph Data Structure](./11-chapter-Graphs) | 2 | A graph consists of a set of vertices and a set of edges. A map is a type of graph where each town is a vertex, and a road that connects two towns is an edge. Edges are defined as a pair (v1, v2), where v1 and v2 are two vertices in a graph\n| 11.- | [Sorting Algorithms](./12-chapter-Sorting-Algorithms) | 6 | Two of the most common operations performed on data stored in a computer are sorting and searching.\n| 12.- | [Searching Algorithms](./13-chapter-Searching-Algorithms) | 6 | There are two ways to search for data in a list: sequential search and binary search. A sequential search is used when the items in a list are in random order; a binary search is used when the items in a list are in sorted order.\n\n\n### To run the examples we need the following:\n\n- NodeJS Installed\n- Open Any Terminal and position it to the folder where the files are located\n- execute the tests: `$ npm install` then `node_modules/.bin/qunit -t path/test.js -c path/tests.js`\n\n### References\n- [Data Structures and Algorithms with JavaScript](http://shop.oreilly.com/product/0636920029557.do)\n- [7 algorithms and data structures every programmer must know](https://codingsec.net/2016/03/7-algorithms-data-structures-every-programmer/)\n\nSome exercises are based from the book [Data Structures and Algorithms with JavaScript](http://shop.oreilly.com/product/0636920029557.do) - [by Michael McMillian (O’Reilly)](http://www.oreilly.com/pub/au/518) ISBN - 978-1-449-36493-9.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgotocva%2Fdata-structures-and-algorithms-in-javascript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgotocva%2Fdata-structures-and-algorithms-in-javascript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgotocva%2Fdata-structures-and-algorithms-in-javascript/lists"}