
Data Structures and Algorithms with JavaScript
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Content
- Intro
- Copyright
- Table of Contents
- Preface
- Why Study Data Structures and Algorithms
- What You Need for This Book
- Organization of the Book
- Conventions Used in This Book
- Using Code Examples
- Safari® Books Online
- How to Contact Us
- Content Updates
- October 20, 2015
- Acknowledgments
- Chapter 1. The JavaScript Programming Environment and Model
- The JavaScript Environment
- JavaScript Programming Practices
- Declaring and Initializing Variables
- Arithmetic and Math Library Functions in JavaScript
- Decision Constructs
- Repetition Constructs
- Functions
- Variable Scope
- Recursion
- Objects and Object-Oriented Programming
- Summary
- Chapter 2. Arrays
- JavaScript Arrays Defined
- Using Arrays
- Creating Arrays
- Accessing and Writing Array Elements
- Creating Arrays from Strings
- Aggregate Array Operations
- Accessor Functions
- Searching for a Value
- String Representations of Arrays
- Creating New Arrays from Existing Arrays
- Mutator Functions
- Adding Elements to an Array
- Removing Elements from an Array
- Adding and Removing Elements from the Middle of an Array
- Putting Array Elements in Order
- Iterator Functions
- Non-Array-Generating Iterator Functions
- Iterator Functions That Return a New Array
- Two-Dimensional and Multidimensional Arrays
- Creating Two-Dimensional Arrays
- Processing Two-Dimensional Array Elements
- Jagged Arrays
- Arrays of Objects
- Arrays in Objects
- Exercises
- Chapter 3. Lists
- A List ADT
- A List Class Implementation
- Append: Adding an Element to a List
- Remove: Removing an Element from a List
- Find: Finding an Element in a List
- Length: Determining the Number of Elements in a List
- toString: Retrieving a List's Elements
- Insert: Inserting an Element into a List
- Clear: Removing All Elements from a List
- Contains: Determining if a Given Value Is in a List
- Moving To and Retrieving a List Element
- Iterating Through a List
- Iterating Through a List
- A List-Based Application
- Reading Text Files
- Using Lists to Manage a Kiosk
- Exercises
- Chapter 4. Stacks
- Stack Operations
- A Stack Implementation
- Using the Stack Class
- Multiple Base Conversions
- Palindromes
- Demonstrating Recursion
- Exercises
- Chapter 5. Queues
- Queue Operations
- An Array-Based Queue Class Implementation
- Using the Queue Class: Assigning Partners at a Square Dance
- Sorting Data with Queues
- Priority Queues
- Exercises
- Chapter 6. Linked Lists
- Shortcomings of Arrays
- Linked Lists Defined
- An Object-Based Linked List Design
- The Node Class
- The Linked List Class
- Inserting New Nodes
- Removing Nodes from a Linked List
- Doubly Linked Lists
- Circularly Linked Lists
- Other Linked List Functions
- Exercises
- Chapter 7. Dictionaries
- The Dictionary Class
- Auxiliary Functions for the Dictionary Class
- Adding Sorting to the Dictionary Class
- Exercises
- Chapter 8. Hashing
- An Overview of Hashing
- A Hash Table Class
- Choosing a Hash Function
- A Better Hash Function
- Hashing Integer Keys
- Storing and Retrieving Data in a Hash Table
- Handling Collisions
- Separate Chaining
- Linear Probing
- Exercises
- Chapter 9. Sets
- Fundamental Set Definitions, Operations, and Properties
- Set Definitions
- Set Operations
- The Set Class Implementation
- More Set Operations
- Exercises
- Chapter 10. Binary Trees and Binary Search Trees
- Trees Defined
- Binary Trees and Binary Search Trees
- Building a Binary Search Tree Implementation
- Traversing a Binary Search Tree
- BST Searches
- Searching for the Minimum and Maximum Value
- Searching for a Specific Value
- Removing Nodes from a BST
- Counting Occurrences
- Exercises
- Chapter 11. Graphs and Graph Algorithms
- Graph Definitions
- Real-World Systems Modeled by Graphs
- The Graph Class
- Representing Edges
- Building a Graph
- Searching a Graph
- Depth-First Search
- Breadth-First Search
- Finding the Shortest Path
- Breadth-First Search Leads to Shortest Paths
- Determining Paths
- Topological Sorting
- An Algorithm for Topological Sorting
- Implementing the Topological Sorting Algorithm
- Exercises
- Chapter 12. Sorting Algorithms
- An Array Test Bed
- Generating Random Data
- Basic Sorting Algorithms
- Bubble Sort
- Selection Sort
- Insertion Sort
- Timing Comparisons of the Basic Sorting Algorithms
- Advanced Sorting Algorithms
- The Shellsort Algorithm
- The Mergesort Algorithm
- The Quicksort Algorithm
- Exercises
- Chapter 13. Searching Algorithms
- Commonly Used Functions in Examples
- Searching for Minimum and Maximum Values
- Using Self-Organizing Data
- Binary Search
- Counting Occurrences
- Searching Textual Data
- Exercises
- Chapter 14. Advanced Algorithms
- Dynamic Programming
- A Dynamic Programming Example: Computing Fibonacci Numbers
- Finding the Longest Common Substring
- The Knapsack Problem: A Recursive Solution
- The Knapsack Problem: A Dynamic Programming Solution
- Greedy Algorithms
- A First Greedy Algorithm Example: The Coin-Changing Problem
- A Greedy Algorithm Solution to the Knapsack Problem
- Exercises
- Index
- About the Author
System requirements
File format: PDF
Copy-Protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our eBook Help page.