Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
Java 9 Data Structures and Algorithms

You're reading from   Java 9 Data Structures and Algorithms A step-by-step guide to data structures and algorithms

Arrow left icon
Product type Paperback
Published in Apr 2017
Publisher Packt
ISBN-13 9781785889349
Length 340 pages
Edition 1st Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
 Ray Chawdhuri Ray Chawdhuri
Author Profile Icon Ray Chawdhuri
Ray Chawdhuri
Arrow right icon
View More author details
Toc

Table of Contents (19) Chapters Close

Java 9 Data Structures and Algorithms
Credits
About the Author
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
1. Why Bother? – Basic FREE CHAPTER 2. Cogs and Pulleys – Building Blocks 3. Protocols – Abstract Data Types 4. Detour – Functional Programming 5. Efficient Searching – Binary Search and Sorting 6. Efficient Sorting – quicksort and mergesort 7. Concepts of Tree 8. More About Search – Search Trees and Hash Tables 9. Advanced General Purpose Data Structures 10. Concepts of Graph 11. Reactive Programming Index

Index

A

  • adjacency-list-based graph
    • operations, complexity / Complexity of operations in an adjacency-list-based graph
    • with dense storage for vertices / Adjacency-list-based graph with dense storage for vertices
    • with dense storage for vertices, operations complexity / Complexity of the operations of an adjacency-list-based graph with dense storage for vertices
  • adjacency-matrix-based graph
    • about / More space-efficient adjacency-matrix-based graph
  • adjacency list
    • about / Adjacency list
  • adjacency matrix
    • about / Adjacency matrix
    • sparse adjacency matrix graph, operations complexity / Complexity of operations in a sparse adjacency matrix graph
  • aggregation operation
    • about / Map for a linked list
  • algorithm
    • performance / The performance of an algorithm
    • best case, complexity / Best case, worst case and the average case complexity
    • worst case, complexity / Best case, worst case and the average case complexity
    • average case, complexity / Best case, worst case and the average case complexity
    • asymptotic complexity, analyzing / Analysis of asymptotic complexity
    • optimizing / Optimization of our algorithm
  • append operation
    • implementing, for functional linked lists / Append on a linked list
  • array-backed heap
    • about / Array-backed heap
  • ArrayHeap
    • operations, complexity / Complexity of operations in ArrayHeap and LinkedHeap
  • arrays
    • about / Arrays
    • elements, inserting / Insertion of elements in an array
    • new elements, inserting / Insertion of a new element and the process of appending it
    • new elements, appending / Insertion of a new element and the process of appending it
  • asymptotic analysis
    • about / Fixing the problem with large powers
  • asymptotic complexity
    • analyzing / Analysis of asymptotic complexity
    • function, upper bound / Asymptotic upper bound of a function
    • algorithm, upper bound / Asymptotic upper bound of an algorithm
    • function, lower bound / Asymptotic lower bound of a function
    • function, tight bound / Asymptotic tight bound of a function
  • AVL tree
    • about / AVL tree
    • complexity / Complexity of search, insert, and delete in an AVL tree
    • element, searching / Complexity of search, insert, and delete in an AVL tree
    • element, inserting / Complexity of search, insert, and delete in an AVL tree
    • element, deleting / Complexity of search, insert, and delete in an AVL tree

B

  • binary search
    • about / Binary search
    • complexity / Complexity of the binary search algorithm
  • binary search tree
    • about / Binary search tree
    • element, inserting / Insertion in a binary search tree
    • invariant / Invariant of a binary search tree
    • element, deleting / Deletion of an element from a binary search tree
    • operation complexity / Complexity of the binary search tree operations
  • binary tree
    • about / Binary tree
    • depth-first traversal, types / Types of depth-first traversals
    • non-recursive depth-first search / Non-recursive depth-first search
  • binomial forest
    • about / Binomial forest, Binomial forest
    • uses / Why call it a binomial tree?
    • number of nodes / Number of nodes
    • heap property / The heap property
    • operations, complexity / Complexity of operations in a binomial forest
  • breadth-first traversal
    • about / The breadth-first traversal
  • bubble sort
    • about / Bubble sort
    • inversions / Inversions
    • complexity / Complexity of the bubble sort algorithm

C

  • CAS operation / Compare and set
  • circular linked list
    • about / Circular linked list
    • element, inserting / Insertion
    • element, removing / Removal
    • element, rotating / Rotation
  • comparison based sorting
    • complexity / Complexity of any comparison-based sorting
  • connected graph / What is a graph?
  • cut property / Cut property
  • cycle / What is a graph?
  • cycle detection
    • about / Cycle detection
    • complexity / Complexity of the cycle detection algorithm

D

  • dense adjacency-matrix-based graph
    • operations, complexity / Complexity of operations in a dense adjacency-matrix-based graph
  • depth-first traversal
    • about / The depth-first traversal
    • types / Types of depth-first traversals
    • pre-order traversal / Types of depth-first traversals
    • in-order traversal / Types of depth-first traversals
    • post-order traversal / Types of depth-first traversals
  • dequeuing
    • about / Queue
  • directed graph / What is a graph?
  • double ended queue
    • about / Double ended queue
    • push operation / Double ended queue
    • pop operation / Double ended queue
    • inject operation / Double ended queue
    • eject operation / Double ended queue
    • peek operation / Double ended queue
    • peeklast operation / Double ended queue
    • fixed length double ended queue, using with array / Fixed-length double ended queue using an array
    • variable size double ended queue, using with linked list / Variable-sized double ended queue using a linked list
  • doubly linked list
    • about / Doubly linked list
    • element, inserting at beginning / Insertion at the beginning or at the end
    • element, inserting at end / Insertion at the beginning or at the end
    • element, inserting at arbitrary location / Insertion at an arbitrary location
    • first element, removing / Removing the first element
    • arbitrary element, removing / Removing an arbitrary element
    • last element, removing / Removal of the last element

E

  • enqueuing
    • about / Queue
  • expression syntax
    • about / Implementing a functional interface with lambda

F

  • filtering
    • about / Functional linked lists
  • filter operation
    • implementing, for functional linked lists / Filter operation for a linked list
  • final keyword / Implementing a functional interface with lambda
  • first-in-first-out (FIFO)
    • about / Queue
  • fixed-sized queue
    • using, with array / Fixed-sized queue using an array, Variable-sized queue using a linked list
  • fixed-sized stack
    • using, with array / Fixed-sized stack using an array
    • using, with linked list / Variable-sized stack using a linked list
  • fixed length double ended queue
    • using, with array / Fixed-length double ended queue using an array
  • flatMap method
    • implementing, for functional linked lists / The flatMap method on a linked list
  • fold operation
    • implementing, for functional linked lists / Fold operation on a list
  • forEach method
    • implementing, for functional linked lists / The forEach method for a linked list
  • forest / What is a graph?
  • functional data structures
    • about / Functional data structures and monads
    • functional linked lists / Functional linked lists
  • functional interface
    • about / Functional interface
    • implementing, with lambda / Implementing a functional interface with lambda
  • functional linked lists
    • about / Functional linked lists
    • forEach method / The forEach method for a linked list
    • map() method / Map for a linked list
    • fold operation / Fold operation on a list
    • filter operation / Filter operation for a linked list
    • append operation / Append on a linked list
    • flatMap method / The flatMap method on a linked list
  • functional programming
    • performance / Performance of functional programming

G

  • graph
    • about / What is a graph?
    • undirected graph / What is a graph?
    • directed graph / What is a graph?
    • subgraph / What is a graph?
    • connected graph / What is a graph?
    • complete graph / What is a graph?
    • representing / Representation of a graph in memory
    • adjacency matrix / Adjacency matrix
    • adjacency-matrix-based graph, space-efficient / More space-efficient adjacency-matrix-based graph
    • adjacency list / Adjacency list
    • adjacency-list-based graph / Adjacency-list-based graph with dense storage for vertices
    • traversal / Traversal of a graph
    • traversals, complexity / Complexity of traversals
  • graph ADT
    • about / The graph ADT
    • operations / The graph ADT

H

  • hash function
    • about / Hash tables
    • properties / Hash tables
  • hash table
    • about / Hash tables
    • element, inserting / Insertion
    • complexity, of insertion / The complexity of insertion
    • element, searching / Search
    • complexity, of search / Complexity of the search
    • load factor / Choice of load factor
  • heap
    • about / Heap
    • insertion / Insertion
    • minimum elements, removing / Removal of minimum elements
    • complexity, analysis / Analysis of complexity
    • serialized representation / Serialized representation
    • array-backed heap / Array-backed heap
    • linked heap / Linked heap

I

  • in-place heap sort
    • about / In-place heap sort
  • insertion sort
    • about / Insertion sort
    • complexity / Complexity of insertion sort
  • invariant, binary search tree
    • about / Invariant of a binary search tree
  • inversions
    • about / Inversions

J

  • Java
    • lambda expression / Lambda expressions in Java
  • JavaBean
    • about / Option monad

L

  • lambda
    • about / Lambda expressions in Java
  • lambda expression
    • about / Lambda expressions in Java
    • functional interface / Functional interface
    • functional interface, implementing / Implementing a functional interface with lambda
  • Last In First Out (LIFO)
    • about / The depth-first traversal
  • last in first out (LIFO)
    • about / Stack
  • linear search
    • about / Search algorithms
  • linked heap
    • about / Linked heap
    • insertion / Insertion
    • minimal elements, removal / Removal of the minimal elements
  • linked list
    • about / Linked list, A tree data structure
    • element, appending at end / Appending at the end
    • element, inserting at beginning / Insertion at the beginning
    • element, inserting at arbitrary position / Insertion at an arbitrary position
    • arbitrary element, searching / Looking up an arbitrary element
    • arbitrary element, removing / Removing an arbitrary element
    • iteration / Iteration
  • loop / What is a graph?

M

  • map() method
    • implementing, for functional linked lists / Map for a linked list
  • merge sort
    • about / mergesort
    • complexity / The complexity of mergesort
    • tempArray copy, avoiding / Avoiding the copying of tempArray
  • minimum spanning tree, finding
    • about / Finding the minimum spanning tree
    • union find / Union find
    • UnionFind, operations complexity / Complexity of operations in UnionFind
    • implementation / Implementation of the minimum spanning tree algorithm
    • complexity / Complexity of the minimum spanning tree algorithm
  • monads
    • about / Functional data structures and monads, The concept of a monad
    • option monad / Option monad
    • Try monad / Try monad

N

  • non-recursive depth-first search
    • about / Non-recursive depth-first search
  • non-tail single recursive functions
    • about / Non-tail single recursive functions

O

  • option monad
    • about / Option monad

P

  • path / What is a graph?
  • priority queue
    • used, for sorting / Sorting using a priority queue
  • priority queue ADT
    • about / Priority queue ADT
  • producer-consumer model
    • about / Producer-consumer model
    • semaphore / Semaphore
    • compare and set / Compare and set
    • volatile field / Volatile field
    • thread-safe blocking queue / Thread-safe blocking queue
    • implementing / Producer-consumer implementation
    • spinlock and busy wait / Spinlock and busy wait

Q

  • queue
    • about / Variable-sized stack using a linked list, Queue
    • enqueue operation / Queue
    • dequeue operation / Queue
    • peek operation / Queue
    • fixed-sized queue, using with array / Fixed-sized queue using an array, Variable-sized queue using a linked list
  • quicksort
    • about / quicksort
    • complexity / Complexity of quicksort
    • random pivot selection / Random pivot selection in quicksort

R

  • random pivot selection
    • in quicksort / Random pivot selection in quicksort
  • reactive programming
    • about / What is reactive programming?
    • uses / What is reactive programming?
    • functional way / Functional way of reactive programming
  • recursive algorithms
    • about / Recursive algorithms
    • complexity analysis / Analysis of the complexity of a recursive algorithm
  • recursive calls
    • problem / A problem with recursive calls
    • tail recursive function / Tail recursive functions
    • non-tail single recursive functions / Non-tail single recursive functions
  • red-black tree
    • about / Red-black tree
    • element, inserting / Insertion
    • element, deleting / Deletion
    • worst case scenario / The worst case of a red-black tree
  • right hand side (RHS)
    • about / Append on a linked list
  • rotation operation
    • using, with self-balancing binary search tree / Self-balancing binary search tree

S

  • search algorithms
    • about / Search algorithms
    • binary search / Binary search
  • selection sort
    • about / Selection sort
    • complexity / Complexity of the selection sort algorithm
  • self-balancing binary search tree
    • about / Self-balancing binary search tree
    • rotation operation, using / Self-balancing binary search tree
    • AVL tree / AVL tree
  • semaphore / Semaphore
  • sorting
    • about / Sorting
    • selection sort / Selection sort
    • insertion sort / Insertion sort
    • bubble sort / Bubble sort
  • sorting algorithm
    • stability / The stability of a sorting algorithm
  • spanning tree
    • about / Spanning tree and minimum spanning tree
    • with vertices V and edges E / For any tree with vertices V and edges E, |V| = |E| + 1
    • connected undirected graph / Any connected undirected graph has a spanning tree
    • undirected connected graph / Any undirected connected graph with the property |V| = |E| + 1 is a tree
    • cut property / Cut property
    • minimum spanning tree / Minimum spanning tree is unique for a graph that has all the edges whose costs are different from one another
    • minimum spanning tree, finding / Finding the minimum spanning tree
  • stack
    • about / Stack
    • push operation / Stack
    • pop operation / Stack
    • peek operation / Stack
    • fixed-sized stack, using with array / Fixed-sized stack using an array
    • variable sized stack, using with linked list / Variable-sized stack using a linked list
  • subgraph / What is a graph?

T

  • tail recursive functions
    • about / Tail recursive functions
  • Thread-safe blocking queue / Thread-safe blocking queue
  • time complexity
    • improving / Improving time complexity
  • tree / What is a graph?
  • tree abstract data type
    • about / The tree abstract data type
  • tree data structure
    • about / A tree data structure
    • tree traversal / The traversal of a tree
  • tree traversal
    • about / The traversal of a tree
    • depth-first traversal / The depth-first traversal
    • breadth-first traversal / The breadth-first traversal
  • Try monad
    • about / Try monad

U

  • undirected graph / What is a graph?

V

  • variable size double ended queue
    • using, with linked list / Variable-sized double ended queue using a linked list

W

  • wrapper object
    • about / Linked list
lock icon The rest of the chapter is locked
arrow left Previous Section
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €14.99/month. Cancel anytime
Visually different images