Data Structures, Algorithms, & Applications in Java
Sartaj Sahni
Index of Text Programs
Select a chapter.
Chapter 1
Chapter 2
Chapter 3
Chapter 4
Chapter 5
Chapter 6
Chapter 7
Chapter 8
Chapter 9
Chapter 10
Chapter 11
Chapter 12
Chapter 13
Chapter 14
Chapter 15
Chapter 16
Chapter 17
Chapter 18
Chapter 19
Chapter 20
Chapter 21
Chapter 22
Chapter 1 Programs
Program 1.1
misc/Welcome.java
Program 1.2
misc/IntegerAbc.java
Program 1.3
misc/FloatAbc.java
Program 1.4
misc/NoSwap.java
Program 1.5
misc/IntegerAbcWithException.java
Program 1.6
misc/IntegerAbcWithException.java
Program 1.7
applications/Currency.java
Program 1.8
applications/Currency.java
Program 1.9
applications/Currency.java
Program 1.10
applications/Currency.java
Program 1.11
applications/Currency.java
Program 1.12
applications/Currency.java
Program 1.13
applications/CurrencyAsLong.java
Program 1.14
exceptions/MyInputException.java
Program 1.15
utilities/MyMath.java
Program 1.16
utilities/MyMath.java
Program 1.17
utilities/Computable.java
Program 1.18
misc/GenericAbc.java
Program 1.19
utilities/Operable.java
Program 1.20
wrappers/MyInteger.java
Program 1.21
wrappers/MyInteger.java
Program 1.22
misc/Array1D.java
Program 1.23
misc/NewArray1D.java
Program 1.24
utilities/MyMath.java
Program 1.25
utilities/MyMath.java
Program 1.26
applications/RecursiveSum.java
Program 1.27
applications/Permutation.java
Program 1.28
applications/QuadraticRoots.java
Program 1.29
utilities/MyMath.java
Chapter 2 Programs
Program 2.1
applications/SequentialSearch1.java
Program 2.2
applications/RecursiveSequentialSearch.java
Program 2.3
applications/EvaluatePolynomial.java
Program 2.4
applications/Horner.java
Program 2.5
applications/Rank.java
Program 2.6
applications/RankSort1.java
Program 2.7
applications/SelectionSort.java
Program 2.8
applications/BubbleSort.java
Program 2.9
applications/BubbleSort.java
Program 2.10
applications/Insert.java
Program 2.11
applications/RankSort2.java
Program 2.12
applications/EarlyTerminatingSelectionSort.java
Program 2.13
applications/EarlyTerminatingBubbleSort.java
Program 2.14
applications/InsertionSort1.java
Program 2.15
applications/InsertionSort2.java
Program 2.16
misc/SumStepCount1.java
Program 2.17
misc/SumStepCount2.java
Program 2.18
misc/RecursiveSumStepCount.java
Program 2.19
utilities/MatrixOperations.java
Program 2.20
misc/InefficientPrefixSums.java
Program 2.21
utilities/MatrixOperations.java
Program 2.22
utilities/MatrixOperations.java
Program 2.23
utilities/MatrixOperations.java
Program 2.24
applications/MinMax1.java
Program 2.25
applications/MinMax2.java
Program 2.26
applications/SequentialSearch2.java
Program 2.27
misc/D.java
Chapter 3 Programs
Program 3.1
applications/BinarySearch.java
Chapter 4 Programs
Program 4.1
misc/TimeInsertionSort1.java
Program 4.2
misc/TimeInsertionSort2.java
Program 4.3
misc/TimeInsertionSort4.java
Program 4.4
utilities/MatrixOperations.java
Chapter 5 Programs
Program 5.1
dataStructures/LinearList.java
Program 5.2
dataStructures/LinearListAsAbstractClass.java
Program 5.3
utilities/ChangeArrayLength.java
Program 5.4
dataStructures/ArrayLinearList.java
Program 5.5
dataStructures/ArrayLinearList.java
Program 5.6
dataStructures/ArrayLinearList.java
Program 5.7
dataStructures/ArrayLinearList.java
Program 5.8
dataStructures/ArrayLinearList.java
Program 5.9
dataStructures/ArrayLinearListIterator.java
Program 5.10
dataStructures/ArrayLinearList.java
Program 5.11
dataStructures/ArrayLinearListIterator.java
Program 5.12
dataStructures/ArrayLinearListWithIterator.java
Program 5.13
dataStructures/LinearListAsVectorSubclass.java
Program 5.14
dataStructures/LinearListAsVector.java
Chapter 6 Programs
Program 6.1
dataStructures/ChainNode.java
Program 6.2
dataStructures/Chain.java
Program 6.3
dataStructures/Chain.java
Program 6.4
dataStructures/Chain.java
Program 6.5
dataStructures/Chain.java
Program 6.6
dataStructures/Chain.java
Program 6.7
dataStructures/Chain.java
Program 6.8
dataStructures/Chain.java
Program 6.9
dataStructures/ExtendedLinearList.java
Program 6.10
dataStructures/ExtendedChain.java
Program 6.11
dataStructures/CircularWithHeader.java
Program 6.12
applications/ScoreObject.java
Program 6.13
applications/StudentRecord.java
Program 6.14
applications/BinSort.java
Program 6.15
dataStructures/ChainWithBinSort.java
Chapter 7 Programs
Program 7.1
dataStructures/SimulatedNode.java
Program 7.2
dataStructures/SimulatedSpace1.java
Program 7.3
dataStructures/SimulatedSpace1.java
Program 7.4
dataStructures/SimulatedSpace1.java
Program 7.5
dataStructures/SimulatedCircularList.java
Program 7.6
dataStructures/SimulatedChain.java
Program 7.7
applications/UnionFindFirstSolution.java
Program 7.8
applications/EquivNode.java
Program 7.9
applications/UnionFindSecondSolution.java
Chapter 8 Programs
Program 8.1
misc/IrregularArray.java
Program 8.2
dataStructures/Matrix.java
Program 8.3
dataStructures/Matrix.java
Program 8.4
dataStructures/Matrix.java
Program 8.5
dataStructures/Matrix.java
Program 8.6
dataStructures/Matrix.java
Program 8.7
dataStructures/DiagonalMatrix.java
Program 8.8
dataStructures/DiagonalMatrix.java
Program 8.9
dataStructures/DiagonalMatrix.java
Program 8.10
dataStructures/TridiagonalMatrix.java
Program 8.11
dataStructures/LowerTriangularMatrix.java
Program 8.12
applications/SparseMatrixAsExtendedArrayList.java
Program 8.13
applications/SparseMatrixAsExtendedArrayList.java
Program 8.14
dataStructures/SparseMatrixAsExtendedArrayList.java
Program 8.15
dataStructures/SparseMatrixAsExtendedArrayList.java
Program 8.16
dataStructures/SparseMatrixAsExtendedArrayList.java
Program 8.17
dataStructures/SparseMatrixAsExtendedArrayList.java
Program 8.18
dataStructures/LinkedSparseMatrix.java
Chapter 9 Programs
Program 9.1
dataStructures/Stack.java
Program 9.2
dataStructures/DerivedArrayStack.java
Program 9.3
dataStructures/DerivedArrayStackWithCatch.java
Program 9.4
dataStructures/ArrayStack.java
Program 9.5
dataStructures/LinkedStack.java
Program 9.6
applications/ParenthesisMatching.java
Program 9.7
applications/TowersOfHanoi.java
Program 9.8
applications/TowersOfHanoiShowingStates.java
Program 9.9
applications/RailroadWithStacks.java
Program 9.10
applications/RailroadWithStacks.java
Program 9.11
applications/RailroadWithStacks.java
Program 9.12
applications/RailroadWithStacks.java
Program 9.13
applications/SwitchBox.java
Program 9.14
applications/OfflineEquivalenceClasses.java
Program 9.15
applications/RatInAMaze.java
Chapter 10 Programs
Program 10.1
dataStructures/Queue.java
Program 10.2
dataStructures/ArrayQueue.java
Program 10.3
dataStructures/ArrayQueue.java
Program 10.4
dataStructures/ArrayQueue.java
Program 10.5
dataStructures/LinkedQueue.java
Program 10.6
applications/RailroadWithQueues.java
Program 10.7
applications/RailroadWithQueues.java
Program 10.8
applications/WireRouter.java
Program 10.9
applications/ImageComponents.java
Program 10.10
applications/MachineShopSimulator.java
Program 10.11
applications/MachineShopSimulator.java
Program 10.12
applications/MachineShopSimulator.java
Program 10.13
applications/MachineShopSimulator.java
Program 10.14
applications/MachineShopSimulator.java
Program 10.15
applications/MachineShopSimulator.java
Program 10.16
applications/MachineShopSimulator.java
Program 10.17
applications/MachineShopSimulator.java
Program 10.18
applications/MachineShopSimulator.java
Program 10.19
applications/MachineShopSimulator.java
Program 10.20
applications/MachineShopSimulator.java
Program 10.21
applications/MachineShopSimulator.java
Chapter 11 Programs
Program 11.1
dataStructures/Dictionary.java
Program 11.2
dataStructures/SortedChain.java
Program 11.3
dataStructures/SortedChain.java
Program 11.4
dataStructures/SortedChain.java
Program 11.5
dataStructures/SkipList.java
Program 11.6
dataStructures/SkipList.java
Program 11.7
dataStructures/SkipList.java
Program 11.8
dataStructures/SkipList.java
Program 11.9
dataStructures/SkipList.java
Program 11.10
dataStructures/SkipList.java
Program 11.11
dataStructures/SkipList.java
Program 11.12
dataStructures/SkipList.java
Program 11.13
dataStructures/ConvertString.java
Program 11.14
dataStructures/ConvertString.java
Program 11.15
dataStructures/HashTable.java
Program 11.16
dataStructures/HashTable.java
Program 11.17
dataStructures/HashTable.java
Program 11.18
dataStructures/HashTable.java
Program 11.19
dataStructures/HashChains.java
Program 11.20
applications/Compress.java
Program 11.21
applications/Compress.java
Program 11.22
applications/Compress.java
Program 11.23
applications/Compress.java
Program 11.24
applications/Decompress.java
Program 11.25
applications/Decompress.java
Program 11.26
applications/Decompress.java
Program 11.27
applications/Decompress.java
Chapter 12 Programs
Program 12.1
dataStructures/BinaryTreeNode.java
Program 12.2
dataStructures/BinaryTreeTraversal.java
Program 12.3
dataStructures/BinaryTreeTraversal.java
Program 12.4
dataStructures/BinaryTreeTraversal.java
Program 12.5
dataStructures/BinaryTreeTraversal.java
Program 12.6
applications/InfixForm.java
Program 12.7
dataStructures/BinaryTreeTraversal.java
Program 12.8
dataStructures/BinaryTree.java
Program 12.9
dataStructures/LinkedBinaryTree.java
Program 12.10
dataStructures/LinkedBinaryTree.java
Program 12.11
dataStructures/LinkedBinaryTree.java
Program 12.12
dataStructures/LinkedBinaryTree.java
Program 12.13
applications/PlaceBoosters.java
Program 12.14
applications/PlaceBoosters.java
Program 12.15
applications/UnionFindWithTrees.java
Program 12.16
applications/FastUnionFind.java
Program 12.17
applications/FastUnionFind.java
Program 12.18
applications/FastUnionFind.java
Chapter 13 Programs
Program 13.1
dataStructures/MaxPriorityQueue.java
Program 13.2
dataStructures/MaxHeap.java
Program 13.3
dataStructures/MaxHeap.java
Program 13.4
dataStructures/MaxHeap.java
Program 13.5
dataStructures/MaxHBLT.java
Program 13.6
dataStructures/MaxHBLT.java
Program 13.7
dataStructures/MaxHBLT.java
Program 13.8
applications/HeapSort.java
Program 13.9
applications/LPTSchedule.java
Program 13.10
applications/HuffmanTree.java
Chapter 14 Programs
Program 14.1
dataStructures/WinnerTree.java
Program 14.2
dataStructures/ExtendedCWTree.java
Program 14.3
applications/FirstFit.java
Chapter 15 Programs
Program 15.1
dataStructures/BSTree.java
Program 15.2
dataStructures/IndexedBSTree.java
Program 15.3
dataStructures/BinarySearchTree.java
Program 15.4
dataStructures/BinarySearchTree.java
Program 15.5
dataStructures/BinarySearchTree.java
Program 15.6
dataStructures/BinarySearchTree.java
Program 15.7
dataStructures/DBinarySearchTree.java
Program 15.8
applications/SimpleHistogramming.java
Program 15.9
applications/TreeHistogramming.java
Program 15.10
applications/TreeHistogramming.java
Program 15.11
dataStructures/DBinarySearchTreeWithGE.java
Program 15.12
applications/BestFit.java
Program 15.13
applications/CrossingDistribution.java
Chapter 16 Programs
Chapter 16 has no programs.
Chapter 17 Programs
Program 17.1
dataStructures/Graph.java
Program 17.2
dataStructures/AdjacencyWDigraph.java
Program 17.3
dataStructures/LinkedDigraph.java
Program 17.4
dataStructures/LinkedDigraph.java
Program 17.5
dataStructures/Graph.java
Program 17.6
dataStructures/AdjacencyDigraph.java
Program 17.7
dataStructures/LinkedDigraph.java
Program 17.8
dataStructures/Graph.java
Program 17.9
dataStructures/Graph.java
Program 17.10
dataStructures/Graph.java
Program 17.11
dataStructures/Graph.java
Program 17.12
dataStructures/Graph.java
Program 17.13
dataStructures/Graph.java
Chapter 18 Programs
Program 18.1
applications/GreedyLoading.java
Program 18.2
dataStructures/Graph.java
Program 18.3
dataStructures/AdjacencyWDigraph.java
Program 18.4
dataStructures/Graph.java
Chapter 19 Programs
Program 19.1
applications/MinMax3.java
Program 19.2
applications/Chessboard.java
Program 19.3
applications/MergeSort.java
Program 19.4
applications/MergeSort.java
Program 19.5
applications/MergeSort.java
Program 19.6
applications/QuickSort.java
Program 19.7
applications/QuickSort.java
Program 19.8
applications/Select.java
Program 19.9
applications/Select.java
Program 19.10
applications/ClosestPoints.java
Program 19.11
applications/ClosestPoints.java
Program 19.12
applications/ClosestPoints.java
Chapter 20 Programs
Program 20.1
applications/RecursiveDPKnapsack.java
Program 20.2
applications/RecursiveDPKnapsack3.java
Program 20.3
applications/IterativeDPKnapsack.java
Program 20.4
applications/IterativeDPKnapsack.java
Program 20.5
applications/RecursiveDPMatrixChain1.java
Program 20.6
applications/RecursiveDPMatrixChain2.java
Program 20.7
applications/IterativeDPMatrixChain.java
Program 20.8
dataStructures/AdjacencyWDigraph.java
Program 20.9
dataStructures/AdjacencyWDigraph.java
Program 20.10
dataStructures/Graph.java
Program 20.11
applications/IterativeDPNoncrossingSubset.java
Program 20.12
applications/IterativeDPNoncrossingSubset.java
Chapter 21 Programs
Program 21.1
applications/RecursiveBTLoading1.java
Program 21.2
applications/RecursiveBTLoading2.java
Program 21.3
applications/RecursiveBTLoading3.java
Program 21.4
applications/RecursiveBTLoading3.java
Program 21.5
applications/IterativeBTLoading.java
Program 21.6
applications/RecursiveBTKnapsack.java
Program 21.7
applications/RecursiveBTKnapsack.java
Program 21.8
applications/RecursiveBTKnapsack.java
Program 21.9
applications/RecursiveBTKnapsack.java
Program 21.10
dataStructures/AdjacencyGraph.java
Program 21.11
dataStructures/AdjacencyGraph.java
Program 21.12
dataStructures/AdjacencyWDigraph.java
Program 21.13
dataStructures/AdjacencyWDigraph.java
Program 21.14
applications/RecursiveBTBoard.java
Program 21.15
applications/RecursiveBTBoard.java
Chapter 22 Programs
Program 22.1
applications/FIFOBBLoading1.java
Program 22.2
applications/FIFOBBLoading2.java
Program 22.3
applications/FIFOBBLoading3.java
Program 22.4
applications/MaxProfitBBLoading.java
Program 22.5
applications/MaxProfitBBLoading.java
Program 22.6
applications/MaxProfitBBKnapsack.java
Program 22.7
dataStructures/AdjacencyGraph.java
Program 22.8
dataStructures/AdjacencyWDigraph.java
Program 22.9
applications/LeastCostBBBoard.java