Data Structures, Algorithms, & Applications in C++, 2nd Edition
Sartaj Sahni
Index of Text Programs
Most of the files with a .h extension have a corresponding .cpp file that contains a test program.
Sample input data (where appropriate) and the generated output may be found in
correspondingly named files with a .input and .output extension.
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 1 Programs
Program 1.1
abcInt.cpp
Program 1.2
abcFloat.cpp
Program 1.3
abcTemplate.cpp
Program 1.4
abcRef.cpp
Program 1.5
abcConstRef.cpp
Program 1.6
abcGeneral.cpp
Program 1.7
noSwap.cpp
Program 1.8
abcExceptionChar.cpp
Program 1.9
abcExceptionChar.cpp
Program 1.10
make2dArray.h
Program 1.11
make2dArrayNoCatch.h
Program 1.12
delete2dArray.h
Program 1.13
currency.h
Program 1.14
currency.h
Program 1.15
currency.h
Program 1.16
currency.h
Program 1.17
currency.h
Program 1.18
currency.cpp
Program 1.19
currencyNew.h
Program 1.20
currencyNew.h
Program 1.21
currencyNew.h
Program 1.22
currencyOverload.h
Program 1.23
currencyOverload.h
Program 1.24
currencyOverload.cpp
Program 1.25
currencyFriend.h
Program 1.26
myExceptions.h
Program 1.27
abcException.cpp
Program 1.28
abcException.cpp
Program 1.29
factorial.cpp
Program 1.30
sum.cpp
Program 1.31
rSum.cpp
Program 1.32
permutations.cpp
Program 1.33
sumSTL.cpp
Program 1.34
productSTL.cpp
Program 1.35
permutationsSTL.cpp
Program 1.36
quadraticRoots.cpp
Program 1.37
indexOfMax.cpp
Chapter 2 Programs
Program 2.1
sequentialSearch1.cpp
Program 2.2
rSequentialSearch.cpp
Program 2.3
ployEval.cpp
Program 2.4
horner.cpp
Program 2.5
rank.cpp
Program 2.6
rankSort1.cpp
Program 2.7
selectionSort.cpp
Program 2.8
bubbleSort.cpp
Program 2.9
bubbleSort.cpp
Program 2.10
insert.cpp
Program 2.11
rankSort2.cpp
Program 2.12
earlySelectionSort.cpp
Program 2.13
earlyBubbleSort.cpp
Program 2.14
insertionSort1.cpp
Program 2.15
insertionSort2.cpp
Program 2.16
sumCount1.cpp
Program 2.17
sumCount2.cpp
Program 2.18
rSumCount.cpp
Program 2.19
matrixTranspose.cpp
Program 2.20
inef.cpp
Program 2.21
matrixAdd.cpp
Program 2.22
matrixMultiply1.cpp
Program 2.23
matrixMultiply2.cpp
Program 2.24
minMax1.cpp
Program 2.25
minMax2.cpp
Program 2.26
sequentialSearch2.cpp
Program 2.27
d.cpp
Chapter 3 Programs
Program 3.1
binarySearch.cpp
Chapter 4 Programs
Program 4.1
timeInsertionSort1.cpp
Program 4.2
timeInsertionSort2.cpp
Program 4.3
timeInsertionSort3.cpp
Program 4.4
matrixMultiply3.cpp
Chapter 5 Programs
Program 5.1
linearList.h
Program 5.2
changeLength1D.h
Program 5.3
arrayList.h
Program 5.4
arrayList.h
Program 5.5
arrayList.h
Program 5.6
arrayList.h
Program 5.7
arrayList.h
Program 5.8
arrayList.h
Program 5.9
arrayIterator.h
Program 5.11
arrayListWithIterator.h
Program 5.12
vectorList.h
Program 5.13
vectorList.h
Program 5.14
vectorList.h
Chapter 6 Programs
Program 6.1
chainNode.h
Program 6.2
chain.h
Program 6.3
chain.h
Program 6.4
chain.h
Program 6.5
chain.h
Program 6.6
chain.h
Program 6.7
chain.h
Program 6.8
chain.h
Program 6.9
chain.h
Program 6.10
chainWithIterator.h
Program 6.11
extendedLinearList.h
Program 6.12
extendedChain.h
Program 6.13
circularListWithHeader.h
Program 6.14
studentRecord1.h
Program 6.15
studentRecord2.h
Program 6.16
studentRecord3.h
Program 6.17
binsort1.h
Program 6.18
chainWithBinSort.h, binsort2.cpp
Program 6.19
unionFindWithArrays.cpp
Program 6.20
equivNode.h
Program 6.21
unionFindWithChains.cpp
Chapter 7 Programs
Program 8.1
irregularArray.cpp
Program 7.2
matrix.h
Program 7.3
matrix.h
Program 7.4
matrix.h
Program 7.5
matrix.h
Program 7.6
matrix.h
Program 7.7
matrix.h
Program 7.8
diagonalMatrix.h
Program 7.9
diagonalMatrix.h
Program 7.10
diagonalMatrix.h
Program 7.11
triDiagonalMatrix.h
Program 7.12
lowerTriangularMatrix.h
Program 7.13
sparseMatrix.h
Program 7.14
sparseMatrix.h
Program 7.15
sparseMatrix.h
Program 7.16
sparseMatrix.h
Program 7.17
sparseMatrix.h
Program 7.18
linkedMatrix.h
Chapter 8 Programs
Program 8.1
stack.h
Program 8.2
derivedArrayStack.h
Program 8.3
derivedArrayStackWithCatch.h
Program 8.4
arrayStack.h
Program 8.5
linkedStack.h
Program 8.6
parenthesisMatching.cpp
Program 8.7
hanoiRecursive.cpp
Program 8.8
hanoiWithStacks.cpp
Program 8.9
railroadWithStacks.cpp
Program 8.10
railroadWithStacks.cpp
Program 8.11
railroadWithStacks.cpp
Program 8.12
railroadWithStacks.cpp
Program 8.13
switchBox.cpp
Program 8.14
equivalenceClasses.cpp
Program 8.15
maze.cpp
Chapter 9 Programs
Program 9.1
queue.h
Program 9.2
arrayQueue.h
Program 9.3
arrayQueue.h
Program 9.4
arrayQueue.h
Program 9.5
linkedQueue.h
Program 9.6
railroadWithQueues.cpp
Program 9.7
railroadWithQueues.cpp
Program 9.8
wireRouter.cpp
Program 9.9
componentLabeling.cpp
Program 9.10
machineShopSimulatorcpph
Program 9.11
task.h
Program 9.12
job.h
Program 9.13
machine.h
Program 9.14
eventList.h
Program 9.15
machineShopSimulator.cpp
Program 9.16
machineShopSimulator.cpp
Program 9.17
machineShopSimulator.cpp
Program 9.18
machineShopSimulator.cpp
Program 9.19
machineShopSimulator.cpp
Program 9.20
machineShopSimulator.cpp
Program 9.21
machineShopSimulator.cpp
Chapter 10 Programs
Program 10.1
dictionary.h
Program 10.2
sortedChain.h
Program 10.3
sortedChain.h
Program 10.4
sortedChain.h
Program 10.5
skipNode.h
Program 10.6
skipList.h
Program 10.7
skipList.h
Program 10.8
skipList.h
Program 10.9
skipList.h
Program 10.10
skipList.h
Program 10.11
skipList.h
Program 10.12
skipList.h
Program 10.13
threeToLong.cpp
Program 10.14
stringToInt.cpp
Program 10.15
hash.h
Program 10.16
hashTable.h
Program 10.17
hashTable.h
Program 10.18
hashTable.h
Program 10.19
hashTable.h
Program 10.20
hashChains.h
Program 10.21
compress.cpp
Program 10.22
compress.cpp
Program 10.23
compress.cpp
Program 10.24
compress.cpp
Program 10.25
decompress.cpp
Program 10.26
decompress.cpp
Program 10.27
decompress.cpp
Program 10.28
decompress.cpp
Chapter 11 Programs
Program 11.1
binaryTreeNode.h
Program 11.2
binaryTreeTraversals.cpp
Program 11.3
binaryTreeTraversals.cpp
Program 11.4
binaryTreeTraversals.cpp
Program 11.5
binaryTreeTraversals.cpp
Program 11.6
infix.cpp
Program 11.7
binaryTreeTraversals.cpp
Program 11.8
binaryTree.h
Program 11.9
linkedBinaryTree.h
Program 11.10
linkedBinaryTree.h
Program 11.11
linkedBinaryTree.h
Program 11.12
booster.h
Program 11.13
booster.cpp
Program 11.14
unionFindWithTrees.cpp
Program 11.15
unionFindNode.h
Program 11.16
unionFindWithWeightingRule.cpp
Program 11.17
unionFindWithCompaction.cpp, fastUnionFind.h
Chapter 12 Programs
Program 12.1
maxPriorityQueue.h
Program 12.2
maxHeap.h
Program 12.3
maxHeap.h
Program 12.4
maxHeap.h
Program 12.5
maxHblt.h
Program 12.6
maxHblt.h
Program 12.7
maxHblt.h
Program 12.8
heapSort.h
Program 12.9
lptSchedule.cpp
Program 12.10
huffmanTree.cpp
Chapter 13 Programs
Program 13.1
winnerTree.h
Program 13.2
firstFit.cpp
Chapter 14 Programs
Program 14.1
bsTree.h
Program 14.2
indexedBSTree.h
Program 14.3
binarySearchTree.h
Program 14.4
binarySearchTree.h
Program 14.5
binarySearchTree.h
Program 14.6
binarySearchTree.h
Program 14.7
dBinarySearchTree.h
Program 14.8
histogram.cpp
Program 14.9
treeHistogram.cpp
Program 14.10
dBinarySearchTreeWithGE.h
Program 14.11
bestFit.cpp
Program 14.12
crossings.cpp
Chapter 15 Programs
Chapter 15 has no programs.
Chapter 16 Programs
Program 16.1
graph.h
Program 16.2
adjacencyWDigraph.h
Program 16.3
linkedDigraph.h
Program 16.4
graph.h
Program 16.5
adjacencyWDigraph.h
Program 16.6
linkedDigraph.h
Program 16.7
graph.h
Program 16.8
graph.h
Program 16.9
graph.h
Program 16.10
graph.h
Program 16.11
graph.h
Chapter 17 Programs
Program 17.1
greedyLoading.h
Program 17.2
graph.h
Program 17.3
adjacencyWDigraph.h
Program 17.4
graph.h
Chapter 18 Programs
Program 18.1
minMax3.cpp
Program 18.2
tileBoard.cpp
Program 18.3
mergeSort.h
Program 18.4
mergeSort.h
Program 18.5
mergeSort.h
Program 18.6
quickSort.h
Program 18.7
quickSort.h
Program 18.8
select.cpp
Program 18.9
select.cpp
Program 18.10
closestPoints.cpp
Program 18.11
closestPoints.cpp
Program 18.12
closestPoints.cpp
Chapter 19 Programs
Program 19.1
recursiveDPKnapsack.cpp
Program 19.2
noRecomputationDPKnapsack.cpp
Program 19.3
iterativeDPKnapsack.cpp
Program 19.4
iterativeDPKnapsack.cpp
Program 19.5
recursiveDPMatrixChain.cpp
Program 19.6
noRecomputationDPMatrixChain.cpp
Program 19.7
iterativeDPMatrixChain.cpp
Program 19.8
adjacencyWDigraph.cpp
Program 19.9
adjacencyWDigraph.cpp
Program 19.10
graph.cpp
Program 19.11
noncrossingSubset.cpp
Program 19.12
noncrossingSubset.cpp
Chapter 20 Programs
Program 20.1
recursiveBTLoading1.cpp
Program 20.2
recursiveBTLoading2.cpp
Program 20.3
recursiveBTLoading3.cpp
Program 20.4
recursiveBTLoading3.cpp
Program 20.5
iterativeBTLoading.cpp
Program 20.6
recursiveBTKnapsack.cpp
Program 20.7
recursiveBTKnapsack.cpp
Program 20.8
recursiveBTKnapsack.cpp
Program 20.9
recursiveBTKnapsack.cpp
Program 20.10
adjacencyGraph.h
Program 20.11
adjacencyGraph.h
Program 20.12
adjacencyWDigraph.h
Program 20.13
adjacencyWDigraph.h
Program 20.14
recursiveBTBoard.cpp
Program 20.15
recursiveBTBoard.cpp
Chapter 21 Programs
Program 21.1
fifoBBLoading1.cpp
Program 21.2
fifoBBLoading2.cpp
Program 21.3
fifoBBLoading3.cpp
Program 21.4
maxProfitBBLoading.cpp
Program 21.5
maxProfitBBLoading.cpp
Program 21.6
maxProfitBBKnapsack.cpp
Program 21.7
adjacencyGraph.h
Program 21.8
adjacencyWDigraph.h
Program 21.9
leastCostBBBoard.cpp