TypeScript JavaScript
Latest commit 44cdb55 Jun 4, 2018


Learning JavaScript Data Structures and Algorithms

Build Status codecov devDependencies Status dependencies Status Greenkeeper badge

Source code of Learning JavaScript Data Structures and Algorithms book, third edition.

List of available chapters:

Third Edition Updates

  • Algorithms using ES2015+ (ES6+)
  • New data structures and algorithms
  • All chapters rewritten and reviewed
  • Three (3) new chapters
  • Creation of a Data Structures and Algorithms library that can be used in the browser or with Node.js
  • Algorithms tested with Mocha + Chai (test code available in test directory)
  • TypeScript version of the source code included (library and tests)

Project Structure

srchttps://github.com/js/index.js file contains all the data structures and algorithms listed by chapter.

|_examples (how to use each data structure and algorithm, organized by chapter)
|___js (source code: JavaScript version)
|_______models (classes used by DS: Node, ValuePair, ...)
|_____others (other algorithms such as palindome checker, hanoi tower)
|___ts (source code: TypeScript version)
|_test (unit tests with Mocha and Chai for src)
|___js (tests for JavaScript code)
|___ts (tests for TypeScript code)

Installing and running the book examples With Node

  • Install Node
  • Open terminal/cmd and change directoty to this project folder: cd /Users/.../javascript-datastructures-algorithms (Linux/Max) or cd C:/.../javascript-datastructures-algorithms
  • run npm install to install all depencies
  • To see the examples, run http-server html or npm run serve. Open your browser http:\\localhost:8080 to see the book examples
  • Or cd html/chapter01 and run each javascript file with node: node 02-Variables

Running the examples in the browser

Happy Coding!

Other editions

1st edition 2nd edition 3rd edition
1st edition 2nd edition 3rd edition
Book link Book link Book link

Book link - first edition:

Book link - second edition:

Book link - third edition:

Found an issue or have a question?

Please create an Issue or Pull Request