Table Of ContentHandbook of
Data Structures
and Applications
Second Edition
Handbook of
Data Structures
and Applications
Second Edition
Edited by
Dinesh P. Mehta
Sartaj Sahni
MATLAB(cid:2)RisatrademarkofTheMathWorks,Inc.andisusedwithpermission.TheMathWorksdoesnotwarranttheaccuracyofthetextor
exercisesinthisbook.Thisbook’suseordiscussionofMATLAB(cid:2)Rsoftwareorrelatedproductsdoesnotconstituteendorsementorsponsorship
byTheMathWorksofaparticularpedagogicalapproachorparticularuseoftheMATLAB(cid:2)Rsoftware.
CRCPress
Taylor&FrancisGroup
6000BrokenSoundParkwayNW,Suite300
BocaRaton,FL33487-2742
(cid:2)c 2018byTaylor&FrancisGroup,LLC
CRCPressisanimprintofTaylor&FrancisGroup,anInformabusiness
NoclaimtooriginalU.S.Governmentworks
Printedonacid-freepaper
InternationalStandardBookNumber-13:978-1-4987-0185-3(Hardback)
Thisbookcontainsinformationobtainedfromauthenticandhighlyregardedsources.Reasonableeffortshavebeenmadetopublishreliabledata
andinformation,buttheauthorandpublishercannotassumeresponsibilityforthevalidityofallmaterialsortheconsequencesoftheiruse.The
authorsandpublishershaveattemptedtotracethecopyrightholdersofallmaterialreproducedinthispublicationandapologizetocopyright
holdersifpermissiontopublishinthisformhasnotbeenobtained.Ifanycopyrightmaterialhasnotbeenacknowledgedpleasewriteandletus
knowsowemayrectifyinanyfuturereprint.
ExceptaspermittedunderU.S.CopyrightLaw, nopart ofthisbookmaybereprinted, reproduced,transmitted,orutilizedinanyformby
anyelectronic,mechanical,orothermeans,nowknownorhereafterinvented,includingphotocopying,microfilming,andrecording,orinany
informationstorageorretrievalsystem,withoutwrittenpermissionfromthepublishers.
Forpermissiontophotocopyorusematerialelectronicallyfromthiswork,pleaseaccesswww.copyright.com(http://www.copyright.com/)or
contacttheCopyrightClearanceCenter,Inc.(CCC),222RosewoodDrive,Danvers,MA01923,978-750-8400.CCCisanot-for-profitorgani-
zationthatprovideslicensesandregistrationforavarietyofusers.FororganizationsthathavebeengrantedaphotocopylicensebytheCCC,a
separatesystemofpaymenthasbeenarranged.
TrademarkNotice:Productorcorporatenamesmaybetrademarksorregisteredtrademarks,andareusedonlyforidentificationandexplanation
withoutintenttoinfringe.
LibraryofCongressCataloging-in-PublicationData
Names:Mehta,DineshP.,editor.|Sahni,Sartaj,editor.
Title:Handbookofdatastructuresandapplications/editedbyDineshP.MehtaandSartajSahni.
Othertitles:Datastructuresandapplications
Description:Secondedition.|BocaRaton,Florida:CRCPress,[2018]|Includesbibliographicalreferencesandindex.
Identifiers:LCCN2017041375|ISBN9781498701853(hardback)|ISBN9781315119335(e-book)
Subjects:LCSH:Systemdesign--Handbooks,manuals,etc.|Datastructures(Computerscience)--Handbooks,manuals,etc.
Classification:LCCQA76.9.S88H3632005|DDC005.7/3--dc23LCrecordavailableathttps://lccn.loc.gov/2017041375
VisittheTaylor&FrancisWebsiteat
http://www.taylorandfrancis.com
andtheCRCPressWebsiteat
http://www.crcpress.com
Toourwives,
UshaMehtaandNeetaSahni
Contents
PrefacetotheSecondEdition.....................................................................................................................................xi
PrefacetotheFirstEdition........................................................................................................................................xiii
Editors..........................................................................................................................................................................xv
Contributors..............................................................................................................................................................xvii
PART I Fundamentals
1 AnalysisofAlgorithms.......................................................................................................................................3
SartajSahni
2 BasicStructures.................................................................................................................................................23
DineshP.Mehta
3 Trees...................................................................................................................................................................35
DineshP.Mehta
4 Graphs................................................................................................................................................................49
NarsinghDeo
PART II Priority Queues
5 LeftistTrees........................................................................................................................................................69
SartajSahni
6 SkewHeaps........................................................................................................................................................77
C.PanduRangan
7 Binomial,Fibonacci,andPairingHeaps.........................................................................................................85
MichaelL.Fredman
8 Double-EndedPriorityQueues.......................................................................................................................97
SartajSahni
PART III Dictionary Structures
9 HashTables......................................................................................................................................................117
PatMorin
10 BloomFilterandItsVariants.........................................................................................................................131
ShigangChen
11 BalancedBinarySearchTrees........................................................................................................................151
ArneAndersson,RolfFagerberg,andKimS.Larsen
12 FingerSearchTrees.........................................................................................................................................171
GerthStøltingBrodal
vii
viii Contents
13 Splaytrees........................................................................................................................................................179
SanjeevSaxena
14 RandomizedDictionaryStructures...............................................................................................................197
C.PanduRangan
15 TreeswithMinWeightedPathLength..........................................................................................................215
WojciechRytter
16 BTrees..............................................................................................................................................................233
DonghuiZhang
PART IV Multidimensional/Spatial Structures
17 MultidimensionalSpatialDataStructures....................................................................................................251
HananSamet
18 PlanarStraightLineGraphs...........................................................................................................................277
Siu-WingCheng
19 Interval,Segment,Range,PrioritySearchTrees..........................................................................................291
D.T.LeeandHung-IYu
20 QuadtreesandOcttrees..................................................................................................................................309
SrinivasAluru
21 BSPTrees..........................................................................................................................................................329
BruceF.Naylor
22 R-Trees.............................................................................................................................................................343
ScottLeuteneggerandMarioA.Lopez
23 ManagingSpatio-TemporalData..................................................................................................................359
SumeetDuaandS.S.Iyengar
24 KineticDataStructures..................................................................................................................................377
LeonidasGuibas
25 OnlineDictionaryStructures.........................................................................................................................389
TeofiloF.Gonzalez
26 Cuttings............................................................................................................................................................397
BernardChazelle
27 ApproximateGeomQueryStructures..........................................................................................................405
ChristianA.DuncanandMichaelT.Goodrich
28 GeometricandSpatialDataStructuresinExternalMemory.....................................................................419
JeffreyScottVitter
PART V Miscellaneous
29 Tries..................................................................................................................................................................445
SartajSahni
30 SuffixTreesandSuffixArrays........................................................................................................................461
SrinivasAluru
31 StringSearching..............................................................................................................................................477
AndrzejEhrenfeuchtandRossM.McConnell
Contents ix
32 BinaryDecisionDiagrams.............................................................................................................................495
Shin-ichiMinato
33 PersistentDataStructures..............................................................................................................................511
HaimKaplan
34 DataStructuresforSets..................................................................................................................................529
RajeevRaman
35 CacheObliviousDataStructures...................................................................................................................545
LarsArge,GerthStøltingBrodal,andRolfFagerberg
36 DynamicTrees.................................................................................................................................................567
CamilDemetrescu,IreneFinocchi,andGiuseppeF.Italiano
37 DynamicGraphs.............................................................................................................................................581
CamilDemetrescu,IreneFinocchi,andGiuseppeF.Italiano
38 SuccinctRepresentationofDataStructures.................................................................................................595
J.IanMunroandS.SrinivasaRao
39 RandomizedGraphDataStructures.............................................................................................................611
SurenderBaswanaandSandeepSen
40 SearchingandPriorityQueuesino(logn)Time.........................................................................................627
ArneAndersson
PART VI Data Structures in Langs and Libraries
41 FunctionalDataStructures............................................................................................................................639
ChrisOkasaki
42 LEDA,aPlatformforCombinatorialandGeometricComputing.............................................................653
StefanNaeher
43 DataStructuresinC++...................................................................................................................................667
MarkAllenWeiss
44 DataStructuresinJDSL..................................................................................................................................679
MichaelT.Goodrich,RobertoTamassia,andLucaVismara
45 DataStructureVisualization..........................................................................................................................697
JohnStasko
46 DrawingTrees..................................................................................................................................................707
SebastianLeipert
47 DrawingGraphs..............................................................................................................................................723
PeterEadesandSeok-HeeHong
48 ConcurrentDataStructures...........................................................................................................................741
MarkMoirandNirShavit
PART VII Applications
49 IPRouterTables..............................................................................................................................................765
SartajSahni,KunSukKim,andHaibinLu
50 MultidimensionalPacketClassification........................................................................................................783
PankajGupta
Description:The Handbook of Data Structures and Applications was first published over a decade ago. This second edition aims to update the first by focusing on areas of research in data structures that have seen significant progress. While the discipline of data structures has not matured as rapidly as other ar