CHAPTERONEBASICCONCEPTSPRACTICEYOURSELFFORHEAVENSSAKEINLITTLETHINGSANDTHENCEPROCEEDTOGREATEREPICTETUSDISCOURSESIVICMANYPERSONSWHOARENOTCONVERSANTWITHMATHEMATICALSTUDIESIMAGINETHATBECAUSETHEBUSINESSOFBABBAGESANALYTICALENGINEISTOGIVEITSRESULTSINNUMERICALNOTATIONTHENATUREOFITSPROCESSESMUSTCONSEQUENTLYBEARITHMETICALANDNUMERICALRATHERTHANALGEBRAICALANDANALYTICALTHISISANERRORTHEENGINECANARRANGEANDCOMBINEITSNUMERICALQUANTITIESEXACTLYASIFTHEYWERELETTERSORANYOTHERGENERALSYMBOLSANDINFACTITMIGHTBRINGOUTITSRESULTSINALGEBRAICALNOTATIONWEREPROVISIONSMADEACCORDINGLYAUGUSTAADACOUNTESSOFLOVELACEALGORITHMSTHENOTIONOFANALGORITHMISBASICTOALLOFCOMPUTERPROGRAMMINGSOWESHOULDBEGINWITHACAREFULANALYSISOFTHISCONCEPTALGORITHMALGORITHMTHEWORDETYMOLOGYDICTIONARYTHEWORDALGORITHMITSELFISQUITEINTERESTINGATFIRSTGLANCEITMAYLOOKASTHOUGHSOMEONEINTENDEDTOWRITELOGARITHMBUTJUMBLEDUPTHEFIRSTFOURLETTERSTHEWORDDIDNOTAPPEARINWEBSTERSNEWWORLDDICTIONARYASLATEASWEFINDONLYTHEOLDERFORMALGORISMWITHITSANCIENTMEANINGTHEPROCESSOFDOINGARITHMETICUSINGARABICNUMERALSDURINGTHEMIDDLEAGESABACISTSCOMPUTEDONTHEABACUSANDALGORISTSCOMPUTEDBYALGORISMBYTHETIMEOFTHERENAISSANCETHEORIGINOFTHISWORDWASINDOUBTANDEARLYLINGUISTSATTEMPTEDTOGUESSATITSDERIVATIONBYMAKINGCOMBINATIONSLIKEALGIROSPAINFULARITHMOSNUMBEROTHERSSAIDNOTHEWORDCOMESFROMKINGALGOROFCASTILEFINALLYHISTORIANSOFMATHEMATICSFOUNDTHETRUEORIGINOFTHEWORDALGORISMITCOMESFROMTHENAMEOFAFAMOUSPERSIANTEXTBOOKAUTHORABUABDALLAHMUHAMMADIBNMUSAALKHWARIZMCLITERALLYFATHEROFABDULLAHMOHAMMEDSONOFMOSESNATIVEOFKHWARIZMTHEARALSEAINCENTRALASIAWASONCEKNOWNASLAKEKHWARIZMANDTHEKHWARIZMREGIONISLOCATEDINTHEAMURIVERBASINJUSTSOUTHOFTHATSEAALKHWARIZMWROTETHECELEBRATEDARABICTEXTKITABALJABRWALMUQABALARULESOFRESTORINGANDEQUATINGANOTHERWORDALGEBRASTEMSFROMTHETITLEOFTHATBOOKWHICHWASASYSTEMATICSTUDYOFTHESOLUTIONOFLINEARANDQUADRATICEQUATIONSFORNOTESONALKHWARIZMSLIFEANDWORKSEEHZEMANEKLECTURENOTESINCOMPUTERSCIENCEGRADUALLYTHEFORMANDMEANINGOFALGORISMBECAMECORRUPTEDASEXPLAINEDBYTHEOXFORDENGLISHDICTIONARYTHEWORDPASSEDTHROUGHMANYPSEUDOETYMOLOGICALPERVERSIONSINCLUDINGARECENTALGORITHMINWHICHITISLEARNEDLYCONFUSEDWITHTHEGREEKROOTOFTHEWORDARITHMETICTHISCHANGEFROMALGORISMTOALGORITHMISNOTHARDTOUNDERSTANDINVIEWOFTHEFACTTHATPEOPLEHADFORGOTTENTHEORIGINALDERIVATIONOFTHEWORDANEARLYGERMANMATHEMATICALDICTIONARYVOLLSTANDIGESMATHEMATISCHESLEXICONLEIPZIGGAVETHEFOLLOWINGDEFINITIONFORTHEWORDALGORITHMUSUNDERTHISDESIGNATIONARECOMBINEDTHENOTIONSOFTHEFOURTYPESOFARITHMETICCALCULATIONSNAMELYADDITIONMULTIPLICATIONSUBTRACTIONANDDIVISIONTHELATINPHRASEALGORITHMUSINFINITESIMALISWASATTHATTIMEUSEDTODENOTEWAYSOFCALCULATIONWITHINFINITELYSMALLQUANTITIESASINVENTEDBYLEIBNIZDICTIONARYETYMOLOGYALGORITHMTHEWORDBYTHEWORDALGORITHMWASMOSTFREQUENTLYASSOCIATEDWITHEUCLIDSEUCLIDSALGORITHMGREATESTCOMMONDIVISORALGORITHMSFORMOFALGORITHMAPROCESSFORFINDINGTHEGREATESTCOMMONDIVISOROFTWONUMBERSTHATAPPEARSINEUCLIDSELEMENTSBOOKPROPOSITIONSANDITWILLBEINSTRUCTIVETOEXHIBITEUCLIDSALGORITHMHEREEEUCLIDSALGALGORITHMEEUCLIDSALGORITHMGIVENTWOPOSITIVEINTEGERSANDFINDTHEIRGREATESTCOMMONDIVISORTHATISTHELARGESTPOSITIVEINTEGERTHATEVENLYDIVIDESBOTHANDEFINDREMAINDERDIVIDEBYANDLETBETHEREMAINDERWEWILLHAVEEISITZEROIFTHEALGORITHMTERMINATESISTHEANSWEREREDUCESETANDGOBACKTOSTEPEOFCOURSEEUCLIDDIDNOTPRESENTHISALGORITHMINJUSTTHISMANNERTHEFORMATABOVEILLUSTRATESTHESTYLEINWHICHALLOFTHEALGORITHMSTHROUGHOUTTHISBOOKWILLBEPRESENTEDEACHALGORITHMWECONSIDERHASBEENGIVENANIDENTIFYINGLETTEREINTHEPRECEDINGEXAMPLEANDTHESTEPSOFTHEALGORITHMAREIDENTIFIEDBYTHISLETTERFOLLOWEDBYANUMBEREEETHECHAPTERSAREDIVIDEDINTONUMBEREDSECTIONSWITHINASECTIONTHEALGORITHMSAREDESIGNATEDBYLETTERONLYBUTWHENALGORITHMSAREREFERREDOTHERSECTIONSTHEAPPROPRIATESECTIONNUMBERISATTACHEDFOREXAMPLEWEARENOWINSECTIONWITHINTHISSECTIONEUCLIDSALGORITHMISCALLEDALGORITHMEWHILEINLATERSECTIONSITISREFERREDTOASALGORITHMEEACHSTEPOFANALGORITHMSUCHASSTEPEABOVEBEGINSWITHAPHRASEINBRACKETSTHATSUMSUPASBRIEFLYASPOSSIBLETHEPRINCIPALCONTENTOFTHATSTEPTHISPHRASEOFTENAPPEARSALSOINANACCOMPANYINGFLOWCHARTSUCHASFIGFIGSOTHATTHEREADERWILLBEABLETOPICTURETHEALGORITHMMOREREADILYFLOWCHARTFIGFIGFLOWCHARTFORALGORITHMEAFTERTHESUMMARIZINGPHRASECOMESADESCRIPTIONINWORDSANDSYMBOLSOFSOMEACTIONTOBEPERFORMEDORSOMEDECISIONTOBEMADEPARENTHESIZEDCOMMENTSLIKETHESECONDSENTENCECOMMENTSINSTEPEMAYALSOAPPEARCOMMENTSAREINCLUDEDASEXPLANATORYINFORMATIONABOUTTHATSTEPOFTENINDICATINGCERTAININVARIANTCHARACTERISTICSOFTHEVARIABLESORTHECURRENTGOALSTHEYDONOTSPECIFYACTIONSTHATBELONGTOTHEALGORITHMBUTAREMEANTONLYFORTHEREADERSBENEFITASPOSSIBLEAIDSTOCOMPREHENSIONCOMMENTSFLOWCHARTTHEARROWINSTEPEISTHEALLIMPORTANTREPLACEMENTOPERATIONSOMETIMESCALLEDASSIGNMENTORSUBSTITUTIONMEANSTHATTHEVALUEOFVARIABLEISTOBEREPLACEDBYTHECURRENTVALUEOFVARIABLEVARIABLEWHENALGORITHMEBEGINSTHEVALUESOFANDARETHEORIGINALLYGIVENNUMBERSBUTWHENITENDSTHOSEVARIABLESWILLHAVEINGENERALDIFFERENTVALUESANARROWISUSEDTODISTINGUISHTHEREPLACEMENTOPERATIONFROMTHEEQUALITYRELATIONWEWILLNOTSAYSETBUTWEWILLPERHAPSASKDOESTHESIGNDENOTESACONDITIONTHATCANBETESTEDTHESIGNDENOTESANACTIONTHATCANBEPERFORMEDTHEOPERATIONOFINCREASINGBYONEISDENOTEDBYREADISREPLACEDBYORGETSINGENERALVARIABLEFORMULAMEANSTHATTHEFORMULAISTOBECOMPUTEDUSINGTHEPRESENTVALUESOFANYVARIABLESAPPEARINGWITHINITTHENTHERESULTSHOULDREPLACETHEPREVIOUSVALUEOFTHEVARIABLEATTHELEFTOFTHEARROWPERSONSUNTRAINEDINCOMPUTERWORKSOMETIMESHAVEATENDENCYTOSAYBECOMESANDTOWRITEFORTHEOPERATIONOFINCREASINGBYONETHISSYMBOLISMCANONLYLEADTOCONFUSIONBECAUSEOFITSCONFLICTWITHSTANDARDCONVENTIONSANDITSHOULDBEAVOIDEDNOTICETHATTHEORDEROFACTIONSINSTEPEISIMPORTANTSETISQUITEDIFFERENTFROMSETSINCETHELATTERWOULDIMPLYTHATTHEPREVIOUSVALUEOFISLOSTBEFOREITCANBEUSEDTOSETTHUSTHELATTERSEQUENCEISEQUIVALENTTOSETWHENSEVERALVARIABLESAREALLTOBESETEQUALTOTHESAMEQUANTITYWECANUSEMULTIPLEARROWSFOREXAMPLEMAYBEWRITTENTOINTERCHANGETHEVALUESOFTWOVARIABLESWECANWRITEEXCHANGETHISACTIONCOULDALSOBESPECIFIEDBYUSINGANEWVARIABLEANDWRITINGSETANALGORITHMSTARTSATTHELOWESTNUMBEREDSTEPUSUALLYSTEPANDITPERFORMSSUBSEQUENTSTEPSINSEQUENTIALORDERUNLESSOTHERWISESPECIFIEDINSTEPETHEIMPERATIVEGOBACKTOSTEPESPECIFIESTHECOMPUTATIONALORDERINANOBVIOUSFASHIONINSTEPETHEACTIONISPREFACEDBYTHECONDITIONIFSOIFTHERESTOFTHATSENTENCEDOESNOTAPPLYANDNOACTIONISSPECIFIEDWEMIGHTHAVEADDEDTHEREDUNDANTSENTENCEIFGOONTOSTEPETHEHEAVYVERTICALLINEAPPEARINGATTHEENDOFSTEPEISUSEDTOINDICATETHEENDOFANALGORITHMANDTHERESUMPTIONOFTEXTWEHAVENOWDISCUSSEDVIRTUALLYALLTHENOTATIONALCONVENTIONSUSEDINTHEALGORITHMSOFTHISBOOKEXCEPTFORANOTATIONUSEDTODENOTESUBSCRIPTEDSUBSCRIPTEDORINDEXEDITEMSTHATAREELEMENTSOFANORDEREDARRAYSUPPOSEWEHAVEQUANTITIESINSTEADOFWRITINGFORTHETHELEMENTTHENOTATIONISOFTENUSEDSIMILARLYISSOMETIMESUSEDINPREFERENCETOADOUBLYSUBSCRIPTEDNOTATIONLIKESOMETIMESMULTIPLELETTERNAMESAREUSEDFORVARIABLESUSUALLYSETINCAPITALLETTERSTHUSTEMPMIGHTBETHENAMEOFAVARIABLEUSEDFORTEMPORARILYHOLDINGACOMPUTEDVALUEPRIMEKMIGHTDENOTETHEKTHPRIMENUMBERANDSOONALGORITHMSFORMOFSUBSCRIPTEDVARIABLESOMUCHFORTHEFORMOFALGORITHMSNOWLETUSPERFORMONEITSHOULDBEMENTIONEDIMMEDIATELYTHATTHEREADERSHOULDNOTEXPECTTOREADANALGORITHMASIFITWEREPARTOFANOVELALGORITHMSHOWTOREADSUCHANATTEMPTWOULDMAKEITPRETTYDIFFICULTTOUNDERSTANDWHATISGOINGONANALGORITHMMUSTBESEENTOBEBELIEVEDANDTHEBESTWAYTOLEARNWHATANALGORITHMISALLABOUTISTOTRYITTHEREADERSHOULDALWAYSTAKEPENCILANDPAPERANDWORKTHROUGHANEXAMPLEOFEACHALGORITHMIMMEDIATELYUPONENCOUNTERINGITINTHETEXTUSUALLYTHEOUTLINEOFAWORKEDEXAMPLEWILLBEGIVENORELSETHEREADERCANEASILYCONJUREONEUPTHISISASIMPLEANDPAINLESSWAYTOGAINANUNDERSTANDINGOFAGIVENALGORITHMANDALLOTHERAPPROACHESAREGENERALLYUNSUCCESSFULLETUSTHEREFOREWORKOUTANEXAMPLEOFALGORITHMESUPPOSETHATWEAREGIVENANDWEAREREADYTOBEGINATSTEPETHEREADERSHOULDNOWFOLLOWTHEALGORITHMASWEGIVEAPLAYBYPLAYACCOUNTDIVIDINGBYINTHISCASEISQUITESIMPLEALMOSTTOOSIMPLESINCETHEQUOTIENTISZEROANDTHEREMAINDERISTHUSWEPROCEEDTOSTEPEANDSINCENOACTIONOCCURSINSTEPEWESETITISCLEARTHATIFORIGINALLYTHEQUOTIENTINSTEPEWILLALWAYSBEZEROANDTHEALGORITHMWILLALWAYSPROCEEDTOINTERCHANGEANDINTHISRATHERCUMBERSOMEFASHIONWECOULDINSERTANEWSTEPATTHEBEGINNINGEENSUREIFEXCHANGETHISWOULDMAKENOESSENTIALCHANGEINTHEALGORITHMEXCEPTTOINCREASEITSLENGTHSLIGHTLYANDTODECREASEITSRUNNINGTIMEINABOUTONEHALFOFALLCASESBACKATSTEPEWEFINDTHATSOAGAINEISINAPPLICABLEANDATEWESETTHENEXTROUNDSETSANDULTIMATELYNEXTANDFINALLYWHENISDIVIDEDBYWESETSOATSTEPETHEALGORITHMTERMINATESTHEGREATESTCOMMONDIVISOROFANDISSOTHISISANALGORITHMTHEMODERNMEANINGFORALGORITHMISQUITESIMILARTOTHATOFRECIPEPROCESSMETHODTECHNIQUEPROCEDUREROUTINERIGMAROLEEXCEPTTHATTHEWORDALGORITHMCONNOTESSOMETHINGJUSTALITTLEDIFFERENTBESIDESMERELYBEINGAFINITESETOFRULESTHATGIVESASEQUENCEOFOPERATIONSFORSOLVINGASPECIFICTYPEOFPROBLEMANALGORITHMHASFIVEIMPORTANTFEATURESALGORITHMSPROPERTIESOFFINITENESSANALGORITHMMUSTALWAYSTERMINATEAFTERAFINITENUMBEROFSTEPSALGORITHMESATISFIESTHISCONDITIONBECAUSEAFTERSTEPETHEVALUEOFISLESSTHANSOIFTHEVALUEOFDECREASESTHENEXTTIMESTEPEISENCOUNTEREDADECREASINGSEQUENCEOFPOSITIVEINTEGERSMUSTEVENTUALLYTERMINATESOSTEPEISEXECUTEDONLYAFINITENUMBEROFTIMESFORANYGIVENORIGINALVALUEOFNOTEHOWEVERTHATTHENUMBEROFSTEPSCANBECOMEARBITRARILYLARGECERTAINHUGECHOICESOFANDWILLCAUSESTEPETOBEEXECUTEDMORETHANAMILLIONTIMESAPROCEDURETHATHASALLOFTHECHARACTERISTICSOFANALGORITHMEXCEPTTHATITPOSSIBLYLACKSFINITENESSMAYBECALLEDACOMPUTATIONALMETHODEUCLIDORIGINALLYPRESENTEDNOTONLYANALGORITHMFORTHEGREATESTCOMMONDIVISOROFNUMBERSBUTALSOAVERYSIMILARGEOMETRICALCONSTRUCTIONFORTHEGREATESTCOMMONMEASUREOFTHELENGTHSOFTWOLINESEGMENTSTHISISACOMPUTATIONALMETHODTHATDOESNOTTERMINATEIFTHEGIVENLENGTHSAREINCOMMENSURABLEANOTHEREXAMPLEOFANONTERMINATINGCOMPUTATIONALMETHODISAREACTIVEPROCESSWHICHCONTINUALLYINTERACTSWITHITSENVIRONMENTDEFINITENESSEACHSTEPOFANALGORITHMMUSTBEPRECISELYDEFINEDTHEACTIONSTOBECARRIEDOUTMUSTBERIGOROUSLYANDUNAMBIGUOUSLYSPECIFIEDFOREACHCASETHEALGORITHMSOFTHISBOOKWILLHOPEFULLYMEETTHISCRITERIONBUTTHEYARESPECIFIEDINTHEENGLISHLANGUAGESOTHEREISAPOSSIBILITYTHATTHEREADERMIGHTNOTUNDERSTANDEXACTLYWHATTHEAUTHORINTENDEDTOGETAROUNDTHISDIFFICULTYFORMALLYDEFINEDPROGRAMMINGLANGUAGESORCOMPUTERLANGUAGESAREDESIGNEDFORSPECIFYINGALGORITHMSINWHICHEVERYSTATEMENTHASAVERYDEFINITEMEANINGMANYOFTHEALGORITHMSOFTHISBOOKWILLBEGIVENBOTHINENGLISHANDINACOMPUTERLANGUAGEANEXPRESSIONOFACOMPUTATIONALMETHODINACOMPUTERLANGUAGEISCALLEDAPROGRAMINALGORITHMETHECRITERIONOFDEFINITENESSASAPPLIEDTOSTEPEMEANSTHATTHEREADERISSUPPOSEDTOUNDERSTANDEXACTLYWHATITMEANSTODIVIDEBYANDWHATTHEREMAINDERISINACTUALFACTTHEREISNOUNIVERSALAGREEMENTABOUTWHATTHISMEANSIFANDARENOTPOSITIVEINTEGERSWHATISTHEREMAINDEROFDIVIDEDBYWHATISTHEREMAINDEROFDIVIDEDBYZEROTHEREFORETHECRITERIONOFDEFINITENESSMEANSWEMUSTMAKESURETHATTHEVALUESOFANDAREALWAYSPOSITIVEINTEGERSWHENEVERSTEPEISTOBEEXECUTEDTHISISINITIALLYTRUEBYHYPOTHESISANDAFTERSTEPEISANONNEGATIVEINTEGERTHATMUSTBENONZEROIFWEGETTOSTEPESOANDAREINDEEDPOSITIVEINTEGERSASREQUIREDINPUTANALGORITHMHASZEROORMOREINPUTSQUANTITIESTHATAREGIVENTOITINITIALLYBEFORETHEALGORITHMBEGINSORDYNAMICALLYASTHEALGORITHMRUNSTHESEINPUTSARETAKENFROMSPECIFIEDSETSOFOBJECTSINALGORITHMEFOREXAMPLETHEREARETWOINPUTSNAMELYANDBOTHTAKENFROMTHESETOFPOSITIVEINTEGERSOUTPUTANALGORITHMHASONEORMOREOUTPUTSQUANTITIESTHATHAVEASPECIFIEDRELATIONTOTHEINPUTSALGORITHMEHASONEOUTPUTNAMELYINSTEPETHEGREATESTCOMMONDIVISOROFTHETWOINPUTSWECANEASILYPROVETHATTHISNUMBERISINDEEDTHEGREATESTCOMMONPROOFDIVISORASFOLLOWSAFTERSTEPEWEHAVEFORSOMEINTEGERIFTHENISAMULTIPLEOFANDCLEARLYINSUCHACASEISTHEGREATESTCOMMONDIVISOROFANDIFNOTETHATANYNUMBERTHATDIVIDESBOTHANDMUSTDIVIDEANDANYNUMBERTHATDIVIDESBOTHANDMUSTDIVIDESOTHESETOFCOMMONDIVISORSOFANDISTHESAMEASTHESETOFCOMMONDIVISORSOFANDINPARTICULARTHEGREATESTCOMMONDIVISOROFANDISTHESAMEASTHEGREATESTCOMMONDIVISOROFANDTHEREFORESTEPEDOESNOTCHANGETHEANSWERTOTHEORIGINALPROBLEMPROOFEFFECTIVENESSANALGORITHMISALSOGENERALLYEXPECTEDEFFECTIVEALGORITHMTOBEEFFECTIVEINTHESENSETHATITSOPERATIONSMUSTALLBESUFFICIENTLYBASICTHATTHEYCANINPRINCIPLEBEDONEEXACTLYANDINAFINITELENGTHOFTIMEBYSOMEONEUSINGPENCILANDPAPERALGORITHMEUSESONLYTHEOPERATIONSOFDIVIDINGONEPOSITIVEINTEGERBYANOTHERTESTINGIFANINTEGERISZEROANDSETTINGTHEVALUEOFONEVARIABLEEQUALTOTHEVALUEOFANOTHERTHOSEOPERATIONSAREEFFECTIVEBECAUSEINTEGERSCANBEREPRESENTEDONPAPERINAFINITEMANNERANDBECAUSETHEREISATLEASTONEMETHODTHEDIVISIONALGORITHMFORDIVIDINGONEBYANOTHERBUTTHESAMEOPERATIONSWOULDNOTBEEFFECTIVEIFTHEVALUESINVOLVEDWEREARBITRARYREALNUMBERSSPECIFIEDBYANINFINITEDECIMALEXPANSIONNORIFTHEVALUESWERETHELENGTHSOFPHYSICALLINESEGMENTSWHICHCANNOTBESPECIFIEDEXACTLYANOTHEREXAMPLEOFANONEFFECTIVESTEPISIFISTHELARGESTINTEGERFORWHICHTHEREISASOLUTIONTOTHEEQUATIONINPOSITIVEINTEGERSANDTHENGOTOSTEPESUCHASTATEMENTWOULDNOTBEANEFFECTIVEOPERATIONUNTILSOMEONESUCCESSFULLYCONSTRUCTSANALGORITHMTODETERMINEWHETHERISORISNOTTHELARGESTINTEGERWITHTHESTATEDPROPERTYLETUSTRYTOCOMPARETHECONCEPTOFANALGORITHMWITHTHATOFACOOKBOOKRECIPEARECIPEPRESUMABLYHASTHEQUALITIESOFFINITENESSALTHOUGHITISSAIDTHATAWATCHEDPOTNEVERBOILSINPUTEGGSFLOURETCANDOUTPUTTVDINNERETCBUTITNOTORIOUSLYLACKSDEFINITENESSTHEREAREFREQUENTCASESINWHICHACOOKSINSTRUCTIONSAREINDEFINITEADDADASHOFSALTADASHISDEFINEDTOBELESSTHANTEASPOONANDSALTISPERHAPSWELLENOUGHDEFINEDBUTWHERESHOULDTHESALTBEADDEDONTOPONTHESIDEINSTRUCTIONSLIKETOSSLIGHTLYUNTILMIXTUREISCRUMBLYORWARMCOGNACINSMALLSAUCEPANAREQUITEADEQUATEASEXPLANATIONSTOATRAINEDCHEFBUTANALGORITHMMUSTBESPECIFIEDTOSUCHADEGREETHATEVENACOMPUTERCANFOLLOWTHEDIRECTIONSNEVERTHELESSACOMPUTERPROGRAMMERCANLEARNMUCHBYSTUDYINGAGOODRECIPEBOOKTHEAUTHORHASINFACTBARELYRESISTEDTHETEMPTATIONTONAMETHEPRESENTVOLUMETHEPROGRAMMERSCOOKBOOKPERHAPSSOMEDAYHEWILLATTEMPTABOOKCALLEDALGORITHMSFORTHEKITCHENALGORITHMSPROPERTIESOFWESHOULDREMARKTHATTHEFINITENESSRESTRICTIONISNOTREALLYSTRONGENOUGHFORPRACTICALUSEAUSEFULALGORITHMSHOULDREQUIRENOTONLYAFINITENUMBEROFSTEPSBUTAVERYFINITENUMBERAREASONABLENUMBERFOREXAMPLETHEREISANALGORITHMTHATDETERMINESWHETHERORNOTTHEGAMEOFCHESSCANALWAYSBEWONBYWHITEIFNOMISTAKESAREMADESEEEXERCISESOLVEGAMETHATALGORITHMCANSOLVEAPROBLEMOFINTENSEINTERESTTOTHOUSANDSOFPEOPLEYETITISASAFEBETTHATWEWILLNEVERINOURLIFETIMESKNOWTHEANSWERTHEALGORITHMREQUIRESFANTASTICALLYLARGEAMOUNTSOFTIMEFORITSEXECUTIONEVENTHOUGHITISFINITESEEALSOCHAPTERFORADISCUSSIONOFSOMEFINITENUMBERSTHATARESOLARGEASTOACTUALLYBEBEYONDCOMPREHENSIONINPRACTICEWENOTONLYWANTALGORITHMSWEWANTALGORITHMSTHATAREGOODINSOMELOOSELYDEFINEDAESTHETICSENSEONECRITERIONOFGOODNESSISTHELENGTHOFTIMETAKENTOPERFORMTHEALGORITHMTHISCANBEEXPRESSEDINTERMSOFTHENUMBEROFTIMESEACHSTEPISEXECUTEDOTHERCRITERIAARETHEADAPTABILITYOFTHEALGORITHMTODIFFERENTKINDSOFCOMPUTERSITSSIMPLICITYANDELEGANCEETCWEOFTENAREFACEDWITHSEVERALALGORITHMSFORTHESAMEPROBLEMANDWEMUSTDECIDEWHICHISBESTTHISLEADSUSTOTHEEXTREMELYINTERESTINGANDALLIMPORTANTFIELDOFALGORITHMICANALYSISGIVENANALGORITHMWEWANTTODETERMINEITSPERFORMANCECHARACTERISTICSFOREXAMPLELETSCONSIDEREUCLIDSALGORITHMFROMTHISPOINTOFVIEWSUPPOSEWEASKTHEQUESTIONASSUMINGTHATTHEVALUEOFISKNOWNBUTISALLOWEDTORANGEOVERALLPOSITIVEINTEGERSWHATISTHEAVERAGENUMBEROFTIMESTHATSTEPEOFALGORITHMEWILLBEPERFORMEDINTHEFIRSTPLACEWENEEDTOCHECKTHATTHISQUESTIONDOESHAVEAMEANINGFULANSWERSINCEWEARETRYINGTOTAKEANAVERAGEOVERINFINITELYMANYCHOICESFORBUTITISEVIDENTTHATAFTERTHEFIRSTEXECUTIONOFSTEPEONLYTHEREMAINDEROFAFTERDIVISIONBYISRELEVANTSOALLWEMUSTDOTOFINDISTOTRYTHEALGORITHMFORCOUNTTHETOTALNUMBEROFTIMESSTEPEHASBEENEXECUTEDANDDIVIDEBYNOWTHEIMPORTANTQUESTIONISTODETERMINETHENATUREOFISITAPPROXIMATELYEQUALTOORFORINSTANCEASAMATTEROFFACTTHEANSWERTOTHISQUESTIONISANEXTREMELYDIFFICULTANDFASCINATINGMATHEMATICALPROBLEMNOTYETCOMPLETELYRESOLVEDWHICHISEXAMINEDINMOREDETAILINSECTIONFORLARGEVALUESOFITISPOSSIBLETOPROVETHATISAPPROXIMATELYTHATISPROPORTIONALTOTHENATURALLOGARITHMOFWITHACONSTANTOFPROPORTIONALITYTHATMIGHTNOTHAVEBEENGUESSEDOFFHANDFORFURTHERDETAILSABOUTEUCLIDSALGORITHMANDOTHERWAYSTOCALCULATETHEGREATESTCOMMONDIVISORSEESECTIONANALYSISOFALGORITHMSISTHENAMETHEAUTHORLIKESTOUSETODESCRIBEINVESTIGATIONSSUCHASTHISTHEGENERALIDEAISTOTAKEAPARTICULARALGORITHMANDTODETERMINEITSQUANTITATIVEBEHAVIOROCCASIONALLYWEALSOSTUDYWHETHERORNOTANALGORITHMISOPTIMALINSOMESENSETHETHEORYOFALGORITHMSISANOTHERSUBJECTENTIRELYDEALINGPRIMARILYWITHTHEEXISTENCEORNONEXISTENCEOFEFFECTIVEALGORITHMSTOCOMPUTEPARTICULARQUANTITIESSOFAROURDISCUSSIONOFALGORITHMSHASBEENRATHERIMPRECISEANDAMATHEMATICALLYORIENTEDREADERISJUSTIFIEDINTHINKINGTHATTHEPRECEDINGCOMMENTARYMAKESAVERYSHAKYFOUNDATIONONWHICHTOERECTANYTHEORYABOUTALGORITHMSWETHEREFORECLOSETHISSECTIONWITHABRIEFINDICATIONOFONEMETHODBYWHICHTHECONCEPTOFALGORITHMCANBEFIRMLYGROUNDEDINTERMSOFMATHEMATICALSETTHEORYLETUSFORMALLYDEFINEACOMPUTATIONALMETHODCOMPUTATIONALMETHODALGORITHMSSETTHEORETICDEFTOBEAQUADRUPLEINWHICHISASETANDARESUBSETSOFANDISAFUNCTIONFROMINTOITSELFFURTHERMORESHOULDLEAVEPOINTWISEFIXEDTHATISSHOULDEQUALFORALLELEMENTSOFTHEFOURQUANTITIESAREINTENDEDTOREPRESENTRESPECTIVELYTHESTATESOFTHECOMPUTATIONTHEINPUTTHEOUTPUTANDTHECOMPUTATIONALRULEEACHINPUTINTHESETDEFINESACOMPUTATIONALSEQUENCEASFOLLOWSTHECOMPUTATIONALSEQUENCEISSAIDTOTERMINATEINSTEPSIFISTHESMALLESTINTEGERFORWHICHISINANDINTHISCASEITISSAIDTOPRODUCETHEOUTPUTFROMNOTICETHATIFISINSOISBECAUSEINSUCHACASESOMECOMPUTATIONALSEQUENCESMAYNEVERTERMINATEANALGORITHMISACOMPUTATIONALMETHODTHATTERMINATESINFINITELYMANYSTEPSFORALLINALGORITHMEMAYFOREXAMPLEBEFORMALIZEDINTHESETERMSASFOLLOWSLETBETHESETOFALLSINGLETONSALLORDEREDPAIRSANDALLORDEREDQUADRUPLESANDWHEREANDAREPOSITIVEINTEGERSANDISANONNEGATIVEINTEGERLETBETHESUBSETOFALLPAIRSANDLETBETHESUBSETOFALLSINGLETONSLETBEDEFINEDASFOLLOWSTHECORRESPONDENCEBETWEENTHISNOTATIONANDALGORITHMEISEVIDENTTHISFORMULATIONOFTHECONCEPTOFANALGORITHMDOESNOTINCLUDETHERESTRICTIONOFEFFECTIVENESSMENTIONEDEARLIERFOREXAMPLEMIGHTDENOTEINFINITESEQUENCESTHATARENOTCOMPUTABLEBYPENCILANDPAPERMETHODSORMIGHTINVOLVEOPERATIONSTHATMEREMORTALSCANNOTALWAYSPERFORMIFWEWISHTORESTRICTTHENOTIONOFALGORITHMSOTHATONLYELEMENTARYOPERATIONSAREINVOLVEDWECANPLACERESTRICTIONSONANDFOREXAMPLEASFOLLOWSLETBEAFINITESETOFLETTERSANDLETBETHESETOFALLSTRINGSONTHESETOFALLORDEREDSEQUENCESWHEREANDISINFORTHEIDEAISTOENCODETHESTATESOFTHECOMPUTATIONSOTHATTHEYAREREPRESENTEDBYSTRINGSOFNOWLETBEANONNEGATIVEINTEGERANDLETBETHESETOFALLWHEREISINANDISANINTEGERLETBETHESUBSETOFWITHANDLETBETHESUBSETWITHIFANDARESTRINGSINWESAYTHATOCCURSINIFHASTHEFORMFORSOMESTRINGSANDINTOCOMPLETEOURDEFINITIONLETBEAFUNCTIONOFTHEFOLLOWINGTYPEDEFINEDBYTHESTRINGSANDTHEINTEGERSFOREVERYSTEPOFSUCHACOMPUTATIONALMETHODISCLEARLYEFFECTIVEANDEXPERIENCESHOWSCOMPUTATIONALMETHODTHATPATTERNMATCHINGRULESOFTHISKINDAREALSOPOWERFULENOUGHTODOANYTHINGWECANDOBYHANDTHEREAREMANYOTHERESSENTIALLYEQUIVALENTWAYSTOFORMULATETHECONCEPTOFANEFFECTIVECOMPUTATIONALMETHODFOREXAMPLEUSINGTURINGMACHINESTHEFORMULATIONABOVEISVIRTUALLYTHESAMEASTHATGIVENBYAAMARKOVINHISBOOKTHETHEORYOFALGORITHMSTRUDYMATINSTAKADNAUKLATERREVISEDANDENLARGEDBYNMNAGORNYMOSCOWNAUKAENGLISHEDITIONDORDRECHTKLUWEREXERCISESTHETEXTSHOWEDHOWTOINTERCHANGETHEVALUESOFVARIABLESANDUSINGTHEREPLACEMENTNOTATIONBYSETTINGSHOWHOWTHEVALUESOFFOURVARIABLESCANBEREARRANGEDTOBYASEQUENCEOFREPLACEMENTSINOTHERWORDSTHENEWVALUEOFISTOBETHEORIGINALVALUEOFETCTRYTOUSETHEMINIMUMNUMBEROFREPLACEMENTSPERMUTATIONINPLACEPROVETHATISALWAYSGREATERTHANATTHEBEGINNINGOFSTEPEEXCEPTPOSSIBLYTHEFIRSTTIMETHISSTEPOCCURSAFTERTHEFIRSTTIMETHEVALUESOFTHEVARIABLESANDARETHEPREVIOUSVALUESOFANDRESPECTIVELYANDAVOIDRENAMINGCHANGEALGORITHMEFORTHESAKEOFEFFICIENCYSOTHATALLTRIVIALREPLACEMENTOPERATIONSSUCHASAREAVOIDEDWRITETHISNEWALGORITHMINTHESTYLEOFALGORITHMEANDCALLITALGORITHMFALGORITHMFEUCLIDSALGORITHMGIVENTWOPOSITIVEINTEGERSANDFINDTHEIRGREATESTCOMMONDIVISORFFREMAINDERDIVIDEBYANDLETBETHEREMAINDERFISITZEROIFTHEALGORITHMTERMINATESWITHANSWERFREMAINDERDIVIDEBYANDLETBETHEREMAINDERFISITZEROIFTHEALGORITHMTERMINATESWITHANSWEROTHERWISEGOBACKTOSTEPFWHATISTHEGREATESTCOMMONDIVISOROFANDBYALGORITHMEANSWERSHOWTHATTHEPROCEDUREFORREADINGTHISSETOFBOOKSPROCEDUREFORREADINGALGORITHMSPROPERTIESTHATAPPEARSAFTERTHEPREFACEACTUALLYFAILSTOBEAGENUINEALGORITHMONATLEASTTHREEOFOURFIVECOUNTSALSOMENTIONSOMEDIFFERENCESINFORMATBETWEENITANDALGORITHMENOTFINITENORDEFINITENOREFFECTIVEPERHAPSNOOUTPUTINFORMATNOLETTERISGIVENBEFORESTEPNUMBERSNOSUMMARYPHRASEAPPEARSANDTHEREISNOWHATISTHEAVERAGENUMBEROFTIMESSTEPEISPERFORMEDWHENTRYINGALGORITHMEWITHANDFORANYWEFINDTHATSTEPEISEXECUTEDTIMESRESPECTIVELYSOTHEAVERAGEISLETBETHEAVERAGENUMBEROFTIMESTHATSTEPEISEXECUTEDINALGORITHMEIFISKNOWNANDISALLOWEDTORANGEOVERALLPOSITIVEINTEGERSSHOWTHATISWELLDEFINEDISINANYWAYRELATEDTOINALLBUTAFINITENUMBEROFCASESANDWHENTHEFIRSTITERATIONOFALGORITHMEMERELYEXCHANGESTHESENUMBERSSOFOREXAMPLETRYANDTHEAVERAGEOFISMGIVEANEFFECTIVEFORMALALGORITHMFORCOMPUTINGTHEGREATESTCOMMONDIVISOROFPOSITIVEINTEGERSANDBYSPECIFYINGASINEQSLETTHEINPUTBEREPRESENTEDBYTHESTRINGTHATISSFOLLOWEDBYSTRYTOMAKEYOURSOLUTIONASSIMPLEASPOSSIBLEHINTUSEALGORITHMEBUTINSTEADOFDIVISIONINSTEPESETLETTHEALGORITHMWILLTERMINATEWITHTHESTRINGEACHITERATIONEITHERDECREASESORKEEPSUNCHANGEDANDDECREASESMSUPPOSETHATANDARECOMPUTATIONALMETHODSFOREXAMPLEMIGHTSTANDFORALGORITHMEASINEQSEXCEPTTHATANDARERESTRICTEDINMAGNITUDEANDMIGHTSTANDFORACOMPUTERPROGRAMIMPLEMENTATIONOFALGORITHMETHUSMIGHTBETHESETOFALLSTATESOFTHEMACHINEIEALLPOSSIBLECONFIGURATIONSOFITSMEMORYANDREGISTERSMIGHTBETHEDEFINITIONOFSINGLEMACHINEACTIONSANDMIGHTBETHESETOFINITIALSTATESEACHINCLUDINGTHEPROGRAMTHATDETERMINESTHEGREATESTCOMMONDIVISORASWELLASTHEPARTICULARVALUESOFANDFORMULATEASETTHEORETICDEFINITIONFORTHECONCEPTISAREPRESENTATIONOFORSIMULATESTHISISTOMEANINTUITIVELYTHATANYCOMPUTATIONSEQUENCEOFISMIMICKEDBYEXCEPTTHATMIGHTTAKEMORESTEPSINWHICHTODOTHECOMPUTATIONANDITMIGHTRETAINMOREINFORMATIONINITSSTATESWETHEREBYOBTAINARIGOROUSINTERPRETATIONOFTHESTATEMENTPROGRAMISANIMPLEMENTATIONOFALGORITHMFORINSTANCEWECANSAYREPRESENTSIFTHEREISAFUNCTIONFROMINTOAFUNCTIONFROMINTOANDAFUNCTIONFROMINTOTHEPOSITIVEINTEGERSSATISFYINGTHEFOLLOWINGCONDITIONSAIFISINTHENBIFISINTHENWHEREMEANSTHATTHEFUNCTIONISTOBEITERATEDTIMESCIFISINTHENISINIFANDONLYIFISINBFOREXAMPLELETBEASINANDLETHAVELETIFOTHERWISENOWLETOTHERWISETHENREPRESENTSNOTESITISTEMPTINGTOTRYTODEFINETHINGSINAMORESIMPLEWAYFOREXAMPLETOLETMAPINTOANDTOINSISTONLYTHATWHENISACOMPUTATIONALSEQUENCEINTHENISASUBSEQUENCEOFTHECOMPUTATIONALSEQUENCEINTHATBEGINSWITHBUTTHISISINADEQUATEINTHEEXAMPLEABOVEFORGETSTHEORIGINALVALUEOFANDBUTDOESNOTIFREPRESENTSBYMEANSOFFUNCTIONSANDIFREPRESENTSBYMEANSOFFUNCTIONSTHENREPRESENTSBYMEANSOFFUNCTIONSWHEREIFANDHENCETHERELATIONDEFINEDABOVEISTRANSITIVEWECANSAYDIRECTLYREPRESENTSIFTHEFUNCTIONISBOUNDEDTHISRELATIONISALSOTRANSITIVETHERELATIONREPRESENTSGENERATESANEQUIVALENCERELATIONINWHICHTWOCOMPUTATIONALMETHODSAPPARENTLYAREEQUIVALENTIFANDONLYIFTHEYCOMPUTEEQUIVALENTALGORITHMSISOMORPHICFUNCTIONSOFTHEIRINPUTSTHERELATIONDIRECTLYREPRESENTSGENERATESAMOREINTERESTINGEQUIVALENCERELATIONTHATPERHAPSMATCHESTHEINTUITIVEIDEAOFBEINGESSENTIALLYTHESAMEALGORITHMFORANALTERNATIVEAPPROACHTOSIMULATIONSEERWFLOYDANDRBEIGELTHELANGUAGEOFMACHINESCOMPUTERSCIENCEPRESSSECTIONEUCLIDSALGORITHMGREATESTCOMMONDIVISORALGORITHMSSETTHEORETICDEFALGORITHMANALYSISOFANALGORITHMLETUSNOWAPPLYSOMEOFTHETECHNIQUESOFTHEPRECEDINGSECTIONSTOTHESTUDYANALYSISOFALGORITHMSOFATYPICALALGORITHMMAXIMUMALGORITHMEXECUTIONTIMEMETHODSFORSTUDYINGMFINDTHEMAXALGMPAGEALGORITHMMFINDTHEMAXIMUMGIVENELEMENTSWEWILLFINDANDSUCHTHATWHEREISTHELARGESTINDEXTHATSATISFIESTHISRELATIONMINITIALIZESETDURINGTHISALGORITHMWEWILLHAVEMALLTESTEDIFTHEALGORITHMTERMINATESMCOMPAREIFGOTOMMCHANGESETTHISVALUEOFISANEWCURRENTMAXIMUMMDECREASEDECREASEBYONEANDRETURNTOMTHISRATHEROBVIOUSALGORITHMMAYSEEMSOTRIVIALTHATWESHOULDNTBOTHERTOANALYZEITINDETAILBUTITACTUALLYMAKESAGOODDEMONSTRATIONOFTHEWAYINWHICHMORECOMPLICATEDALGORITHMSMAYBESTUDIEDANALYSISOFALGORITHMSISQUITEIMPORTANTINCOMPUTERPROGRAMMINGBECAUSETHEREAREUSUALLYSEVERALALGORITHMSAVAILABLEFORAPARTICULARAPPLICATIONANDWEWOULDLIKETOKNOWWHICHISBESTFIGFIGALGORITHMMLABELSONTHEARROWSINDICATETHENUMBEROFTIMESEACHPATHISTAKENNOTETHATKIRCHHOFFSFIRSTLAWMUSTBESATISFIEDTHEAMOUNTOFFLOWINTOEACHNODEMUSTEQUALTHEAMOUNTOFFLOWGOINGOUTKIRCHHOFFSFIRSTLAWALGORITHMMREQUIRESAFIXEDAMOUNTOFSTORAGESOWEWILLANALYZEONLYTHETIMEREQUIREDTOPERFORMITTODOTHISWEWILLCOUNTTHENUMBEROFTIMESEACHSTEPISEXECUTEDSEEFIGFIGKNOWINGTHENUMBEROFTIMESEACHSTEPISEXECUTEDGIVESUSTHEINFORMATIONNECESSARYTODETERMINETHERUNNINGTIMEONAPARTICULARCOMPUTERINTHETABLEABOVEWEKNOWEVERYTHINGEXCEPTTHEQUANTITYWHICHISTHELEFTTORIGHTMAXORMINNUMBEROFTIMESWEMUSTCHANGETHEVALUEOFTHECURRENTMAXIMUMTOCOMPLETETHEANALYSISWESHALLSTUDYTHISINTERESTINGQUANTITYTHEANALYSISUSUALLYCONSISTSOFFINDINGTHEMINIMUMVALUEOFFOROPTIMISTICPEOPLETHEMAXIMUMVALUEOFFORPESSIMISTICPEOPLETHEAVERAGEVALUEOFFORPROBABILISTICPEOPLEANDTHEAVERAGESTANDARDDEVIATIONOFAQUANTITATIVEINDICATIONOFHOWCLOSETOTHEAVERAGEWEMAYEXPECTTHEVALUETOBETHEMINIMUMVALUEOFISZEROTHISHAPPENSIFTHEMAXIMUMVALUEISTHISHAPPENSINCASETHUSTHEAVERAGEVALUELIESBETWEENANDISITISITTOANSWERTHISQUESTIONWENEEDTODEFINEWHATWEMEANBYTHEAVERAGEANDTODEFINETHEAVERAGEPROPERLYWEMUSTMAKESOMEASSUMPTIONSABOUTTHECHARACTERISTICSOFTHEINPUTDATAWEWILLASSUMETHATTHEAREDISTINCTVALUESANDTHATEACHOFTHEPERMUTATIONSOFPERMUTATIONSTHESEVALUESISEQUALLYLIKELYTHISISAREASONABLEASSUMPTIONTOMAKEINMOSTSITUATIONSBUTTHEANALYSISCANBECARRIEDOUTUNDEROTHERASSUMPTIONSASSHOWNINTHEEXERCISESATTHEENDOFTHISSECTIONTHEPERFORMANCEOFALGORITHMMDOESNOTDEPENDONTHEPRECISEVALUESOFTHEONLYTHERELATIVEORDERISINVOLVEDFOREXAMPLEIFWEAREASSUMINGTHATEACHOFTHEFOLLOWINGSIXPOSSIBILITIESISEQUALLYPROBABILITYDISTRIBUTIONPROBABLETHEAVERAGEVALUEOFWHENCOMESTOITISCLEARTHATWEMAYTAKETOBETHENUMBERSINSOMEORDERUNDEROURASSUMPTIONWEREGARDEACHOFTHEPERMUTATIONSASEQUALLYLIKELYTHEPROBABILITYTHATHASTHEVALUEWILLBEFOREXAMPLEFROMOURTABLEABOVEPERMUTATIONSTHEAVERAGEMEANOREXPECTEDVALUEISDEFINEDASUSUALTOBEAVERAGETHEVARIANCEISDEFINEDTOBETHEAVERAGEVALUEOFWEHAVETHEREFOREFINALLYTHESTANDARDDEVIATIONISDEFINEDTOBETHESIGNIFICANCEOFCANPERHAPSBESTBEUNDERSTOODBYNOTINGTHATFORALLTHEPROBABILITYTHATFAILSTOLIEWITHINOFITSAVERAGEVALUEISLESSTHANFOREXAMPLEWITHPROBABILITYPROOFLETBETHESTATEDPROBABILITYTHENIFTHEAVERAGEVALUEOFISMORETHANTHATISTHISISUSUALLYCALLEDCHEBYSHEVSINEQUALITYALTHOUGHITWASACTUALLYDISCOVEREDFIRSTBYJBIENAYMECOMPTESRENDUSACADSCIPARISWECANDETERMINETHEBEHAVIOROFBYDETERMININGTHEPROBABILITIESITISNOTHARDTODOTHISINDUCTIVELYBYEQWEWANTTOCOUNTTHENUMBEROFPERMUTATIONSONELEMENTSTHATHAVELETTHISNUMBERBECONSIDERTHEPERMUTATIONSONASINSECTIONIFTHEVALUEOFISONEHIGHERTHANTHEVALUEOBTAINEDONIFTHEVALUEOFISEXACTLYTHESAMEASITSVALUEONTHEREFOREWEFINDTHATOREQUIVALENTLYTHISEQUATIONWILLDETERMINEIFWEPROVIDETHEINITIALCONDITIONSWECANNOWGETINFORMATIONABOUTTHEQUANTITIESBYUSINGGENERATINGGENERATINGFUNCTIONSFORPROBABILITIESFUNCTIONSLETWEKNOWTHATSOFORLARGEVALUESOFTHUSISACTUALLYAPOLYNOMIALEVENTHOUGHANINFINITESUMHASBEENSPECIFIEDFORCONVENIENCEFROMEQWEHAVEANDFROMEQWEHAVETHEREADERSHOULDSTUDYTHERELATIONBETWEENEQSANDCAREFULLYWECANNOWSEETHATSOISESSENTIALLYABINOMIALCOEFFICIENTTHISFUNCTIONAPPEARSINTHEPREVIOUSSECTIONEQSTIRLGFWHEREWEHAVETHEREFORECANBEEXPRESSEDINTERMSOFSTIRLINGNUMBERSSTIRLINGNUMBERSFIGUREFIGSHOWSTHEAPPROXIMATESIZESOFWHENFIGFIGPROBABILITYDISTRIBUTIONFORSTEPMWHENTHEMEANISORAPPROXIMATELYTHEVARIANCEISAPPROXIMATELYNOWALLWEMUSTDOISPLUGTHISVALUEOFINTOEQSANDANDWEHAVETHEDESIREDAVERAGEVALUEBUTTHISISEASIERSAIDTHANDONEITISINFACTUNUSUALTOBEABLETODETERMINETHEPROBABILITIESEXPLICITLYINMOSTPROBLEMSWEWILLKNOWTHEGENERATINGFUNCTIONBUTWEWILLNOTHAVEANYSPECIALKNOWLEDGEABOUTTHEACTUALPROBABILITIESTHEIMPORTANTFACTISTHATWECANDETERMINETHEMEANANDVARIANCEEASILYFROMTHEGENERATINGFUNCTIONITSELFMEANFROMGFVARIANCEFROMGFTOSEETHISLETSSUPPOSETHATWEHAVEAGENERATINGFUNCTIONWHOSECOEFFICIENTSREPRESENTPROBABILITIESHEREISTHEPROBABILITYTHATSOMEEVENTHASAVALUEWEWISHTOCALCULATETHEQUANTITIESUSINGDIFFERENTIATIONITISNOTHARDTODISCOVERHOWTODOTHISNOTETHATSINCEISTHESUMOFALLPOSSIBLEPROBABILITIESSIMILARLYSINCEWEHAVEFINALLYWEAPPLYDIFFERENTIATIONAGAINANDWEOBTAINSEEEXERCISEEQUATIONSANDGIVETHEDESIREDEXPRESSIONSOFTHEMEANANDVARIANCEINTERMSOFTHEGENERATINGFUNCTIONINOURCASEWEWISHTOCALCULATEFROMEQWEHAVEFROMTHEINITIALCONDITIONWEFINDTHEREFORETHISISTHEDESIREDAVERAGENUMBEROFTIMESSTEPMISEXECUTEDITISAPPROXIMATELYWHENISLARGENOTETHETHMOMENTOFNAMELYTHEQUANTITYISANDITHASTHEAPPROXIMATEVALUESEEPBMROESCACMTHEDISTRIBUTIONOFWASFIRSTSTUDIEDBYFGFOSTERANDASTUARTJROYSTATSOCBSTIRLINGNUMBERSWECANPROCEEDSIMILARLYTOCALCULATETHEVARIANCEBEFOREDOINGTHISLETUSSTATEANIMPORTANTSIMPLIFICATIONAADDITIVEINVTHEOREMALETANDBETWOGENERATINGFUNCTIONSWITHIFTHEQUANTITIESANDAREDEFINEDBYEQSANDWEHAVEWEWILLPROVETHISTHEOREMLATERITTELLSUSTHATTHEMEANANDVARIANCEOFAPRODUCTOFGENERATINGFUNCTIONSMAYBEREDUCEDTOASUMLETTINGWEHAVEHENCEFINALLYSINCEITFOLLOWSTHATSUMMINGUPWEHAVEFOUNDTHEDESIREDSTATISTICSRELATEDTOQUANTITYTHENOTATIONUSEDINEQWILLBEUSEDTODESCRIBETHESTATISTICALCHARACTERISTICSOFOTHERPROBABILISTICQUANTITIESTHROUGHOUTTHISBOOKWEHAVECOMPLETEDTHEANALYSISOFALGORITHMMTHENEWFEATURETHATHASAPPEAREDLEFTTORIGHTMAXORMINMAXIMUMALGORITHMINTHISANALYSISISTHEINTRODUCTIONOFPROBABILITYTHEORYELEMENTARYPROBABILITYTHEORYISSUFFICIENTFORMOSTOFTHEAPPLICATIONSINTHISBOOKTHESIMPLECOUNTINGTECHNIQUESANDTHEDEFINITIONSOFMEANVARIANCEANDSTANDARDDEVIATIONALREADYGIVENWILLANSWERMOSTOFTHEQUESTIONSWEWANTTOASKMORECOMPLICATEDALGORITHMSWILLHELPUSDEVELOPANABILITYTOREASONFLUENTLYABOUTPROBABILITIESLETUSCONSIDERSOMESIMPLEPROBABILITYPROBLEMSTOGETALITTLEMOREPRACTICECOINTOSSINGBINOMIALDISTRIBUTIONUSINGTHESEMETHODSINALLPROBABILITYTHEFIRSTQUESTIONTHATCOMESTOMINDISACOINTOSSINGPROBLEMSUPPOSEWEFLIPACOINTIMESANDTHEREISAPROBABILITYTHATHEADSTURNSUPAFTERANYPARTICULARTOSSWHATISTHEAVERAGENUMBEROFHEADSTHATWILLOCCURWHATISTHESTANDARDDEVIATIONWEWILLCONSIDEROURCOINTOBEBIASEDTHATISWEWILLNOTASSUMETHATTHISMAKESTHEPROBLEMMOREINTERESTINGANDFURTHERMOREEVERYREALCOINISBIASEDORWECOULDNOTTELLONESIDEFROMTHEOTHERPROCEEDINGASBEFOREWELETBETHEPROBABILITYTHATHEADSWILLOCCURANDLETBETHECORRESPONDINGGENERATINGFUNCTIONWEHAVECLEARLYWHEREISTHEPROBABILITYTHATTAILSTURNSUPASBEFOREWEARGUEFROMEQTHATANDFROMTHEOBVIOUSINITIALCONDITIONWEHAVEHENCEBYTHEOREMAFORTHENUMBEROFHEADSWEHAVETHEREFOREFIGUREFIGSHOWSTHEVALUESOFWHENWHENTHESTANDARDDEVIATIONISPROPORTIONALTOANDTHEDIFFERENCEBETWEENMAXIMUMANDMINIMUMISPROPORTIONALTOWEMAYCONSIDERTHESITUATIONSTABLEABOUTTHEAVERAGEBINOMIALDISTRIBUTIONCOINTOSSINGFIGFIGPROBABILITYDISTRIBUTIONFORCOINTOSSINGINDEPENDENTTOSSESWITHACHANCEOFSUCCESSEQUALTOATEACHTOSSLETUSWORKONEMORESIMPLEPROBLEMSUPPOSETHATINSOMEPROCESSTHEREISUNIFORMDISTRIBUTIONEQUALPROBABILITYOFOBTAININGTHEVALUESTHEGENERATINGFUNCTIONFORTHISSITUATIONISWEFINDAFTERSOMERATHERLABORIOUSCALCULATIONTHATNOWTOCALCULATETHEMEANANDVARIANCEWENEEDTOKNOWANDBUTTHEFORMINWHICHWEHAVEEXPRESSEDTHESEEQUATIONSREDUCESTOWHENWESUBSTITUTETHISMAKESITNECESSARYTOFINDTHELIMITASAPPROACHESUNITYANDTHATISANONTRIVIALTASKFORTUNATELYTHEREISAMUCHSIMPLERWAYTOPROCEEDBYTAYLORSTHEOREMWEHAVETHEREFOREWEMERELYHAVETOREPLACEBYINANDREADOFFTHECOEFFICIENTSITFOLLOWSTHATANDTHESTATISTICSFORTHEUNIFORMDISTRIBUTIONAREINTHISCASETHEDEVIATIONOFAPPROXIMATELYGIVESUSARECOGNIZABLYUNSTABLESITUATIONWECONCLUDETHISSECTIONBYPROVINGTHEOREMAANDRELATINGOURNOTIONSTOCLASSICALPROBABILITYTHEORYSUPPOSEISARANDOMVARIABLETHATTAKESONONLYNONNEGATIVEINTEGERVALUESWHEREWITHPROBABILITYTHENISCALLEDTHEPROBABILITYGENERATINGFUNCTIONFORANDTHEQUANTITYISCONVENTIONALLYCALLEDTHECHARACTERISTICFUNCTIONOFTHISDISTRIBUTIONTHEDISTRIBUTIONGIVENBYTHEPRODUCTOFTWOSUCHGENERATINGFUNCTIONSISCALLEDTHECONVOLUTIONOFTHETWODISTRIBUTIONSANDITREPRESENTSTHESUMOFTWOINDEPENDENTRANDOMVARIABLESBELONGINGTOTHOSERESPECTIVEDISTRIBUTIONSTHEMEANORAVERAGEVALUEOFARANDOMQUANTITYISOFTENCALLEDITSEXPECTEDVALUEANDDENOTEDBYTHEVARIANCEOFISTHENUSINGTHISNOTATIONTHEPROBABILITYGENERATINGFUNCTIONFORISTHEEXPECTEDVALUEOFINCASESWHENTAKESONLYNONNEGATIVEINTEGERVALUESSIMILARLYIFISASTATEMENTTHATISEITHERTRUEORFALSETHEPROBABILITYTHATISTRUEISUSINGIVERSONSCONVENTIONEQIVERSONBRACKETVARIANCEFROMGFMEANFROMGFTHEMEANANDVARIANCEAREJUSTTWOOFTHESOCALLEDSEMIINVARIANTSORSEMIINVARIANTSCUMULANTSCUMULANTSINTRODUCEDBYTNTHIELEINSEEAHALDINTERNATIONALSTATISTICALREVIEWTHESEMIINVARIANTSAREDEFINEDBYTHERULEWEHAVEINPARTICULARBECAUSEANDSINCETHESEMIINVARIANTSAREDEFINEDINTERMSOFTHELOGARITHMOFAGENERATINGFUNCTIONTHEOREMAISOBVIOUSANDINFACTITCANBEGENERALIZEDTOAPPLYTOALLOFTHESEMIINVARIANTSANORMALDISTRIBUTIONISONEFORWHICHALLSEMIINVARIANTSAREZEROEXCEPTTHEMEANANDVARIANCEINANORMALDISTRIBUTIONWECANIMPROVESIGNIFICANTLYONCHEBYSHEVSINEQUALITYTHEPROBABILITYTHATANORMALLYDISTRIBUTEDRANDOMVALUEDIFFERSFROMTHEMEANBYLESSTHANTHESTANDARDDEVIATIONISTHATISABOUTOFTHETIMETHEDIFFERENCEISLESSTHANTWICETHESTANDARDDEVIATIONABOUTOFTHETIMEANDITISLESSTHANTHREETIMESTHESTANDARDDEVIATIONABOUTOFTHETIMETHEDISTRIBUTIONSSPECIFIEDBYEQSANDAREAPPROXIMATELYNORMALWHENISLARGESEEEXERCISESANDWEOFTENNEEDTOKNOWTHATARANDOMINTEGERISUNLIKELYTOBEMUCHLARGERORSMALLERTHANITSMEANVALUETWOEXTREMELYSIMPLEYETPOWERFULFORMULASCALLEDTHETAILINEQUALITIESPROVIDECONVENIENTESTIMATESOFSUCHPROBABILITIESIFHASTHEPROBABILITYGENERATINGFUNCTIONTHENLOWERTAILINEQUPPERTAILINEQTHEPROOFSAREEASYIFWEHAVEWHENANDWHENBYCHOOSINGVALUESOFTHATMINIMIZEORAPPROXIMATELYMINIMIZETHERIGHTHANDSIDESOFLOWERTAILINEQANDUPPERTAILINEQWEOFTENOBTAINUPPERBOUNDSTHATAREFAIRLYCLOSETOTHETRUETAILPROBABILITIESONTHELEFTHANDSIDESEXERCISESBINOMTAILNEGBINOMTAILILLUSTRATETHETAILINEQUALITIESINSEVERALIMPORTANTCASESTHESEINEQUALITIESARESPECIALCASESOFAGENERALPRINCIPLEPOINTEDOUTBYANKOLMOGOROVINHISBOOKGRUNDBEGRIFFEDERWAHRSCHEINLICHKEITSRECHNUNGIFFORALLANDIFFORALLINTHEDOMAINOFTHERANDOMVARIABLETHENWHENEVEREXISTSWEOBTAINUPPERTAILINEQWHENANDSBERNSTEINHADCONTRIBUTEDKEYIDEASINUCHENYEZAPISKINAUCHNOISSLEDOVATELSKIKHKAFEDRUKRAINYEXERCISESDETERMINETHEVALUEOFFROMEQSANDANDINTERPRETTHISRESULTFROMTHESTANDPOINTOFALGORITHMMTHISISTHEPROBABILITYTHATISTHELARGESTDERIVEEQFROMEQMWHATARETHEMINIMUMMAXIMUMAVERAGEANDSTANDARDDEVIATIONOFTHENUMBEROFTIMESSTEPMISEXECUTEDIFWEAREUSINGALGORITHMMTOFINDTHEMAXIMUMOFRANDOMLYORDEREDDISTINCTITEMSGIVEYOURANSWERASDECIMALAPPROXIMATIONSTOTHESEQUANTITIESLEFTTORIGHTMAXORMINMINAVEMAXDEVNOTETHATISAPPROXIMATELYSEEEQZETACLOSEDFORMMGIVEANEXPLICITCLOSEDFORMULAFORTHEVALUESOFINTHECOINTOSSINGEXPERIMENTEQMWHATARETHEMEANANDSTANDARDDEVIATIONOFTHEDISTRIBUTIONINFIGFIGTHEMEANISTHESTANDARDDEVIATIONISWEVECOMPUTEDTHEMEANANDTHEVARIANCEOFTHEIMPORTANTPROBABILITYDISTRIBUTIONSWHATISTHETHIRDSEMIINVARIANTINEACHOFTHOSECASESFORTHEFORMULATELLSUSTHATTHISNICEPATTERNDOESNOTCONTINUETOTHECOEFFICIENTOFSETTINGGIVESUSINTHECASEOFDISTRIBUTIONANDFORWEHAVEWHERESINCEWEHAVEFORALLINTHISCASEINPARTICULARBERNOULLINUMBERSMDISTINCTMINOURANALYSISOFALGORITHMMWEASSUMEDTHATALLTHEWEREDISTINCTSUPPOSEINSTEADTHATWEMAKEONLYTHEWEAKERASSUMPTIONTHATCONTAINPRECISELYDISTINCTVALUESTHEVALUESAREOTHERWISERANDOMSUBJECTTOTHISCONSTRAINTWHATISTHEPROBABILITYDISTRIBUTIONOFINTHISCASETHEPROBABILITYTHATISFORWEMAYCONSIDERTHEVALUESTOBEGIVENANYPARTITIONINGOFTHEPOSITIONSINTODISJOINTSETSTHEREAREWAYSTOASSIGNTHENUMBERSTOTHESESETSALGORITHMMTREATSTHESEVALUESASIFONLYTHERIGHTMOSTELEMENTOFEACHSETWEREPRESENTSOISTHEAVERAGEFORANYFIXEDPARTITIONINGFOREXAMPLEIFONEPARTITIONISTHEARRANGEMENTSPOSSIBLEAREINEVERYPARTITIONWEGETTHESAMEPERCENTAGEOFARRANGEMENTSWITHONTHEOTHERHANDTHEPROBABILITYDISTRIBUTIONDOESCHANGEIFMOREINFORMATIONISGIVENIFANDFOREXAMPLEOURARGUMENTINTHEPREVIOUSPARAGRAPHCONSIDERSTHESIXPOSSIBILITIESIFWEKNOWTHATTHEREARETWOSANDONETHENONLYTHEFIRSTTHREEOFTHESEPOSSIBILITIESSHOULDBECONSIDEREDBUTTHISINTERPRETATIONISNOTCONSISTENTWITHTHESTATEMENTOFTHEEXERCISEMSUPPOSETHATEACHISTAKENATRANDOMFROMASETOFDISTINCTELEMENTSSOTHATEACHOFTHEPOSSIBLECHOICESFORISCONSIDEREDEQUALLYLIKELYWHATISTHEPROBABILITYTHATALLTHEWILLBEDISTINCTTHELARGERISTHECLOSERTHISPROBABILITYGETSTOONEMGENERALIZETHERESULTOFTHEPRECEDINGEXERCISETOFINDAFORMULAFORTHEPROBABILITYTHATEXACTLYDISTINCTVALUESOCCURAMONGTHESEXPRESSYOURANSWERINTERMSOFSTIRLINGNUMBERSLETBETHEPROBABILITYTHATEXACTLYDISTINCTVALUESOCCURTHENFROMTHERECURRENCEWEDEDUCETHATSEEALSOEXERCISESETPARTSMCOMBINETHERESULTSOFTHEPRECEDINGTHREEEXERCISESTOOBTAINAFORMULAFORTHEPROBABILITYTHATUNDERTHEASSUMPTIONTHATEACHISSELECTEDATRANDOMFROMASETOFOBJECTSTHISISSUMMEDOVERALLNAMELYTHEREDOESNOTAPPEARTOBEASIMPLEFORMULAFORTHEAVERAGEWHICHISONELESSTHANMWHATHAPPENSTOTHESEMIINVARIANTSOFADISTRIBUTIONIFWECHANGETOSINCETHISISAPRODUCTWEADDTHESEMIINVARIANTSOFEACHTERMIFSOWEFINDANDALLOTHERSAREZEROTHEREFOREANDALLOTHERSEMIINVARIANTSAREUNCHANGEDTHISACCOUNTSFORTHENAMESEMIINVARIANTSEMIASMOMENTSWHENREPRESENTSAPROBABILITYDISTRIBUTIONTHEQUANTITIESANDARECALLEDTHETHMOMENTANDTHCENTRALMOMENTRESPECTIVELYSHOWTHATTHENUSEARBOGASTSFORMULAEXERCISEARBOGASTTOSHOWTHATINPARTICULARASWEALREADYKNEWANDWHATARETHEANALOGOUSEXPRESSIONSFORINTERMSOFTHECENTRALMOMENTSWHENTHEFIRSTIDENTITYISOBVIOUSBYWRITINGOUTTHEPOWERSERIESFORFORTHESECONDLETWHENWEHAVEANDALSOBYEXERCISETHESAMEFORMULAAPPLIESFORCENTRALMOMENTSEXCEPTTHATWELEAVEOUTALLTERMSWITHTHUSAPPROACHNORMALASEQUENCEOFPROBABILITYGENERATINGFUNCTIONSWITHMEANSANDDEVIATIONSISSAIDTOAPPROACHANORMALDISTRIBUTIONNORMALDISTRIBUTIONAPPROXIMATEIFFORALLREALVALUESOFUSINGASGIVENBYEQSHOWTHATAPPROACHESANORMALDISTRIBUTIONNOTEAPPROACHINGTHENORMALDISTRIBUTIONASDEFINEDHERECANBESHOWNTOBEEQUIVALENTTOTHEFACTTHATWHEREISARANDOMQUANTITYWHOSEPROBABILITIESARESPECIFIEDBYTHISISASPECIALCASEOFPLEVYSIMPORTANTCONTINUITYTHEOREMABASICRESULTINMATHEMATICALPROBABILITYTHEORYAPROOFOFLEVYSTHEOREMWOULDTAKEUSRATHERFARAFIELDALTHOUGHITISNOTEXTREMELYDIFFICULTFOREXAMPLESEELIMITDISTRIBUTIONSFORSUMSOFINDEPENDENTRANDOMVARIABLESBYBVGNEDENKOANDANKOLMOGOROVTRANSLATEDBYKLCHUNGREADINGMASSADDISONWESLEYLETWHENANDISFIXEDWEHAVEHENCEANDNOTESTHISISATHEOREMOFGONCHAROVIZVAKADNAUKSSSRSERMATHPFLAJOLETANDMSORIADISCMATHHAVEEXTENDEDTHEANALYSISTOSHOWTHATANDALARGEFAMILYOFRELATEDDISTRIBUTIONSNOTONLYAREAPPROXIMATELYNORMALNEARTHEIRMEANVALUESTHEYALSOHAVEUNIFORMLYEXPONENTIALTAILSINTHESENSETHATFORSOMEPOSITIVECONSTANTANDFORALLANDADEMOIVREUSINGTHECONVENTIONSOFTHEPREVIOUSEXERCISESHOWTHATTHEBINOMIALDISTRIBUTIONGIVENBYEQAPPROACHESTHENORMALDISTRIBUTIONEXPANDTHEEXPONENTIALSINPOWERSERIESTOGETPOISSONDISTWHENTHEPROBABILITYTHATSOMEQUANTITYHASTHEVALUEISITISSAIDTOHAVETHEPOISSONDISTRIBUTIONWITHMEANAWHATISTHEGENERATINGFUNCTIONFORTHISSETOFPROBABILITIESBWHATARETHEVALUESOFTHESEMIINVARIANTSCSHOWTHATASTHEPOISSONDISTRIBUTIONWITHMEANAPPROACHESTHENORMALDISTRIBUTIONINTHESENSEOFEXERCISENORMALDISTRIBUTIONAPPROXIMATECUMULANTSSEMIINVARIANTSABSOALLSEMIINVARIANTSEQUALCMSUPPOSEISARANDOMVARIABLEWHOSEVALUESAREAMIXTUREOFTHEPROBABILITYDISTRIBUTIONSGENERATEDBYINTHESENSETHATITUSESWITHPROBABILITYWHEREWHATISTHEGENERATINGFUNCTIONFOREXPRESSTHEMEANANDVARIANCEOFINTERMSOFTHEMEANSANDVARIANCESOFANDMLETANDBEGENERATINGFUNCTIONSTHATREPRESENTPROBABILITYDISTRIBUTIONSASHOWTHATISALSOAGENERATINGFUNCTIONREPRESENTINGAPROBABILITYDISTRIBUTIONBINTERPRETTHESIGNIFICANCEOFINTERMSOFANDWHATISTHEMEANINGOFTHEPROBABILITIESREPRESENTEDBYTHECOEFFICIENTSOFCGIVEFORMULASFORTHEMEANANDVARIANCEOFINTERMSOFTHOSEFORANDATHECOEFFICIENTSOFANDARENONNEGATIVEANDCLEARLYSHARESTHESESAMECHARACTERISTICSSINCEANDTHECOEFFICIENTSOFAREPOLYNOMIALSINTHOSEOFANDWITHNONNEGATIVECOEFFICIENTSBLETWHEREISTHEPROBABILITYTHATSOMEEVENTYIELDSASCOREOFLETWHEREISTHEPROBABILITYTHATTHEEVENTDESCRIBEDBYHAPPENSEXACTLYTIMESEACHOCCURRENCEOFTHEEVENTBEINGINDEPENDENTOFTHEOTHERSTHENWHEREISTHEPROBABILITYTHATTHESUMOFTHESCORESOFTHEEVENTSTHATOCCURREDISEQUALTOTHISISEASYTOSEEIFWEOBSERVETHATWHEREISTHEPROBABILITYTHATATOTALSCOREISOBTAINEDININDEPENDENTOCCURRENCESOFTHEEVENTEXAMPLEIFGIVESTHEPROBABILITIESTHATAWOMANHASFEMALEOFFSPRINGANDIFGIVESTHEPROBABILITIESTHATTHEREAREFEMALESINTHETHGENERATIONTHENGIVESTHEPROBABILITIESTHATTHEREAREFEMALESINTHESTGENERATIONASSUMINGINDEPENDENCECGENERALIZEDLRMAXMSUPPOSETHATTHEVALUESTAKENONBYINALGORITHMMINCLUDEEXACTLYONESTWOSSARRANGEDINRANDOMORDERHERETHEASSUMPTIONINTHETEXTISTHATSHOWTHATINTHISGENERALIZEDSITUATIONTHEGENERATINGFUNCTIONBECOMESUSINGTHECONVENTIONCONSIDERTHECHOICEOFASAPROCESSINWHICHWEFIRSTPLACEALLTHESTHENPLACEALLTHESAMONGTHESESFINALLYPLACETHEONESAMONGTHERESTASWEPLACETHESAMONGTHENUMBERSTHENUMBEROFLOCALMAXIMAFROMRIGHTTOLEFTINCREASESBYONEIFANDONLYIFWEPUTANATTHEEXTREMERIGHTTHISHAPPENSWITHPROBABILITYMIFFORWESAYTHATISALEFTTORIGHTMAXIMUMOFTHESEQUENCESUPPOSEISAPERMUTATIONOFANDLETBETHEINVERSEPERMUTATIONSOTHATIFANDONLYIFSHOWTHATISALEFTTORIGHTMAXIMUMOFIFANDONLYIFISARIGHTTOLEFTMINIMUMOFLETTHENISALEFTTORIGHTMAXIMUMOFIMPLIESIMPLIESIMPLIESISARIGHTTOLEFTMINIMUMOFMSUPPOSEWEWANTTOCALCULATEWHENSHOWTHATITISSUFFICIENTTOCALCULATEMAXIMUMNORMWHERETHUSIFTHESAREINRANDOMORDERTHENUMBEROFSFORWHICHASUBTRACTIONMUSTBEPERFORMEDISONLYABOUTLEFTTORIGHTMAXORMINWEHAVEPROOFIFNOTLETBETHESMALLESTSUBSCRIPTSUCHTHATTHENISNOTALEFTTORIGHTMAXIMUMSOTHEREISAWITHBUTTHENCONTRADICTINGTHEMINIMALITYOFSIMILARLYBINOMTAILLETBETHENUMBEROFHEADSTHATOCCURWHENARANDOMCOINISFLIPPEDTIMESWITHGENERATINGFUNCTIONUSEUPPERTAILINEQTOPROVETHATCOINTOSSESTAILBINOMIALDISTRIBUTIONTAILTAILINEQUALITIESWHENANDOBTAINASIMILARESTIMATEFOREXEXTHERESULTISTRIVIALWHENSOWEMAYASSUMETHATSETTINGINUPPERTAILINEQGIVESNOWSINCEFORALLREALANDEXEXAMOREDETAILEDANALYSISYIELDSTHESLIGHTLYSTRONGERESTIMATEWHENSTILLFURTHERWORKYIELDSTHEUPPERBOUNDFORALLBYREVERSINGTHEROLESOFHEADSANDTAILSWEFINDONESHOULDNOTCONFUSETAILSWITHTHETAILOFAPROBABILITYDISTRIBUTIONCHERNOFFBOUNDSUPPOSEHASTHEGENERATINGFUNCTIONWHEREFORLETAPROVETHATBEXPRESSTHERIGHTHANDSIDESOFTHESEESTIMATESINCONVENIENTFORMWHENCSHOWTHATIFISSUFFICIENTLYLARGEWEHAVEASETINLOWERTAILINEQANDUPPERTAILINEQANDNOTETHATSEEHCHERNOFFANNALSOFMATHSTATBLETWHERETHENWHICHISWHENANDWHENCTHEFUNCTIONDECREASESFROMTOASINCREASESFROMTOIFITISIFITISINCIDENTALLYTHETAILINEQUALITIESWITHGIVEPRECISELYTHESAMEESTIMATEWHENHASTHEPOISSONDISTRIBUTIONOFPOISSONDISTRIBUTIONTAILEXERCISENEGBINOMTAILESTIMATETHETAILPROBABILITIESFORARANDOMVARIABLETHATHASTHENEGATIVEBINOMIALDISTRIBUTIONGENERATEDBYWHEREEXEXSETTINGINLOWERTAILINEQGIVESSIMILARLYYIELDSLETANDNOTETHATITFOLLOWSTHATIFEXEXANALYSISOFALGORITHMSPROBABILITYDISTRIBUTIONGENERATINGFUNCTIONSFORPROBABILITIESTAILINEQUALITIESASYMPTOTICREPRESENTATIONSASYMPTOTICSWEOFTENWANTTOKNOWAQUANTITYAPPROXIMATELYINSTEADOFEXACTLYINORDERTOCOMPAREITTOANOTHERFOREXAMPLESTIRLINGSAPPROXIMATIONTOISAUSEFULREPRESENTATIONOFTHISTYPEWHENISLARGEANDWEHAVEALSOMADEUSEOFTHEFACTTHATTHEDERIVATIONSOFSUCHASYMPTOTICFORMULASGENERALLYINVOLVEHIGHERMATHEMATICSALTHOUGHINTHEFOLLOWINGSUBSECTIONSWEWILLUSENOTHINGMORETHANELEMENTARYCALCULUSTOGETTHERESULTSWENEEDTHEONOTATIONTHEONOTATIONPAULBACHMANNINTRODUCEDAVERYCONVENIENTNOTATIONFORAPPROXIMATIONSINHISBOOKANALYTISCHEZAHLENTHEORIEITISTHENOTATIONONOTATIONWHICHALLOWSUSTOREPLACETHESIGNBYANDTOQUANTIFYTHEDEGREEOFACCURACYFOREXAMPLEREADSUBEQUALSTHENATURALLOGOFPLUSEULERSCONSTANTPRONOUNCEDOILERSCONSTANTPLUSBIGOHOFONEOVERINGENERALTHENOTATIONMAYBEUSEDWHENEVERISAFUNCTIONOFTHEPOSITIVEINTEGERITSTANDSFORAQUANTITYTHATISNOTEXPLICITLYKNOWNEXCEPTTHATITSMAGNITUDEISNTTOOLARGEEVERYAPPEARANCEOFMEANSPRECISELYTHISTHEREAREPOSITIVECONSTANTSANDSUCHTHATTHENUMBERREPRESENTEDBYSATISFIESTHECONDITIONFORALLINTEGERSWEDONOTSAYWHATTHECONSTANTSANDAREANDINDEEDTHOSECONSTANTSAREUSUALLYDIFFERENTFOREACHAPPEARANCEOFFOREXAMPLEEQMEANSTHATWHENALTHOUGHTHECONSTANTSANDARENOTSTATEDWECANBESURETHATTHEQUANTITYWILLBEARBITRARILYSMALLIFISLARGEENOUGHLETSLOOKATSOMEMOREEXAMPLESWEKNOWTHATSOITFOLLOWSTHATEQUATIONISRATHERCRUDEBUTNOTINCORRECTEQISASTRONGERSTATEMENTANDEQISSTRONGERYETTOJUSTIFYTHESEEQUATIONSWESHALLPROVETHATIFISANYPOLYNOMIALOFDEGREEORLESSTHENWEHAVETHISFOLLOWSBECAUSEWHENSOWEMAYTAKEANDORWECOULDTAKESAYANDTHENOTATIONISABIGHELPINAPPROXIMATIONWORKSINCEITDESCRIBESBRIEFLYACONCEPTTHATOCCURSOFTENANDITSUPPRESSESDETAILEDINFORMATIONTHATISUSUALLYIRRELEVANTFURTHERMOREITCANBEMANIPULATEDALGEBRAICALLYINFAMILIARWAYSALTHOUGHCERTAINIMPORTANTDIFFERENCESNEEDTOBEKEPTINMINDTHEMOSTIMPORTANTCONSIDERATIONISTHEIDEAOFONEWAYEQUALITIESWEWRITEBUTWENEVERWRITEORELSESINCEWEMIGHTCOMEUPWITHTHEABSURDRELATIONWEALWAYSUSETHECONVENTIONTHATTHERIGHTHANDSIDEOFANEQUATIONDOESNOTGIVEMOREINFORMATIONTHANTHELEFTHANDSIDETHERIGHTHANDSIDEISACRUDIFICATIONOFTHELEFTTHISCONVENTIONABOUTTHEUSEOFMAYBESTATEDMOREPRECISELYASFOLLOWSFORMULASTHATINVOLVETHENOTATIONMAYBEREGARDEDASSETSOFFUNCTIONSOFTHESYMBOLSTANDSFORTHESETOFALLFUNCTIONSOFINTEGERSSUCHTHATTHEREEXISTCONSTANTSANDWITHFORALLINTEGERSIFANDARESETSOFFUNCTIONSTHENDENOTESTHESETWEDEFINEETCINASIMILARWAYIFANDAREFORMULASTHATINVOLVETHENOTATIONTHENTHENOTATIONMEANSTHATTHESETOFFUNCTIONSDENOTEDBYISCONTAINEDINTHESETDENOTEDBYCONSEQUENTLYWEMAYPERFORMMOSTOFTHEOPERATIONSWEAREACCUSTOMEDTODOINGWITHTHESIGNIFANDTHENTRANSITIVERELATIONALSOIFANDIFISAFORMULARESULTINGFROMTHESUBSTITUTIONOFFORSOMEOCCURRENCEOFINAFORMULATHENTHESETWOSTATEMENTSIMPLYFOREXAMPLETHATIFISANYREALFUNCTIONWHATEVERANDIFFORTHENHEREARESOMEOFTHESIMPLEOPERATIONSWECANDOWITHTHENOTATIONTHENOTATIONISALSOFREQUENTLYUSEDWITHFUNCTIONSOFACOMPLEXVARIABLEINTHENEIGHBORHOODOFWEWRITETOSTANDFORANYQUANTITYSUCHTHATWHENEVERASBEFOREANDAREUNSPECIFIEDCONSTANTSALTHOUGHWECOULDSPECIFYTHEMIFWEWANTEDTOTHECONTEXTOFNOTATIONSHOULDALWAYSIDENTIFYTHEVARIABLETHATISINVOLVEDANDTHERANGEOFTHATVARIABLEWHENTHEVARIABLEISCALLEDWEIMPLICITLYASSUMETHATREFERSTOFUNCTIONSOFALARGEINTEGERWHENTHEVARIABLEISCALLEDWEIMPLICITLYASSUMETHATREFERSTOFUNCTIONSOFASMALLCOMPLEXNUMBERSUPPOSETHATISAFUNCTIONGIVENBYANINFINITEPOWERSERIESTHATCONVERGESFORTHENTHESUMOFABSOLUTEVALUESALSOCONVERGESWHENEVERIFWECANTHEREFOREALWAYSWRITEFORWEHAVEWENEEDONLYSHOWTHATTHEPARENTHESIZEDQUANTITYISBOUNDEDWHENFORSOMEPOSITIVEANDITISEASYTOSEETHATISANUPPERBOUNDWHENEVERFOREXAMPLETHEGENERATINGFUNCTIONSLISTEDINSECTIONGIVEUSMANYIMPORTANTASYMPTOTICFORMULASVALIDWHENISSUFFICIENTLYSMALLINCLUDINGEXPASYMPLOGASYMPBINASYMPFORALLNONNEGATIVEINTEGERSITISIMPORTANTTONOTETHATTHEHIDDENCONSTANTSANDIMPLIEDBYANYPARTICULARARERELATEDTOEACHOTHERFOREXAMPLETHEFUNCTIONISOBVIOUSLYWHENFORANYFIXEDSINCEBUTTHEREISNOCONSTANTSUCHTHATFORALLVALUESOFTHEREFOREWENEEDTOUSELARGERANDLARGERBOUNDSASTHERANGEINCREASESSOMETIMESANASYMPTOTICSERIESISCORRECTALTHOUGHITDOESNOTCORRESPONDTOACONVERGENTINFINITESERIESFOREXAMPLETHEBASICFORMULASTHATEXPRESSFACTORIALPOWERSFACTORIALPOWERSINTERMSOFORDINARYPOWERSRISINGASYMPAREASYMPTOTICALLYVALIDFORANYREALANDANYFIXEDINTEGERYETTHESUMDIVERGESFORALLSEEEXERCISEOFCOURSEWHENISANONNEGATIVEINTEGERANDARESIMPLYPOLYNOMIALSOFDEGREEANDISESSENTIALLYTHESAMEASSTIRLSUMWHENISANEGATIVEINTEGERANDTHEINFINITESUMDOESCONVERGETOTHISSUMCANALSOBEWRITTENINTHEMORENATURALFORMUSINGEQSTIRLDUALFACTORIALPOWERSLETUSGIVEONESIMPLEEXAMPLEOFTHECONCEPTSWEHAVEINTRODUCEDSOFARCONSIDERTHEQUANTITYASGETSLARGETHEOPERATIONOFTAKINGANTHROOTTENDSTODECREASETHEVALUEBUTITISNOTIMMEDIATELYOBVIOUSWHETHERDECREASESORINCREASESITTURNSOUTTHATDECREASESTOUNITYLETUSCONSIDERTHESLIGHTLYMORECOMPLICATEDQUANTITYNOWGETSSMALLERASGETSBIGGERWHATHAPPENSTOTHISPROBLEMISEASILYSOLVEDBYAPPLYINGTHEFORMULASABOVEWEHAVEBECAUSEASSEEEXERCISESANDNOTICETHATWENEEDNTSPECIFYTHEBASEOFLOGINSIDENOTATIONWHERECONSTANTSAREIGNOREDTHISEQUATIONPROVESOURPREVIOUSCONTENTIONTHATITALSOTELLSUSTHATINOTHERWORDSISAPPROXIMATELYEQUALTOTHEDIFFERENCEISWHICHAPPROACHESZEROASAPPROACHESINFINITYPEOPLEOFTENABUSENOTATIONBYASSUMINGTHATITGIVESANEXACTORDEROFGROWTHTHEYUSEITASIFITSPECIFIESALOWERBOUNDASWELLASANUPPERBOUNDFOREXAMPLEANALGORITHMTOSORTNUMBERSMIGHTBECALLEDINEFFICIENTBECAUSEITSRUNNINGTIMEISBUTARUNNINGTIMEOFDOESNOTNECESSARILYIMPLYTHATTHERUNNINGTIMEISNOTALSOTHERESANOTHERNOTATIONBIGOMEGAFORLOWERBOUNDSTHESTATEMENTBIGOMEGAMEANSTHATTHEREAREPOSITIVECONSTANTSANDSUCHTHATUSINGTHISNOTATIONWECANCORRECTLYCONCLUDETHATASORTINGALGORITHMWHOSERUNNINGTIMEISWILLNOTBEASEFFICIENTASONEWHOSERUNNINGTIMEISIFISLARGEENOUGHHOWEVERWITHOUTKNOWINGTHECONSTANTFACTORSIMPLIEDBYANDWECANNOTSAYANYTHINGABOUTHOWLARGEMUSTBEBEFORETHEMETHODWILLBEGINTOWINFINALLYIFWEWANTTOSTATEANEXACTORDEROFGROWTHWITHOUTBEINGPRECISEABOUTCONSTANTFACTORSWECANUSEBIGTHETAEXERCISESWHATISZEROMMRBCDULLOBTAINEDASTONISHINGRESULTSBYUSINGTHESELFEVIDENTFORMULAWHATWASHISMISTAKEANDWHATSHOULDTHERIGHTHANDSIDEOFHISFORMULAHAVEBEENEACHSYMBOLREPRESENTSADIFFERENTAPPROXIMATEQUANTITYSINCETHELEFTHANDSIDEMIGHTBETHEBESTWECANSAYISWHICHFOLLOWSFROMANDTOPROVENOTETHATIFFORANDFORTHENFORSIGNEDJHQUICKSTUDENTMMULTIPLYBYANDEXPRESSYOURANSWERINNOTATIONMGIVEANASYMPTOTICEXPANSIONOFIFTOTERMSMPROVEORDISPROVEIFANDAREPOSITIVEFORALLCOMPAREWITHIFANDTHENBELONGSTOTHESETBUTNOTTOTHESETSOTHESTATEMENTISFALSEMWHATISWRONGWITHTHEFOLLOWINGARGUMENTSINCEFALLACIOUSREASONINGANDWEHAVEAVARIABLENUMBEROFSYMBOLSHASBEENREPLACEDBYASINGLESYMBOLFALSELYIMPLYINGTHATASINGLEVALUEOFWILLSUFFICEFOREACHTERMTHEGIVENSUMISACTUALLYASWEKNOWTHELASTEQUALITYISPERFECTLYVALIDPROVETHATIFISANYINTEGERTHEREISNOSUCHTHATFORARBITRARILYLARGEVALUESOFIFISPOSITIVETHEPOWERSERIESEXPZTELLSUSTHATHENCETHERATIOOFISUNBOUNDEDBYANYPROVETHATASREPLACEBYANDAPPLYTHEMETHODOFTHEPREVIOUSEXERCISESHOWTHATFORALLFIXEDIFFORTHENMAKEASTATEMENTSIMILARTOTHATINEXERCISEABOUTIFISAPOSITIVEINTEGERPROOFIFTHEREEXISTPOSITIVENUMBERSANDACONSTANTSUCHTHATWHENTHENMEXPLAINWHYEQISTRUEWECANAPPLYEQWITHANDTHISISJUSTIFIEDSINCEFORANYGIVENWHENISSUFFICIENTLYLARGEPROVETHATDOESNOTAPPROACHZEROASFORANYINTEGERUSINGTHEFACTTHATLETIFWERETHESTATEDIDENTITYWOULDSHOWTHATSOWOULDCONVERGEWHENBUTMPROVEORDISPROVEIFANDONLYIFPROOFWEMAYTAKEINTHEDEFINITIONSOFANDBIGOMEGAONOTATIONEULERSSUMMATIONFORMULAONEOFTHEMOSTUSEFULWAYSTOOBTAINGOODAPPROXIMATIONSTOASUMISEULERSSUMMATIONFORMULAANAPPROACHDUETOLEONHARDEULERHISMETHODAPPROXIMATESAFINITESUMBYANINTEGRALANDGIVESUSAMEANSTOGETBETTERANDBETTERAPPROXIMATIONSININTEGRATIONANDSUMMATIONMANYCASESCOMMENTARIIACADEMIAESCIENTIARUMIMPERIALISPETROPOLITANAEFIGFIGCOMPARINGASUMWITHANINTEGRALFIGUREFIGSHOWSACOMPARISONOFANDWHENEULERSSTRATEGYLEADSTOAUSEFULFORMULAFORTHEDIFFERENCEBETWEENTHESETWOQUANTITIESASSUMINGTHATISADIFFERENTIABLEFUNCTIONFORCONVENIENCEWESHALLUSETHENOTATIONOURDERIVATIONSTARTSWITHTHEFOLLOWINGIDENTITYTHISFOLLOWSFROMINTEGRATIONBYPARTSADDINGBOTHSIDESOFTHISEQUATIONFORINTEGRATIONBYPARTSWEFINDTHATTHATISWHEREISTHEPOLYNOMIALTHISISTHEDESIREDCONNECTIONBETWEENTHESUMANDTHEINTEGRALTHEAPPROXIMATIONCANBECARRIEDFURTHERIFWECONTINUETOINTEGRATEBYPARTSBEFOREDOINGTHISHOWEVERWESHALLDISCUSSTHEBERNOULLINUMBERSBERNOULLINUMBERSLUSCHNYINTERNETWHICHARETHECOEFFICIENTSINTHEFOLLOWINGINFINITESERIESWARNINGMANYBOOKSINCLUDINGEARLIERPRINTINGSOFTHEARTOFCOMPUTERPROGRAMMINGHAVEUSEDTHEFORMULAINSTEADOFTODEFINETHEBERNOULLINUMBERSTHEREBYMAKINGBUTPETERLUSCHNYPUBLISHEDANONLINEBERNOULLIMANIFESTOINWITHCOMPELLINGARGUMENTSTHATSHOULDBEASINTHEORIGINALWORKSOFSEKIANDBERNOULLITHECOEFFICIENTSOFTHISSERIESWHICHOCCURINAWIDEVARIETYOFPROBLEMSWEREINTRODUCEDTOEUROPEANMATHEMATICIANSINJAMESBERNOULLISARSCONJECTANDIPUBLISHEDPOSTHUMOUSLYINCURIOUSLYTHEYWEREALSODISCOVEREDATABOUTTHESAMETIMEBYTAKAKAZUSEKIINJAPANANDFIRSTPUBLISHEDINSHORTLYAFTERHISDEATHSEETAKAKAZUSEKISCOLLECTEDWORKSOSAKAWEHAVEFURTHERVALUESAPPEARINAPPENDIXASINCEISANEVENFUNCTIONWESEETHATIFWEMULTIPLYBOTHSIDESOFTHEDEFININGEQUATIONBYANDEQUATECOEFFICIENTSOFEQUALPOWERSOFWEOBTAINTHEFORMULASEEEXERCISEWENOWDEFINETHEBERNOULLIPOLYNOMIALBERNOULLIPOLYNOMIALIFTHENCORRESPONDINGTOTHEPOLYNOMIALUSEDABOVEINEQIFWEHAVEBYANDINOTHERWORDSHASNODISCONTINUITIESATINTEGERPOINTSTHERELEVANCEOFBERNOULLIPOLYNOMIALSANDBERNOULLINUMBERSTOOURPROBLEMWILLSOONBECLEARWEFINDBYDIFFERENTIATINGEQTHATANDTHEREFOREWHENWECANINTEGRATEBYPARTSASFOLLOWSINTEGRATIONBYPARTSFROMTHISRESULTWECANCONTINUETOIMPROVETHEAPPROXIMATIONEQANDWEOBTAINEULERSGENERALFORMULAEULERSUMMATUSINGWHERETHEREMAINDERWILLBESMALLWHENISVERYSMALLANDINFACTONECANSHOWTHATWHENISEVENSEECMATHONTHEOTHERHANDITUSUALLYTURNSOUTTHATTHEMAGNITUDEOFGETSLARGEASINCREASESSOTHEREISABESTVALUEOFATWHICHHASITSLEASTVALUEWHENISGIVENITISKNOWNTHATWHENISEVENTHEREISANUMBERSUCHTHATPROVIDEDTHATFORSOINTHESECIRCUMSTANCESTHEREMAINDERHASTHESAMESIGNASANDISLESSINABSOLUTEVALUETHANTHEFIRSTDISCARDEDTERMASIMPLERVERSIONOFTHISRESULTISPROVEDINEXERCISELETUSNOWAPPLYEULERSFORMULATOSOMEIMPORTANTEXAMPLESFIRSTWESETTHEDERIVATIVESARESOWEHAVEBYEQNOWWEFINDTHEFACTTHATEXISTSEULERSCONSTANTPROVESTHATTHECONSTANTDOESINFACTEXISTWECANTHEREFOREPUTEQSANDTOGETHERTODEDUCEAGENERALAPPROXIMATIONFORTHEHARMONICNUMBERSREPLACINGBYYIELDSFURTHERMOREBYEQWESEETHATTHEERRORISLESSTHANTHEFIRSTTERMDISCARDEDASAPARTICULARCASEWEHAVETHISISEQASYMPHARMTHEBERNOULLINUMBERSFORLARGEGETVERYLARGEAPPROXIMATELYWHENISEVENSOEQCANNOTBEEXTENDEDTOACONVERGENTINFINITESERIESFORANYFIXEDVALUEOFTHESAMETECHNIQUECANBEAPPLIEDTODEDUCESTIRLINGSAPPROXIMATIONTHISSTIRLINGSAPPROXIMATIONTIMEWESETANDEQYIELDSPROCEEDINGASABOVEWEFINDTHATTHELIMITEXISTSLETITBECALLEDSTIRLINGSCONSTANTTEMPORARILYWEGETSTIRLINGSRESULTINPARTICULARLETWEHAVENOWWECANTAKETHEEXPONENTIALOFBOTHSIDESUSINGTHEFACTTHATSEEEXERCISEANDEXPANDINGTHEEXPONENTIALWEGETOURFINALRESULTEXERCISESMPROVEEQUSEEQBINOMCONVEGFNOTETHATEQFOLLOWSFROMEQFORANYSEQUENCENOTONLYFORTHESEQUENCEDEFINEDBYEQEXPLAINWHYTHELATTERSEQUENCEISNECESSARYFORTHEVALIDITYOFEQTHEFUNCTIONMUSTBECONTINUOUSFORTHEINTEGRATIONBYPARTSLETBETHETHCORRECTIONTERMINEULERSSUMMATIONFORMULAASSUMINGTHATHASACONSTANTSIGNFORALLINTHERANGEPROVETHATWHENINOTHERWORDSSHOWTHATTHEREMAINDERISNOTLARGERINABSOLUTEVALUETHANTHELASTTERMCOMPUTEDNOTESWEHAVEANDISTIMESTHECOEFFICIENTOFININBERNOULLIPOLYNOMIALPARTICULARSINCEWEHAVEITISNOTDIFFICULTTOPROVETHATTHEMAXIMUMOFFOROCCURSATWHENISEVENNOWWHENLETUSWRITESIMPLYANDFORTHEQUANTITIESANDWEHAVEANDISBETWEENANDHENCELIESBETWEENANDITFOLLOWSTHATLIESBETWEENANDASLIGHTLYSTRONGERRESULTACCORDINGTOTHISARGUMENTWESEETHATIFFORTHEQUANTITIESANDHAVEOPPOSITESIGNSWHILEHASTHESIGNOFANDHASTHESIGNOFANDTHISPROVESSEEJFSTEFFENSENINTERPOLATIONBALTIMORESUMOFPOWERSSUMSOFPOWERSWHENTHEHIGHORDERDERIVATIVESOFAREALLZEROSOEULERSSUMMATIONFORMULAGIVESANEXACTVALUEFORTHESUMINTERMSOFBERNOULLINUMBERSITWASTHESTUDYOFFORTHATLEDBERNOULLIANDSEKITODISCOVERTHOSENUMBERSINTHEFIRSTPLACEEXPRESSINTERMSOFBERNOULLIPOLYNOMIALSCHECKYOURANSWERFORANDNOTETHATTHEDESIREDSUMISPERFORMEDFORINSTEADOFEULERSSUMMATIONFORMULAMAYBEAPPLIEDWITHREPLACINGTHROUGHOUTBERNOULLINUMBERSBERNOULLIPOLYNOMIALGIVENTHATSHOWTHATBYUSINGWALLISSPRODUCTEXERCISEWALLISPRODHINTCONSIDERFORLARGEVALUESOFITFOLLOWSTHATSTIRLFORGAMMASHOWTHATSTIRLINGSAPPROXIMATIONHOLDSFORNONINTEGERGAMMAFUNCTIONASWELLHINTLETINEULERSSUMMATIONFORMULAANDAPPLYTHEDEFINITIONOFGIVENINEQGAMMADEFASSUMETHATANDCONSIDERWEFINDALSONOWLETSOTHATSUBSTITUTINGANDLETTINGWEGETTHISSHOWSTHATHASTHESAMEEXPANSIONWEDERIVEDFORSUPERFACTORIALWHATISTHEAPPROXIMATEVALUEOFWHEREISACONSTANTTOOBTAINTHISRESULTAPPLYEULERSSUMMATIONFORMULATOAMOREACCURATEFORMULAISOBTAINEDIFWEMULTIPLYTHEANSWERABOVEBYINTHESEFORMULASISTHEKINKELINGLAISHERCONSTANTCRELLEMESSENGEROFMATHWHICHCANBESHOWNTOEQUALZETAFUNCTIONDEBRUIJNASYMPTOTICMETHODSINANALYSISEXMFINDTHEASYMPTOTICVALUEOFWITHABSOLUTEERRORUSEITTOCOMPUTETHEASYMPTOTICVALUEOFWITHRELATIVEERRORWHENISAPOSITIVECONSTANTHEREABSOLUTEERRORMEANSTHATRELATIVEERRORMEANSTHATEXWEHAVEFOREXAMPLETHUSTHEANSWERTOTHEFIRSTQUESTIONISFOUNDTOBEMASSIVECANCELLATIONOCCURSWHENWECOMPUTETHEQUANTITYTHEANSWERISTHEREFOREINCIDENTALLYCANBEWRITTENWHEREMAXBCMFINDTHEASYMPTOTICVALUEOFWITHARELATIVEERROROFINTWOWAYSAVIASTIRLINGSAPPROXIMATIONBVIAEXERCISEGOINGHALVESANDEQRISINGASYMPAWEHAVEANDHENCEBSINCEANDWEOBTAINTHESAMERESULTFROMRISINGASYMPBECAUSEMETHODBEXPLAINSWHYTHEDENOMINATORSINAREALLPOWERSOFKNUTHANDVARDIAMMEULERSSUMMATIONFORMULAINTEGRATIONANDSUMMATIONSTIRLINGSAPPROXIMATIONSOMEASYMPTOTICCALCULATIONSINTHISSUBSECTIONWESHALLINVESTIGATETHEFOLLOWINGTHREEINTRIGUINGSUMSINORDERTODEDUCETHEIRAPPROXIMATEVALUESQNDEFTHESEFUNCTIONSWHICHARESIMILARINAPPEARANCEYETINTRINSICALLYDIFFERENTARISEINSEVERALALGORITHMSTHATWESHALLENCOUNTERLATERBOTHANDAREFINITESUMSWHILEISANINFINITESUMITSEEMSTHATWHENISLARGEALLTHREESUMSWILLBENEARLYEQUALALTHOUGHITISNOTOBVIOUSWHATTHEAPPROXIMATEVALUEOFANYOFTHEMWILLBEOURQUESTFORAPPROXIMATEVALUESOFTHESEFUNCTIONSWILLLEADUSTHROUGHANUMBEROFVERYINSTRUCTIVESIDERESULTSYOUMAYWISHTOSTOPREADINGTEMPORARILYANDTRYYOURHANDATSTUDYINGTHESEFUNCTIONSBEFOREGOINGONTOSEEHOWTHEYAREATTACKEDHEREFIRSTWEOBSERVEANIMPORTANTCONNECTIONBETWEENANDSTIRLINGSFORMULATELLSUSTHATISAPPROXIMATELYSOWECANGUESSTHATANDWILLEACHTURNOUTTOBEROUGHLYEQUALTOTOGETANYFURTHERWEMUSTCONSIDERTHEPARTIALSUMSOFTHESERIESFORBYUSINGTAYLORSFORMULAWITHREMAINDERWEARESOONLEDTOANIMPORTANTFUNCTIONKNOWNASTHEINCOMPLETEINCOMPLETEGAMMAFUNCTIONGAMMAFUNCTIONGAMMAFUNCTIONWESHALLASSUMETHATBYEXERCISEGAMMAINTWEHAVETHISACCOUNTSFORTHENAMEINCOMPLETEGAMMAFUNCTIONITHASTWOUSEFULSERIESEXPANSIONSINPOWERSOFSEEEXERCISESANDINCGAMMASERIESFROMTHESECONDFORMULAWESEETHECONNECTIONWITHTHISEQUATIONHASPURPOSELYBEENWRITTENINAMORECOMPLICATEDFORMTHANNECESSARYSINCEISAFRACTIONOFANDISTHEQUANTITYINTHEPROBLEMBOILSDOWNTOGETTINGGOODESTIMATESOFWESHALLNOWDETERMINETHEAPPROXIMATEVALUEOFWHENISFIXEDANDISLARGETHEMETHODSTOBEUSEDHEREAREMOREIMPORTANTTHANTHERESULTSSOTHEREADERSHOULDSTUDYTHEFOLLOWINGDERIVATIONCAREFULLYBYDEFINITIONWEHAVELETUSSETANDCONSIDEREACHINTEGRALINTURNESTIMATEOFWECONVERTTOANINTEGRALFROMTOINFINITYBYSUBSTITUTINGWEFURTHERSUBSTITUTEWHICHISLEGITIMATESINCEISAMONOTONEFUNCTIONOFINTHELASTINTEGRALWEWILLREPLACEBYAPOWERSERIESINWEHAVESETTINGWEHAVETHEREFORETHISEXPANSIONMAYBEOBTAINEDBYTHEBINOMIALTHEOREMEFFICIENTMETHODSFORPERFORMINGSUCHTRANSFORMATIONSANDFORDOINGTHEOTHERPOWERSERIESMANIPULATIONSNEEDEDBELOWARECONSIDEREDINSECTIONWECANNOWSOLVEFORASAPOWERSERIESININALLOFTHESEFORMULASTHENOTATIONREFERSTOSMALLVALUESOFTHEONOTATIONARGUMENTTHATISFORSUFFICIENTLYSMALLPOSITIVEISTHISGOODENOUGHTHESUBSTITUTIONOFINTERMSOFINEQISSUPPOSEDTOBEVALIDFORNOTONLYFORFORTUNATELYITTURNSOUTTHATTHEVALUEOFTHEINTEGRALFROMTODEPENDSALMOSTENTIRELYONTHEVALUESOFTHEINTEGRANDNEARZEROINFACTWEHAVESEEEXERCISEFORANYFIXEDANDFORLARGEWEAREINTERESTEDINANAPPROXIMATIONUPTOTERMSANDSINCEISMUCHSMALLERTHANFORANYPOSITIVEANDWENEEDINTEGRATEONLYFROMTOFORANYFIXEDPOSITIVEWETHEREFORETAKETOBESMALLENOUGHSOTHATALLTHEPOWERSERIESMANIPULATIONSDONEABOVEAREJUSTIFIEDSEEEQSPWRSERIESASYMPANDLOGASYMPNOWSOBYPLUGGINGTHESERIESINTOTHEINTEGRALWEHAVEFINALLYESTIMATEOFINTHEINTEGRALWESUBSTITUTEANDOBTAINNOWFORANDLARGETHEREFOREWEFINDTHATFINALLYWEANALYZETHECOEFFICIENTTHATAPPEARSWHENWEMULTIPLYEQSANDBYTHEFACTORINBYSTIRLINGSAPPROXIMATIONWHICHISVALIDFORTHEGAMMAFUNCTIONBYEXERCISESTIRLFORGAMMAWEHAVEANDNOWTHEGRANDSUMMINGUPEQUATIONSANDYIELDGAMMAFUNCTIONAINCGAMMAASYMPTHEOREMAFORLARGEVALUESOFANDFIXEDTHEMETHODWEHAVEUSEDSHOWSHOWTHISAPPROXIMATIONCOULDBEEXTENDEDTOFURTHERPOWERSOFASFARASWEPLEASETHEOREMACANBEUSEDTOOBTAINTHEAPPROXIMATEVALUESOFANDBYUSINGEQSANDBUTWESHALLDEFERTHATCALCULATIONUNTILLATERLETUSNOWTURNTOFORWHICHSOMEWHATDIFFERENTMETHODSSEEMTOBEREQUIREDWEHAVETHUSTOGETTHEVALUESOFWEMUSTSTUDYSUMSOFTHEFORMLETANDAPPLYEULERSSUMMATIONFORMULAACRUDEANALYSISOFTHEREMAINDERSEEEXERCISESHOWSTHATANDSINCETHEINTEGRALISANINCOMPLETEGAMMAFUNCTIONWEHAVEOURFORMULAEQALSOREQUIRESANESTIMATEOFTHESUMANDTHISCANALSOBEOBTAINEDBYEQWENOWHAVEENOUGHFORMULASATOURDISPOSALTODETERMINETHEAPPROXIMATEVALUESOFANDANDITISONLYAMATTEROFSUBSTITUTINGANDMULTIPLYINGETCINTHISPROCESSWESHALLHAVEOCCASIONTOUSETHEEXPANSIONWHICHISPROVEDINEXERCISETHEMETHODOFYIELDSONLYTHEFIRSTTWOTERMSINTHEASYMPTOTICSERIESFORFURTHERTERMSCANBEOBTAINEDBYUSINGTHEINSTRUCTIVETECHNIQUEDESCRIBEDINEXERCISETHERESULTOFALLTHESECALCULATIONSGIVESUSTHEDESIREDASYMPTOTICFORMULASPNASYMPQNASYMPTHEFUNCTIONSSTUDIEDHEREHAVERECEIVEDONLYLIGHTTREATMENTINTHEPUBLISHEDLITERATURETHEFIRSTTERMINTHEEXPANSIONOFWASGIVENBYHBDEMUTHPHDTHESISSTANFORDUNIVERSITYOCTOBERUSINGTHISRESULTATABLEOFFORANDAGOODSLIDERULETHEAUTHORPROCEEDEDINTOKNUTHDEDUCETHEEMPIRICALESTIMATEITWASNATURALTOCONJECTURETHATWASREALLYANAPPROXIMATIONTOANDTHATWOULDPERHAPSTURNOUTTOBEANAPPROXIMATIONTOWHYNOTBEOPTIMISTICLATERASTHISSECTIONWASBEINGWRITTENTHECORRECTEXPANSIONOFWASDEVELOPEDANDTHECONJECTUREWASVERIFIEDFORTHEOTHERCOEFFICIENTWEHAVENOTBUTTHISNICELYCONFIRMSBOTHTHETHEORYANDTHEEMPIRICALESTIMATESFORMULASEQUIVALENTTOTHEASYMPTOTICVALUESOFANDWEREFIRSTDETERMINEDBYTHEBRILLIANTSELFTAUGHTINDIANMATHEMATICIANSRAMANUJANWHOPOSEDTHEPROBLEMOFESTIMATINGINJINDIANMATHSOCINHISANSWERTOTHEPROBLEMHEGAVETHEASYMPTOTICSERIESWHICHGOESCONSIDERABLYBEYONDEQHISDERIVATIONWASSOMEWHATMOREELEGANTTHANTHEMETHODDESCRIBEDABOVETOESTIMATEHESUBSTITUTEDANDEXPRESSEDTHEINTEGRANDASASUMOFTERMSOFTHEFORMTHEINTEGRALCANBEAVOIDEDCOMPLETELYSINCEWHENSEEANEVENSIMPLERAPPROACHTOTHEASYMPTOTICSOFPERHAPSTHESIMPLESTPOSSIBLEAPPEARSINEXERCISETHEDERIVATIONWEHAVEUSEDWHICHISINSTRUCTIVEINSPITEOFITSUNNECESSARYCOMPLICATIONSISDUETORFURCHZEITSCHRIFTFURPHYSIKWHOWASPRIMARILYINTERESTEDINTHEVALUEOFTHATMAKESTHEASYMPTOTICPROPERTIESOFTHEINCOMPLETEGAMMAFUNCTIONWERELATEREXTENDEDTOCOMPLEXARGUMENTSBYFGTRICOMIMATHZEITSCHRIFTSEEALSONMTEMMEMATHCOMPSIAMJMATHANALHWGOULDHASLISTEDREFERENCESTOSEVERALOTHERINVESTIGATIONSOFINAMMOURDERIVATIONSOFTHEASYMPTOTICSERIESFORANDUSEONLYSIMPLETECHNIQUESOFELEMENTARYCALCULUSNOTICETHATWEHAVEUSEDDIFFERENTMETHODSFOREACHFUNCTIONACTUALLYWECOULDHAVESOLVEDALLTHREEPROBLEMSUSINGTHETECHNIQUESOFEXERCISEWHICHAREEXPLAINEDFURTHERINSECTIONSANDTHATWOULDHAVEBEENMOREELEGANTBUTLESSINSTRUCTIVEFORADDITIONALINFORMATIONINTERESTEDREADERSSHOULDCONSULTTHEBEAUTIFULBOOKASYMPTOTICMETHODSINANALYSISBYNGDEBRUIJNAMSTERDAMNORTHHOLLANDSEEALSOTHEMORERECENTSURVEYBYAMODLYZKOHANDBOOKOFCOMBINATORICSMITPRESSWHICHINCLUDESDETAILEDEXAMPLESANDANEXTENSIVEBIBLIOGRAPHYEXERCISESPROVEEQBYINDUCTIONONINTEGRATEBYPARTSOBTAINEQFROMEQSUBSTITUTETHESERIESFORINTHEINTEGRALMDERIVEEQFROMEQSEEEQBINOMCONVEGFANDEXERCISERECIPBINOMPROVEEQISBOUNDEDASAFUNCTIONOFSINCEITGOESTOZEROASGOESFROMTOINFINITYREPLACEITBYANDTHERESULTINGINTEGRALISSHOWTHATINEQISCHANGESSIGNATTHEPOINTSOPROVEEQITISETCINTHEEVALUATIONOFWEHADTOCONSIDERGIVEANASYMPTOTICREPRESENTATIONOFTOTERMSOFORDERWHENISFIXEDANDISLARGETHEINTEGRANDASAPOWERSERIESINHASTHECOEFFICIENTOFASAFTERINTEGRATIONTERMSINAREETCTOGETINTHEANSWERWECANDISCARDTERMSWITHTHUSANEXPANSIONOFTHEPRODUCTLEADSULTIMATELYTOTHEANSWERINCGAMMAIFASANDSHOWTHATIFTHISPROVESINPARTICULARARESULTDUETOTRICOMIIFTHENSOLUTIONBYMIKLOSSIMONOVITSWEHAVEIFISLARGEENOUGHLETBETHEDIFFERENCEBETWEENTHETWOGIVENINTEGRALSWHEREANDNOTICETHATANDWHENALSOACCORDINGTOTHEMEANVALUETHEOREMFORSOMEBETWEENANDTHEREFOREWHENITFOLLOWSTHATINCGAMMAPXASYMPWHATISTHEBEHAVIOROFFORLARGEHEREISAREALCONSTANTANDIFWEASSUMETHATISANINTEGERSOTHATISWELLDEFINEDFORNEGATIVEOBTAINATLEASTTWOTERMSOFTHEASYMPTOTICEXPANSIONBEFORERESORTINGTOTERMSWEMAYASSUMETHATSINCEISGIVENBYTHEOREMAWEALSOASSUMETHATSINCETHECASEISTRIVIALCASESUBSTITUTEANDTHENWEHAVESOTHETRANSFORMATIONISMONOTONEFORANDWEOBTAINANINTEGRALOFTHEFORMSINCETHEPARENTHESIZEDQUANTITYISTHEANSWERISCASETHISISINTHELATTERINTEGRALSUBSTITUTETHENANDPROCEEDASINCASETHEANSWERTURNSOUTTOBETHESAMEFORMULAASCASEPLUSONENOTICETHATSOISVERYSMALLTHEANSWERTOEXERCISEGIVESANOTHERWAYTOSOLVETHISPROBLEMUNDERTHEASSUMPTIONSOFTHEPRECEDINGPROBLEMWITHOBTAINTHEASYMPTOTICEXPANSIONOFFORFIXEDTOTERMSOFTHESAMEORDERASOBTAINEDINTHEPREVIOUSEXERCISELETUSGENERALIZETHEFUNCTIONSANDBYINTRODUCINGAPARAMETEREXPLORETHISSITUATIONANDFINDASYMPTOTICFORMULASWHENFIRSTGENERALIZESNEXTWEHAVEGENERALIZINGSINCEWECANALSOWRITERELATINGTHISPROBLEMTOEXERCISEMOREOVERWECANTACKLEANDDIRECTLYBYUSINGEQSSTIRLGFANDSTIRLGFTODERIVESERIESEXPANSIONSINVOLVINGSTIRLINGNUMBERSTHESUMSOVERARECONVERGENTFORFIXEDWHENANDWHENWECANUSETHERELATIONBETWEENANDTHISLEADSTOTHEFORMULASHEREANDAREPOLYNOMIALSWHOSECOEFFICIENTSARESECONDORDEREULERIANNUMBERSCMATHSEELCARLITZEULERIANNUMBERSSECONDORDERPROCAMERMATHSOCTHECASEISSOMEWHATDELICATEBUTITCANBEHANDLEDBYCONTINUITYBECAUSETHEBOUNDIMPLIEDBYISINDEPENDENTOFWHENITISINTERESTINGTONOTETHATISEXTREMELYSMALLTHEFUNCTIONTHATAPPEAREDINCONNECTIONWITHTHENORMALDISTRIBUTIONSEESECTIONCANBEEXPRESSEDASASPECIALCASEOFTHEINCOMPLETEGAMMAFUNCTIONFINDVALUESOFANDSUCHTHATEQUALSINCOMPLETEGAMMAFUNCTIONSRAMANUJANPROVETHATWHERETHISIMPLIESTHEMUCHWEAKERRESULTSEEPFLAJOLETPGRABNERPKIRSCHENHOFERANDHPRODINGERJCOMPUTATIONALANDAPPLIEDMATHNGDEBRUIJNTHEPURPOSEOFTHISEXERCISEISTOFINDTHEASYMPTOTICEXPANSIONOFFORFIXEDASAREPLACINGBYSHOWTHATTHEGIVENSUMEQUALSWHEREBSHOWTHATFORALLANDTHEQUANTITYCANBEWRITTENINTHEFORMCPROVETHATASACONSEQUENCEOFBWEHAVEFORALLHINTTHESUMSOVERTHERANGEAREFORALLDSHOWTHATTHEASYMPTOTICEXPANSIONOFFORFIXEDCANBEOBTAINEDBYEULERSSUMMATIONFORMULAEFINALLYTHEREFORETHISCOMPUTATIONCANINPRINCIPLEBEEXTENDEDTOFORANYDESIREDSHOWTHATTHEFOLLOWINGINTEGRALISRELATEDTOEXPANDINGTHEINTEGRANDBYTHEBINOMIALTHEOREMWEOBTAINSUMOFQNMPROVETHEIDENTITYWRITEASASUMANDINTERCHANGETHEORDEROFSUMMATIONUSINGEQSTIRLINPOWERSKWMILLERSYMMETRYDEMANDSTHATWECONSIDERALSOAFOURTHSERIESWHICHISTOASISTOWHATISTHEASYMPTOTICBEHAVIOROFTHISFUNCTIONNOTETHATWHILEMSHOWTHATTHESUMSANDCANBEEXPRESSEDVERYSIMPLYINTERMSOFTHEFUNCTIONLETTHENFORWEHAVEBYABELSFORMULAABELBINOMCONSEQUENTLYTHISFORMULAISDUETOCAUCHYWHOPROVEDITUSINGTHECALCULUSOFRESIDUESSEEHISOEUVRESTHESTATEDSUMSARETHEREFOREEQUALRESPECTIVELYTOANDWATSONSLEMMASHOWTHATIFTHEINTEGRALEXISTSFORALLLARGEANDIFFORWHEREANDTHENSUPPOSEEXISTSFORALLANDFORLETTHENWHENWEHAVEEWBARNESPHILTRANSAGNWATSONPROCLONDONMATHSOCLETBETHEPOWERSERIESSOLUTIONTOTHEEQUATIONASINSHOWTHATFORALLHINTAPPLYWATSONSLEMMATOTHEIDENTITYOFEXERCISECCROUSSEAUAPPLIEDMATHLETTERSWEHAVEBYSUBSTITUTINGANDLETTINGNOTICETHATWHENISSUFFICIENTLYSMALLHENCEANDWECANAPPLYWATSONSLEMMATOIFEELASIFISHOULDSUCCEEDINDOINGSOMETHINGINMATHEMATICSALTHOUGHICANNOTSEEWHYITISSOVERYIMPORTANTHELENKELLERASYMPTOTICSMATHEMATICALPRELIMINARIESINTHISSECTIONWESHALLINVESTIGATETHEMATHEMATICALNOTATIONSTHATOCCURTHROUGHOUTTHEARTOFCOMPUTERPROGRAMMINGANDWELLDERIVESEVERALBASICFORMULASTHATWILLBEUSEDREPEATEDLYEVENAREADERNOTCONCERNEDWITHTHEMORECOMPLEXMATHEMATICALDERIVATIONSSHOULDATLEASTBECOMEFAMILIARWITHTHEMEANINGSOFTHEVARIOUSFORMULASSOASTOBEABLETOUSETHERESULTSOFTHEDERIVATIONSMATHEMATICALNOTATIONISUSEDFORTWOMAINPURPOSESINTHISBOOKTODESCRIBEPORTIONSOFANALGORITHMANDTOANALYZETHEPERFORMANCECHARACTERISTICSOFANALGORITHMTHENOTATIONUSEDINDESCRIPTIONSOFALGORITHMSISQUITESIMPLEASEXPLAINEDINTHEPREVIOUSSECTIONWHENANALYZINGTHEPERFORMANCEOFALGORITHMSWENEEDTOUSEOTHERMORESPECIALIZEDNOTATIONSMOSTOFTHEALGORITHMSWEWILLDISCUSSAREACCOMPANIEDBYMATHEMATICALCALCULATIONSTHATDETERMINETHESPEEDATWHICHTHEALGORITHMMAYBEEXPECTEDTORUNTHESECALCULATIONSDRAWONNEARLYEVERYBRANCHOFMATHEMATICSANDASEPARATEBOOKWOULDBENECESSARYTODEVELOPALLOFTHEMATHEMATICALCONCEPTSTHATAREUSEDINONEPLACEORANOTHERHOWEVERTHEMAJORITYOFTHECALCULATIONSCANBECARRIEDOUTWITHAKNOWLEDGEOFCOLLEGEALGEBRAANDTHEREADERWITHAKNOWLEDGEOFELEMENTARYCALCULUSWILLBEABLETOUNDERSTANDNEARLYALLOFTHEMATHEMATICSTHATAPPEARSSOMETIMESWEWILLNEEDTOUSEDEEPERRESULTSOFCOMPLEXVARIABLETHEORYGROUPTHEORYNUMBERTHEORYPROBABILITYTHEORYETCINSUCHCASESTHETOPICWILLBEEXPLAINEDINANELEMENTARYMANNERIFPOSSIBLEORAREFERENCETOOTHERSOURCESOFINFORMATIONWILLBEGIVENTHEMATHEMATICALTECHNIQUESINVOLVEDINTHEANALYSISOFALGORITHMSUSUALLYHAVEADISTINCTIVEFLAVORFOREXAMPLEWEWILLQUITEOFTENFINDOURSELVESWORKINGWITHFINITESUMMATIONSOFRATIONALNUMBERSORWITHTHESOLUTIONSTORECURRENCERELATIONSSUCHTOPICSARETRADITIONALLYGIVENONLYALIGHTTREATMENTINMATHEMATICSCOURSESANDSOTHEFOLLOWINGSUBSECTIONSAREDESIGNEDNOTONLYTOGIVEATHOROUGHDRILLINGINTHEUSEOFTHENOTATIONSTOBEDEFINEDBUTALSOTOILLUSTRATEINDEPTHTHETYPESOFCALCULATIONSANDTECHNIQUESTHATWILLBEMOSTUSEFULTOUSIMPORTANTNOTEALTHOUGHTHEFOLLOWINGSUBSECTIONSPROVIDEARATHEREXTENSIVETRAININGINTHEMATHEMATICALSKILLSNEEDEDINCONNECTIONWITHTHESTUDYOFCOMPUTERALGORITHMSMOSTREADERSWILLNOTSEEATFIRSTANYVERYSTRONGCONNECTIONSBETWEENTHISMATERIALANDCOMPUTERPROGRAMMINGEXCEPTINSECTIONTHEREADERMAYCHOOSETOREADTHEFOLLOWINGSUBSECTIONSCAREFULLYWITHIMPLICITFAITHINTHEAUTHORSASSERTIONTHATTHETOPICSTREATEDHEREAREINDEEDVERYRELEVANTBUTITISPROBABLYPREFERABLEFORMOTIVATIONTOSKIMOVERTHISSECTIONLIGHTLYATFIRSTANDAFTERSEEINGNUMEROUSAPPLICATIONSOFTHETECHNIQUESINFUTURECHAPTERSRETURNTOITLATERFORMOREINTENSIVESTUDYIFTOOMUCHTIMEISSPENTSTUDYINGTHISMATERIALWHENFIRSTREADINGTHEBOOKAPERSONMIGHTNEVERGETONTOTHECOMPUTERPROGRAMMINGTOPICSHOWEVEREACHREADERSHOULDATLEASTBECOMEFAMILIARWITHTHEGENERALCONTENTSOFTHESESUBSECTIONSANDSHOULDTRYTOSOLVEAFEWOFTHEEXERCISESEVENONFIRSTREADINGSECTIONSHOULDRECEIVEPARTICULARATTENTIONSINCEITISTHEPOINTOFDEPARTUREFORMOSTOFTHETHEORETICALMATERIALDEVELOPEDLATERSECTIONWHICHFOLLOWSABRUPTLYLEAVESTHEREALMOFPUREMATHEMATICSANDENTERSINTOPURECOMPUTERPROGRAMMINGAMORELEISURELYPRESENTATIONOFMUCHOFTHEFOLLOWINGMATERIALTOGETHERWITHRELATEDCONCEPTSCANBEFOUNDINTHEBOOKCONCRETEMATHEMATICSBYRLGRAHAMDEKNUTHANDOPATASHNIKSECONDEDITIONREADINGMASSADDISONWESLEYTHATBOOKWILLBECALLEDSIMPLYCMATHWHENWENEEDTOREFERTOITLATERMATHEMATICALINDUCTIONLETBESOMESTATEMENTABOUTTHEINTEGERFOREXAMPLEMIGHTBETIMESISANEVENNUMBERORIFTHENSUPPOSEWEWANTTOPROVETHATISTRUEFORALLPOSITIVEINTEGERSANIMPORTANTWAYTODOTHISISINDUCTIONAGIVEAPROOFTHATISTRUEBGIVEAPROOFTHATIFALLOFARETRUETHENISALSOTRUETHISPROOFSHOULDBEVALIDFORANYPOSITIVEINTEGERASANEXAMPLECONSIDERTHEFOLLOWINGSERIESOFEQUATIONSWHICHMANYPEOPLEHAVEDISCOVEREDINDEPENDENTLYSINCEANCIENTTIMESARITHMETICPROGRESSIONWECANFORMULATETHEGENERALPROPERTYASFOLLOWSLETUSFORTHEMOMENTCALLTHISEQUATIONWEWISHTOPROVETHATISTRUEFORALLPOSITIVEFOLLOWINGTHEPROCEDUREOUTLINEDABOVEWEHAVEAISTRUESINCEBIFALLOFARETRUETHENINPARTICULARISTRUESOEQHOLDSADDINGTOBOTHSIDESWEOBTAINWHICHPROVESTHATISALSOTRUEWECANREGARDTHISMETHODASANALGORITHMICPROOFPROCEDUREINFACTTHEFOLLOWINGALGORITHMPRODUCESAPROOFOFFORANYPOSITIVEINTEGERASSUMINGTHATSTEPSAANDBABOVEHAVEBEENWORKEDOUTALGORITHMICONSTRUCTAPROOFGIVENAPOSITIVEINTEGERTHISALGORITHMWILLOUTPUTAPROOFTHATISTRUEIPROVESETANDACCORDINGTOAOUTPUTAPROOFOFIIFTERMINATETHEALGORITHMTHEREQUIREDPROOFHASBEENOUTPUTIPROVEACCORDINGTOBOUTPUTAPROOFTHATIFALLOFARETRUETHENISTRUEALSOOUTPUTWEHAVEALREADYPROVEDHENCEISTRUEIINCREASEINCREASEBYANDGOTOSTEPIFIGFIGALGORITHMIMATHEMATICALINDUCTIONSINCETHISALGORITHMCLEARLYPRESENTSAPROOFOFFORANYGIVENTHEPROOFTECHNIQUECONSISTINGOFSTEPSAANDBISLOGICALLYVALIDITISCALLEDPROOFBYMATHEMATICALINDUCTIONTHECONCEPTOFMATHEMATICALINDUCTIONSHOULDBEDISTINGUISHEDFROMWHATISUSUALLYCALLEDINDUCTIVEREASONINGINSCIENCEASCIENTISTTAKESSPECIFICOBSERVATIONSANDCREATESBYINDUCTIONAGENERALTHEORYORHYPOTHESISTHATACCOUNTSFORTHESEFACTSFOREXAMPLEWEMIGHTOBSERVETHEFIVERELATIONSINABOVEANDFORMULATEINTHISSENSEINDUCTIONISNOMORETHANOURBESTGUESSABOUTTHESITUATIONMATHEMATICIANSWOULDCALLITANEMPIRICALRESULTORACONJECTUREANOTHEREXAMPLEWILLBEHELPFULLETDENOTETHENUMBEROFPARTITIONSOFTHATISTHENUMBEROFDIFFERENTWAYSTOWRITEASASUMOFPOSITIVEINTEGERSDISREGARDINGORDERSINCECANBEPARTITIONEDINEXACTLYSEVENWAYSWEHAVEINFACTITISEASYTOESTABLISHTHEFIRSTFEWVALUESATTHISPOINTWEMIGHTTENTATIVELYFORMULATEBYINDUCTIONTHEHYPOTHESISTHATTHESEQUENCERUNSTHROUGHTHEPRIMENUMBERSTOTESTTHISHYPOTHESISWEPROCEEDTOCALCULATEANDBEHOLDCONFIRMINGOURCONJECTUREUNFORTUNATELYTURNSOUTTOBESPOILINGEVERYTHINGANDWEMUSTTRYAGAINTHENUMBERSAREKNOWNTOBEQUITECOMPLICATEDALTHOUGHSRAMANUJANSUCCEEDEDINGUESSINGANDPROVINGMANYREMARKABLETHINGSABOUTTHEMFORFURTHERINFORMATIONSEEGHHARDYRAMANUJANLONDONCAMBRIDGEUNIVERSITYPRESSCHAPTERSANDSEEALSOSECTIONMATHEMATICALINDUCTIONISQUITEDIFFERENTFROMINDUCTIONINTHESENSEJUSTEXPLAINEDITISNOTJUSTGUESSWORKBUTACONCLUSIVEPROOFOFASTATEMENTINDEEDITISAPROOFOFINFINITELYMANYSTATEMENTSONEFOREACHITHASBEENCALLEDINDUCTIONONLYBECAUSEONEMUSTFIRSTDECIDESOMEHOWWHATISTOBEPROVEDBEFOREONECANAPPLYTHETECHNIQUEOFMATHEMATICALINDUCTIONHENCEFORTHINTHISBOOKWESHALLUSETHEWORDINDUCTIONONLYWHENWEWISHTOIMPLYPROOFBYMATHEMATICALINDUCTIONTHEREISAGEOMETRICALWAYTOPROVEEQFIGUREFIGSHOWSFORCELLSBROKENINTOGROUPSOFCELLSHOWEVERINTHEFINALANALYSISTHISPICTURECANBEREGARDEDASAPROOFONLYIFWESHOWTHATTHECONSTRUCTIONCANBECARRIEDOUTFORALLANDSUCHADEMONSTRATIONISESSENTIALLYTHESAMEASAPROOFBYINDUCTIONOURPROOFOFEQUSEDONLYASPECIALCASEOFBWEMERELYSHOWEDTHATTHETRUTHOFIMPLIESTHETRUTHOFTHISISANIMPORTANTSIMPLECASETHATARISESFREQUENTLYBUTOURNEXTEXAMPLEILLUSTRATESTHEPOWEROFTHEMETHODALITTLEMOREFIGFIGTHESUMOFODDNUMBERSISASQUAREWEDEFINETHEFIBONACCISEQUENCEBYTHERULETHATANDEVERYFURTHERTERMISTHESUMOFTHEPRECEDINGTWOTHUSTHESEQUENCEBEGINSWEWILLINVESTIGATEITINDETAILINSECTIONWEWILLNOWPROVETHATIFISTHENUMBERWEHAVEFORALLPOSITIVEINTEGERSCALLTHISFORMULAIFTHENSOSTEPAHASBEENDONEFORSTEPBWENOTICEFIRSTTHATISALSOTRUESINCENOWIFALLOFARETRUEANDWEKNOWINPARTICULARTHATANDARETRUESOANDADDINGTHESEINEQUALITIESWEGETGOLDENRATIOTHEIMPORTANTPROPERTYOFTHENUMBERINDEEDTHEREASONWECHOSETHISNUMBERFORTHISPROBLEMINTHEFIRSTPLACEISTHATPLUGGINGINTOGIVESWHICHISSOSTEPBHASBEENDONEANDHASBEENPROVEDBYMATHEMATICALINDUCTIONNOTICETHATWEAPPROACHEDSTEPBINTWODIFFERENTWAYSHEREWEPROVEDDIRECTLYWHENANDWEUSEDANINDUCTIVEMETHODWHENTHISWASNECESSARYSINCEWHENOURREFERENCETOWOULDNOTHAVEBEENLEGITIMATEACTUALLYDOESHAPPENTOTRUEINTHISPARTICULARCONTEXTBUTWEWERENTASKEDTOPROVEITSOWEDIDNTMATHEMATICALINDUCTIONCANALSOBEUSEDTOPROVETHINGSABOUTALGORITHMSCONSIDERTHEFOLLOWINGGENERALIZATIONOFEUCLIDSALGORITHMPROOFSOFALGORITHMSEUCLIDSALGORITHMEXTENDEDGREATESTCOMMONDIVISOREEXTEUCLIDALGORITHMEEXTENDEDEUCLIDSALGORITHMGIVENTWOPOSITIVEINTEGERSANDWECOMPUTETHEIRGREATESTCOMMONDIVISORANDWEALSOCOMPUTETWONOTNECESSARILYPOSITIVEINTEGERSANDSUCHTHATEINITIALIZESETEDIVIDELETANDBETHEQUOTIENTANDREMAINDERRESPECTIVELYOFDIVIDEDBYWEHAVEANDEREMAINDERZEROIFTHEALGORITHMTERMINATESWEHAVEINTHISCASEASDESIREDERECYCLESETANDGOBACKTOEIFWESUPPRESSTHEVARIABLESANDFROMTHISALGORITHMANDUSEANDFORTHEAUXILIARYVARIABLESANDWEHAVEOUROLDALGORITHMEUCLIDSALGTHENEWVERSIONDOESALITTLEMOREBYDETERMININGTHECOEFFICIENTSANDSUPPOSETHATANDWEHAVESUCCESSIVELYAFTERSTEPETHEANSWERISCORRECTTHEGREATESTCOMMONDIVISOROFANDTHEPROBLEMISTOPROVETHATTHISALGORITHMWORKSPROPERLYFORALLANDWECANTRYTOAPPLYTHEMETHODOFMATHEMATICALINDUCTIONBYLETTINGBETHESTATEMENTALGORITHMEWORKSFORANDALLINTEGERSHOWEVERTHATAPPROACHDOESNTWORKOUTSOEASILYANDWENEEDTOPROVESOMEEXTRAFACTSAFTERALITTLESTUDYWEFINDTHATSOMETHINGMUSTBEPROVEDABOUTANDANDTHEAPPROPRIATEFACTISTHATTHEEQUALITIESALWAYSHOLDWHENEVERSTEPEISEXECUTEDWEMAYPROVETHESEEQUALITIESDIRECTLYBYOBSERVINGTHATTHEYARECERTAINLYTRUETHEFIRSTTIMEWEGETTOEANDTHATSTEPEDOESNOTCHANGETHEIRVALIDITYSEEEXERCISENOWWEAREREADYTOSHOWTHATALGORITHMEISVALIDBYINDUCTIONONIFISAMULTIPLEOFTHEALGORITHMOBVIOUSLYWORKSPROPERLYSINCEWEAREDONEIMMEDIATELYATETHEFIRSTTIMETHISCASEALWAYSOCCURSWHENTHEONLYCASEREMAININGISWHENANDISNOTAMULTIPLEOFINSUCHACASETHEALGORITHMPROCEEDSTOSETAFTERTHEFIRSTEXECUTIONANDSINCEWEMAYASSUMEBYINDUCTIONTHATTHEFINALVALUEOFISTHEGCDOFANDBYTHEARGUMENTGIVENINSECTIONTHEPAIRSANDHAVETHESAMECOMMONDIVISORSANDINPARTICULARTHEYHAVETHESAMEGREATESTCOMMONDIVISORHENCEISTHEGCDOFANDANDBYEUCLIDSALGORITHMEXTENDEDGREATESTCOMMONDIVISORFIGFIGFLOWCHARTFORALGORITHMELABELEDWITHASSERTIONSTHATPROVETHEVALIDITYOFTHEALGORITHMTHEITALICIZEDPHRASEINTHEPROOFABOVEILLUSTRATESTHECONVENTIONALLANGUAGETHATISSOOFTENUSEDINANINDUCTIVEPROOFWHENDOINGPARTBOFTHECONSTRUCTIONRATHERTHANSAYINGWEWILLNOWASSUMEANDWITHTHISASSUMPTIONWEWILLPROVEWEOFTENSAYSIMPLYWEWILLNOWPROVEWEMAYASSUMEBYINDUCTIONTHATISTRUEWHENEVERIFWEEXAMINETHISARGUMENTVERYCLOSELYANDCHANGEOURVIEWPOINTSLIGHTLYWECANENVISIONAGENERALMETHODAPPLICABLETOPROVINGTHEVALIDITYOFANYALGORITHMTHEIDEAISTOTAKEAFLOWCHARTFORSOMEALGORITHMANDTOLABELFLOWCHARTASSERTIONSEACHOFTHEARROWSWITHANASSERTIONABOUTTHECURRENTSTATEOFAFFAIRSATTHETIMETHECOMPUTATIONTRAVERSESTHATARROWSEEFIGFIGWHERETHEASSERTIONSHAVEBEENLABELEDAAAALLOFTHESEASSERTIONSHAVETHEADDITIONALSTIPULATIONTHATTHEVARIABLESAREINTEGERSTHISSTIPULATIONHASBEENOMITTEDTOSAVESPACEAGIVESTHEINITIALASSUMPTIONSUPONENTRYTOTHEALGORITHMANDASTATESWHATWEHOPETOPROVEABOUTTHEOUTPUTVALUESANDTHEGENERALMETHODCONSTRUCTSAPROOFFOREACHBOXINTHEFLOWCHARTTHATTHUSFOREXAMPLEWEMUSTPROVETHATEITHERAORABEFOREEIMPLIESAAFTEREINTHISCASEAISASTRONGERSTATEMENTTHANATHATISAIMPLIESASOWENEEDONLYPROVETHATABEFOREEIMPLIESAAFTERNOTICETHATTHECONDITIONISNECESSARYINAJUSTTOPROVETHATOPERATIONEEVENMAKESSENSEITISALSONECESSARYTOSHOWTHATAANDIMPLIESATHATAANDIMPLIESAETCEACHOFTHEREQUIREDPROOFSISVERYSTRAIGHTFORWARDONCESTATEMENTHASBEENPROVEDFOREACHBOXITFOLLOWSTHATALLASSERTIONSARETRUEDURINGANYEXECUTIONOFTHEALGORITHMFORWECANNOWUSEINDUCTIONONTHENUMBEROFSTEPSOFTHECOMPUTATIONINTHESENSEOFTHENUMBEROFARROWSTRAVERSEDINTHEFLOWCHARTWHILETRAVERSINGTHEFIRSTARROWTHEONELEADINGFROMSTARTTHEASSERTIONAISTRUESINCEWEALWAYSASSUMETHATOURINPUTVALUESMEETTHESPECIFICATIONSSOTHEASSERTIONONTHEFIRSTARROWTRAVERSEDISCORRECTIFTHEASSERTIONTHATLABELSTHETHARROWISTRUETHENBYTHEASSERTIONTHATLABELSTHESTARROWISALSOTRUEUSINGTHISGENERALMETHODTHEPROBLEMOFPROVINGTHATAGIVENALGORITHMISVALIDEVIDENTLYCONSISTSMOSTLYOFINVENTINGTHERIGHTASSERTIONSTOPUTINTHEFLOWCHARTONCETHISINDUCTIVELEAPHASBEENMADEITISPRETTYMUCHROUTINETOCARRYOUTTHEPROOFSTHATEACHASSERTIONLEADINGINTOABOXLOGICALLYIMPLIESEACHASSERTIONLEADINGOUTINFACTITISPRETTYMUCHROUTINETOINVENTTHEASSERTIONSTHEMSELVESONCEAFEWOFTHEDIFFICULTONESHAVEBEENDISCOVEREDTHUSITISVERYSIMPLEINOUREXAMPLETOWRITEOUTESSENTIALLYWHATAAANDAMUSTBEIFONLYAAANDAAREGIVENINOUREXAMPLEASSERTIONAISTHECREATIVEPARTOFTHEPROOFALLTHERESTCOULDINPRINCIPLEBESUPPLIEDMECHANICALLYHENCENOATTEMPTHASBEENMADETOGIVEDETAILEDFORMALPROOFSOFTHEALGORITHMSTHATFOLLOWINTHISBOOKATTHELEVELOFDETAILFOUNDINFIGFIGITSUFFICESTOSTATETHEKEYASSERTIONSTHOSEASSERTIONSWHICHAREOFTENCALLEDINDUCTIVEASSERTIONSBECAUSEWEPROVETHEMBYINDUCTIONONTHELENGTHOFCOMPUTATIONEITHERAPPEARINTHEDISCUSSIONFOLLOWINGANALGORITHMORTHEYAREGIVENASPARENTHETICALREMARKSINTHETEXTOFTHEALGORITHMITSELFTHISAPPROACHTOPROVINGTHECORRECTNESSOFALGORITHMSHASANOTHERASPECTTHATISEVENMOREIMPORTANTITMIRRORSTHEWAYWEUNDERSTANDANALGORITHMRECALLTHATINSECTIONTHEREADERWASCAUTIONEDNOTTOEXPECTTOREADANALGORITHMLIKEPARTOFANOVELONEORTWOTRIALSOFTHEALGORITHMONSOMESAMPLEDATAWERERECOMMENDEDTHISWASDONEEXPRESSLYBECAUSEANEXAMPLERUNTHROUGHOFTHEALGORITHMHELPSAPERSONFORMULATETHEVARIOUSASSERTIONSMENTALLYITISTHECONTENTIONOFTHEAUTHORTHATWEREALLYUNDERSTANDWHYANALGORITHMISVALIDONLYWHENWEREACHTHEPOINTTHATOURMINDSHAVEIMPLICITLYFILLEDINALLTHEASSERTIONSASWASDONEINFIGFIGTHISPOINTOFVIEWHASIMPORTANTPSYCHOLOGICALCONSEQUENCESFORTHEPROPERCOMMUNICATIONOFALGORITHMSFROMONEPERSONTOANOTHERALGORITHMSHOWTOREADALGORITHMSCOMMUNICATIONOFITIMPLIESTHATTHEKEYASSERTIONSTHOSETHATCANNOTEASILYBEDERIVEDBYANAUTOMATONSHOULDALWAYSBESTATEDEXPLICITLYWHENANALGORITHMISBEINGEXPLAINEDTOSOMEONEELSEWHENALGORITHMEISBEINGPUTFORWARDASSERTIONASHOULDBEMENTIONEDTOOANALERTREADERWILLHAVENOTICEDAGAPINGHOLEINOURLASTPROOFOFALGORITHMEHOWEVERWENEVERSHOWEDTHATTHEALGORITHMTERMINATESALLWEHAVEPROVEDISTHATIFITTERMINATESITGIVESTHERIGHTANSWERPROOFOFTERMINATIONNOTICEFOREXAMPLETHATALGORITHMESTILLMAKESSENSEIFWEALLOWITSVARIABLESANDTOASSUMEVALUESOFTHEFORMWHEREANDAREINTEGERSTHEVARIABLESARETOREMAININTEGERVALUEDIFWESTARTTHEMETHODWITHANDSAYITWILLCOMPUTEAGREATESTCOMMONDIVISORWITHEVENUNDERTHISEXTENSIONOFTHEASSUMPTIONSTHEPROOFSOFASSERTIONSATHROUGHAREMAINVALIDTHEREFOREALLASSERTIONSARETRUETHROUGHOUTANYEXECUTIONOFTHEPROCEDUREBUTIFWESTARTOUTWITHANDTHECOMPUTATIONNEVERTERMINATESSEEEXERCISEHENCEAPROOFOFASSERTIONSATHROUGHADOESNOTLOGICALLYPROVETHATTHEALGORITHMISFINITEPROOFSOFTERMINATIONAREUSUALLYHANDLEDSEPARATELYBUTEXERCISESHOWSTHATITISPOSSIBLETOEXTENDTHEMETHODABOVEINMANYIMPORTANTCASESSOTHATAPROOFOFTERMINATIONISINCLUDEDASABYPRODUCTPROOFOFTERMINATIONPROOFSOFALGORITHMSWEHAVENOWTWICEPROVEDTHEVALIDITYOFALGORITHMETOBESTRICTLYLOGICALWESHOULDALSOTRYTOPROVETHATTHEFIRSTALGORITHMINTHISSECTIONALGORITHMIISVALIDINFACTWEHAVEUSEDALGORITHMITOESTABLISHTHECORRECTNESSOFANYPROOFBYINDUCTIONIFWEATTEMPTTOPROVETHATALGORITHMIWORKSPROPERLYHOWEVERWEARECONFRONTEDWITHADILEMMAWECANTREALLYPROVEITWITHOUTUSINGINDUCTIONAGAINTHEARGUMENTWOULDBECIRCULARINTHELASTANALYSISEVERYPROPERTYOFTHEINTEGERSMUSTBEPROVEDUSINGINDUCTIONSOMEWHEREALONGTHELINEBECAUSEIFWEGETDOWNTOBASICCONCEPTSTHEINTEGERSAREESSENTIALLYDEFINEDBYINDUCTIONTHEREFOREWEMAYTAKEASAXIOMATICTHEIDEATHATANYPOSITIVEINTEGEREITHEREQUALSORCANBEREACHEDBYSTARTINGWITHANDREPETITIVELYADDINGTHISSUFFICESTOPROVETHATALGORITHMIISVALIDFORARIGOROUSSTUDYOFFUNDAMENTALCONCEPTSABOUTTHEINTEGERSSEETHEARTICLEONMATHEMATICALINDUCTIONBYLEONHENKINAMMTHEIDEABEHINDMATHEMATICALINDUCTIONISTHUSINTIMATELYRELATEDTOTHECONCEPTOFNUMBERTHEFIRSTEUROPEANTOAPPLYMATHEMATICALINDUCTIONTORIGOROUSPROOFSWASTHEITALIANSCIENTISTFRANCESCOMAUROLICOINPIERREDEFERMATMADEFURTHERIMPROVEMENTSINTHEEARLYTHCENTURYHECALLEDITTHEMETHODOFINFINITEDESCENTTHENOTIONALSOAPPEARSCLEARLYINTHELATERWRITINGSOFBLAISEPASCALTHEPHRASEMATHEMATICALINDUCTIONAPPARENTLYWASCOINEDBYADEMORGANINTHEEARLYNINETEENTHCENTURYSEETHEPENNYCYCLOPAEDIAAMMARCHHISTEXACTSCIFURTHERDISCUSSIONOFMATHEMATICALINDUCTIONCANBEFOUNDINGPOLYASBOOKINDUCTIONANDANALOGYINMATHEMATICSPRINCETONNJPRINCETONUNIVERSITYPRESSCHAPTERTHEFORMULATIONOFALGORITHMPROVINGINTERMSOFASSERTIONSANDINDUCTIONASGIVENABOVEISESSENTIALLYDUETORWFLOYDHEPOINTEDOUTTHATASEMANTICDEFINITIONOFEACHOPERATIONINAPROGRAMMINGLANGUAGECANBEFORMULATEDASALOGICALRULETHATTELLSEXACTLYWHATASSERTIONSCANBEPROVEDAFTERTHEOPERATIONBASEDONWHATASSERTIONSARETRUEBEFOREHANDSEEASSIGNINGMEANINGSTOPROGRAMSPROCSYMPAPPLMATHAMERMATHSOCSIMILARIDEASWEREVOICEDINDEPENDENTLYBYPETERNAURBITWHOCALLEDTHEASSERTIONSGENERALSNAPSHOTSANIMPORTANTREFINEMENTTHENOTIONOFINVARIANTSWASINTRODUCEDBYCARHOARESEEFOREXAMPLECACMLATERAUTHORSFOUNDITADVANTAGEOUSTOREVERSEFLOYDSDIRECTIONGOINGFROMANASSERTIONTHATSHOULDHOLDAFTERANOPERATIONTOTHEWEAKESTPRECONDITIONTHATMUSTHOLDBEFORETHEOPERATIONISDONESUCHANAPPROACHMAKESITPOSSIBLETODISCOVERNEWALGORITHMSTHATAREGUARANTEEDTOBECORRECTIFWESTARTFROMTHESPECIFICATIONSOFTHEDESIREDOUTPUTANDWORKBACKWARDSSEEEWDIJKSTRACACMADISCIPLINEOFPROGRAMMINGPRENTICEHALLTHECONCEPTOFINDUCTIVEASSERTIONSACTUALLYAPPEAREDINEMBRYONICFORMINATTHESAMETIMEASFLOWCHARTSWEREINTRODUCEDBYHHGOLDSTINEANDJVONNEUMANNTHEIRORIGINALFLOWCHARTSINCLUDEDASSERTIONBOXESTHATAREINCLOSEANALOGYWITHTHEASSERTIONSINFIGFIGSEEJOHNVONNEUMANNCOLLECTEDWORKSNEWYORKMACMILLANSEEALSOAMTURINGSEARLYCOMMENTSABOUTVERIFICATIONINREPORTOFACONFERENCEONHIGHSPEEDAUTOMATICCALCULATINGMACHINESCAMBRIDGEUNIVANDFIGURESREPRINTEDWITHCOMMENTARYBYFLMORRISANDCBJONESINANNALSOFTHEHISTORYOFCOMPUTINGFLOWCHARTTHEUNDERSTANDINGOFTHETHEORYOFAROUTINEMAYBEGREATLYAIDEDBYPROVIDINGATTHETIMEOFCONSTRUCTIONONEORTWOSTATEMENTSCONCERNINGTHESTATEOFTHEMACHINEATWELLCHOSENPOINTSINTHEEXTREMEFORMOFTHETHEORETICALMETHODAWATERTIGHTMATHEMATICALPROOFISPROVIDEDFORTHEASSERTIONSINTHEEXTREMEFORMOFTHEEXPERIMENTALMETHODTHEROUTINEISTRIEDOUTONTHEMACHINEWITHAVARIETYOFINITIALCONDITIONSANDISPRONOUNCEDFITIFTHEASSERTIONSHOLDINEACHCASEBOTHMETHODSHAVETHEIRWEAKNESSESAMTURINGFERRANTIMARKIPROGRAMMINGMANUALEXERCISESEXPLAINHOWTOMODIFYTHEIDEAOFPROOFBYMATHEMATICALINDUCTIONINCASEWEWANTTOPROVESOMESTATEMENTFORALLNONNEGATIVEINTEGERSTHATISFORINSTEADOFFORAPROVEBPROVETHATIMPLIESFORALLTHEREMUSTBESOMETHINGWRONGWITHTHEFOLLOWINGPROOFWHATISITTHEOREMLETBEANYPOSITIVENUMBERFORALLPOSITIVEINTEGERSWEHAVEPROOFIFANDBYINDUCTIONASSUMINGTHATTHETHEOREMISTRUEFORWEHAVESOTHETHEOREMISTRUEFORASWELLFALLACIOUSREASONINGTHEFORMULAFORINVOLVESDIVISIONBYZEROWHENTHEREFORETHETHEOREMHASNOTBEENPROVEDWHENTHEFOLLOWINGPROOFBYINDUCTIONSEEMSCORRECTBUTFORSOMEREASONTHEEQUATIONFORGIVESONTHELEFTHANDSIDEANDONTHERIGHTHANDSIDECANYOUFINDAMISTAKETHEOREMPROOFWEUSEINDUCTIONONFORCLEARLYANDASSUMINGTHATTHETHEOREMISTRUEFORTHECORRECTANSWERISTHEMISTAKEOCCURSINTHEPROOFFORWHENTHEFORMULAONTHELEFTEITHERMAYBEASSUMEDTOBEMEANINGLESSORITMAYBEASSUMEDTOBEZEROSINCETHEREARETERMSFIBLOWERPROVETHATINADDITIONTOEQFIBONACCINUMBERSGOLDENRATIOSATISFYFORALLPOSITIVEINTEGERSPRIMEFACTORSAPRIMENUMBERISANINTEGERTHATHASNOPOSITIVEINTEGERDIVISORSOTHERTHANANDITSELFUSINGTHISDEFINITIONANDMATHEMATICALINDUCTIONPROVETHATEVERYINTEGERMAYBEWRITTENASAPRODUCTOFONEORMOREPRIMENUMBERSNAMELYINTHEFORMFORSOMEWHEREEACHOFISPRIMEAPRIMENUMBERISCONSIDEREDTOBETHEPRODUCTOFASINGLEPRIMENAMELYITSELFIFISPRIMEITISTRIVIALLYAPRODUCTOFONEORMOREPRIMESOTHERWISEHASFACTORSSOFORSOMEANDWITHSINCEBOTHANDARELESSTHANBYINDUCTIONTHEYCANBEWRITTENASPRODUCTSOFPRIMESHENCEISTHEPRODUCTOFTHEPRIMESAPPEARINGINTHEREPRESENTATIONSOFANDPROVETHATIFEQSHOLDJUSTBEFORESTEPETHEYHOLDAFTERWARDSALSOINTHENOTATIONOFFIGFIGWEPROVEAIMPLIESATHISISCLEARSINCEAIMPLIESFORMULATEANDPROVEBYINDUCTIONARULEFORTHESUMSETCSUMOFCUBESAPROVETHEFOLLOWINGTHEOREMOFNICOMACHUSCBYINDUCTIONETCBUSETHISRESULTTOPROVETHEREMARKABLEFORMULANOTEANATTRACTIVEGEOMETRICINTERPRETATIONOFTHISFORMULASUGGESTEDBYWARRENLUSHBAUGHISSHOWNINFIGFIGSEEMATHGAZETTETHEIDEAISRELATEDTONICOMACHUSSTHEOREMANDFIGFIGOTHERLOOKSEEPROOFSCANBEFOUNDINBOOKSBYMARTINGARDNERKNOTTEDDOUGHNUTSNEWYORKFREEMANCHAPTERJHCONWAYANDRKGUYTHEBOOKOFNUMBERSNEWYORKCOPERNICUSCHAPTERTOAWEMUSTSHOWTHATEQUALSANDINDEEDTHESUMISBYEQBUTANINDUCTIVEPROOFWASREQUESTEDSOANOTHERAPPROACHSHOULDBETAKENFORTHERESULTISOBVIOUSLETWEHAVESOTHEFIRSTTERMSFORARELARGERTHUSTHESUMFORISTHESUMFORPLUSTHISEQUALSBWEHAVESHOWNTHATTHEFIRSTTERMFORISTWOGREATERTHANTHELASTTERMFORTHEREFOREBYEQSUMOFCONSECUTIVEODDNUMBERSSTARTINGWITHUNITYNUMBEROFTERMSPRODINEQPROVEBYINDUCTIONTHATIFTHENFORALLINTEGERSITSTRUEWHENALSOWHENEVERITSKNOWNTOBETRUEFORORMPROVEBYINDUCTIONTHATIFTHENOBVIOUSFORIFWEHAVEANDBYINDUCTIONTHISISGREATERTHANMFINDANDPROVEASIMPLEFORMULAFORTHESUMMSHOWHOWALGORITHMECANBEGENERALIZEDASSTATEDINTHETEXTSOTHATITWILLACCEPTINPUTVALUESOFTHEFORMWHEREANDAREINTEGERSANDTHECOMPUTATIONSCANSTILLBEDONEINANELEMENTARYWAYTHATISWITHOUTUSINGTHEINFINITEDECIMALEXPANSIONOFPROVETHATTHECOMPUTATIONWILLNOTTERMINATEHOWEVERIFANDTHEONLYNONTRIVIALPARTOFTHEEXTENSIONISTHECALCULATIONOFTHEINTEGERINETHISCANBEDONEBYREPEATEDSUBTRACTIONREDUCINGTOTHEPROBLEMOFDETERMININGWHETHERISPOSITIVENEGATIVEORZEROANDTHELATTERPROBLEMISREADILYSOLVEDITISEASYTOSHOWTHATWHENEVERWEMUSTHAVEANDSINCEISIRRATIONALNOWITISCLEARTHATANDHAVENOCOMMONDIVISORIFWEDEFINEDIVISORINTHESENSETHATDIVIDESIFANDONLYIFISANINTEGERTHEALGORITHMEXTENDEDINTHISWAYCOMPUTESTHEREGULARCONTINUEDFRACTIONOFTHERATIOOFITSINPUTSSEESECTIONNOTEIFWEEXTENDTHECONCEPTOFDIVISORSOTHATDIVIDESIFANDONLYIFHASTHEFORMFORINTEGERSANDTHEREISAWAYTOEXTENDALGORITHMESOTHATITALWAYSWILLTERMINATEIFINSTEPEWEHAVEANDCOMPUTEWHEREANDARERATIONALNOWLETWHEREANDARETHENEARESTINTEGERSTOANDANDLETIFITFOLLOWSTHATHENCETHECOMPUTATIONWILLTERMINATESEEQUADRATICEUCLIDEANDOMAINSINEUCLIDEANDOMAINSNUMBERTHEORYTEXTSMEXTENDALGORITHMEBYADDINGANEWVARIABLEANDADDINGTHEOPERATIONATTHEBEGINNINGOFEACHSTEPTHUSISLIKEACLOCKCOUNTINGTHENUMBEROFSTEPSEXECUTEDASSUMETHATISINITIALLYZEROSOTHATASSERTIONAINFIGFIGBECOMESTHEADDITIONALCONDITIONSHOULDSIMILARLYBEAPPENDEDTOASHOWHOWTOAPPENDADDITIONALCONDITIONSTOTHEASSERTIONSINSUCHAWAYTHATANYONEOFAAAIMPLIESANDSUCHTHATTHEINDUCTIVEPROOFCANSTILLBECARRIEDOUTHENCETHECOMPUTATIONMUSTTERMINATEINATMOSTPROOFOFTERMINATIONSTEPSADDTOASSERTIONSAAAAWHERETAKESTHERESPECTIVEVALUESALSOADDTOARWFLOYDPREPAREACOMPUTERPROGRAMTHATACCEPTSASINPUTPROGRAMSINSOMEPROGRAMMINGLANGUAGETOGETHERWITHOPTIONALASSERTIONSANDTHATATTEMPTSTOFILLINTHEREMAININGASSERTIONSNECESSARYTOMAKEAPROOFTHATTHECOMPUTERPROGRAMISVALIDFOREXAMPLESTRIVETOGETAPROGRAMTHATISABLETOPROVETHEVALIDITYOFALGORITHMEGIVENONLYASSERTIONSAAANDASEETHEPAPERSBYRWFLOYDANDJCKINGINTHEIFIPCONGRESSPROCEEDINGSFORFURTHERDISCUSSIONWELLORDERGENERALIZEDINDUCTIONTHETEXTSHOWSHOWTOINDUCTIONGENERALIZEDPROVESTATEMENTSTHATDEPENDONASINGLEINTEGERBUTITDOESNOTDESCRIBEHOWTOPROVESTATEMENTSDEPENDINGONTWOINTEGERSINTHESECIRCUMSTANCESAPROOFISOFTENGIVENBYSOMESORTOFDOUBLEINDUCTIONWHICHFREQUENTLYSEEMSCONFUSINGACTUALLYTHEREISANIMPORTANTPRINCIPLEMOREGENERALTHANSIMPLEINDUCTIONTHATAPPLIESNOTONLYTOTHISCASEBUTALSOTOSITUATIONSINWHICHSTATEMENTSARETOBEPROVEDABOUTUNCOUNTABLESETSFOREXAMPLEFORALLREALTHISGENERALPRINCIPLEISCALLEDWELLORDERINGLINEARORDERLETBEARELATIONONASETSATISFYINGTHEFOLLOWINGPROPERTIESIGIVENANDINIFANDTHENIIGIVENANDINEXACTLYONEOFTHEFOLLOWINGTHREEPOSSIBILITIESISTRUEORIIIIFISANYNONEMPTYSUBSETOFTHEREISANELEMENTINWITHTHATISORFORALLINTHISRELATIONISSAIDTOBEAWELLORDERINGOFFOREXAMPLEITISCLEARTHATTHEPOSITIVEINTEGERSAREWELLORDEREDBYTHEORDINARYLESSTHANRELATIONASHOWTHATTHESETOFALLINTEGERSISNOTWELLORDEREDBYBDEFINEAWELLORDERINGRELATIONONTHESETOFALLINTEGERSCISTHESETOFALLNONNEGATIVEREALNUMBERSWELLORDEREDBYDLEXICOGRAPHICORDERLETBEWELLORDEREDBYANDFORLETBETHESETOFALLTUPLESOFELEMENTSINDEFINEIFTHEREISSOMESUCHTHATFORBUTINISAWELLORDERINGOFECONTINUINGPARTDLETDEFINEIFFORANDFORSOMEORIFANDFORISAWELLORDERINGOFFSHOWTHATISAWELLORDERINGOFIFANDONLYIFITSATISFIESIANDIIABOVEANDTHEREISNOINFINITESEQUENCEWITHFORALLGLETBEWELLORDEREDBYANDLETBEASTATEMENTABOUTTHEELEMENTOFSHOWTHATIFCANBEPROVEDUNDERTHEASSUMPTIONTHATISTRUEFORALLTHENISTRUEFORALLINNOTESPARTGISTHEGENERALIZATIONOFSIMPLEINDUCTIONTHATWASPROMISEDINTHECASEPOSITIVEINTEGERSITISJUSTTHESIMPLECASEOFMATHEMATICALINDUCTIONTREATEDINTHETEXTINTHATCASEWEAREASKEDTOPROVETHATISTRUEIFISTRUEFORALLPOSITIVEINTEGERSTHISISTHESAMEASSAYINGWESHOULDPROVESINCECERTAINLYISVACUOUSLYTRUEFORALLSUCHCONSEQUENTLYONEFINDSTHATINMANYSITUATIONSNEEDNOTBEPROVEDUSINGASPECIALARGUMENTPARTDINCONNECTIONWITHPARTGGIVESUSAPOWERFULMETHODOFTUPLEINDUCTIONFORPROVINGSTATEMENTSABOUTPOSITIVEINTEGERSPARTFHASFURTHERAPPLICATIONTOCOMPUTERALGORITHMSIFWECANMAPEACHSTATEOFACOMPUTATIONINTOANELEMENTBELONGINGTOAWELLORDEREDSETINSUCHAWAYTHATEVERYSTEPOFTHECOMPUTATIONTAKESASTATEINTOASTATEWITHTHENTHEALGORITHMMUSTTERMINATETHISPRINCIPLEGENERALIZESTHEARGUMENTABOUTSTRICTLYDECREASINGVALUESOFBYWHICHWEPROVEDTHETERMINATIONOFALGORITHMEUCLIDSALGALETINIIIEVERYNONEMPTYWELLORDEREDSETHASALEASTELEMENTBLETIFORIFANDCNOTHESUBSETOFALLPOSITIVEREALSFAILSTOSATISFYIIINOTEUSINGTHESOCALLEDAXIOMOFCHOICEARATHERCOMPLICATEDARGUMENTCANBEGIVENTOSHOWTHATEVERYSETCANBEWELLORDEREDSOMEHOWBUTNOBODYHASYETBEENABLETODEFINEANEXPLICITRELATIONTHATWELLORDERSTHEREALNUMBERSDTOPROVEIIIFORUSEINDUCTIONONLETBEANONEMPTYSUBSETOFANDCONSIDERTHESETOFFIRSTCOMPONENTSOFSINCEISANONEMPTYSUBSETOFANDISWELLORDEREDCONTAINSASMALLESTELEMENTNOWCONSIDERTHESUBSETOFINWHICHTHEFIRSTCOMPONENTEQUALSMAYBECONSIDEREDASUBSETOFIFITSFIRSTCOMPONENTISSUPPRESSEDSOBYINDUCTIONCONTAINSASMALLESTELEMENTTHATINFACTISTHESMALLESTELEMENTOFENOALTHOUGHPROPERTIESIANDIIAREVALIDIFCONTAINSATLEASTTWODISTINCTELEMENTSTHESETHASNOLEASTELEMENTONTHEOTHERHANDCANBEWELLORDEREDIFWEDEFINEWHENEVERORANDINFLETBEWELLORDEREDBYIFSUCHANINFINITESEQUENCEEXISTSTHESETCONSISTINGOFTHEMEMBERSOFTHESEQUENCEFAILSTOSATISFYPROPERTYIIIFORNOELEMENTOFTHESEQUENCECANBESMALLESTCONVERSELYIFISARELATIONSATISFYINGIANDIIBUTNOTIIILETBEANONEMPTYSUBSETOFTHATHASNOSMALLESTELEMENTSINCEISNOTEMPTYWECANFINDINSINCEISNOTTHESMALLESTELEMENTOFTHEREISINFORWHICHSINCEISNOTTHESMALLESTELEMENTEITHERWECANFINDETCGLETBETHESETOFALLFORWHICHISFALSEIFISNOTEMPTYITCONTAINSASMALLESTELEMENTHENCEISTRUEFORALLBUTTHISIMPLIESISTRUESOISNOTINACONTRADICTIONTHEREFOREMUSTBEEMPTYISALWAYSTRUEINDUCTIONPROOFOFTERMINATIONNUMBERSPOWERSANDLOGARITHMSLETUSNOWBEGINOURSTUDYOFNUMERICALMATHEMATICSBYTAKINGAGOODLOOKATTHENUMBERDEFINITIONSNUMBERSWEAREDEALINGWITHTHEINTEGERSARETHEWHOLENUMBERSNEGATIVEZEROORPOSITIVEARATIONALNUMBERISTHERATIOQUOTIENTOFTWOINTEGERSWHEREISPOSITIVEAREALNUMBERISAQUANTITYTHATHASADECIMALEXPANSIONWHEREISANINTEGEREACHISADIGITBETWEENANDANDTHESEQUENCEOFDIGITSDOESNTENDWITHINFINITELYMANYSTHEREPRESENTATIONMEANSTHATFORALLPOSITIVEINTEGERSEXAMPLESOFREALNUMBERSTHATARENOTRATIONALAREPIGOLDENRATIOATABLEOFIMPORTANTCONSTANTSTOFORTYDECIMALPLACESOFACCURACYAPPEARSINAPPENDIXAWENEEDNOTDISCUSSTHEFAMILIARPROPERTIESOFADDITIONSUBTRACTIONMULTIPLICATIONDIVISIONANDCOMPARISONOFREALNUMBERSDIFFICULTPROBLEMSABOUTINTEGERSAREOFTENSOLVEDBYWORKINGWITHREALNUMBERSANDDIFFICULTPROBLEMSABOUTREALNUMBERSAREOFTENSOLVEDBYWORKINGWITHASTILLMOREGENERALCLASSOFVALUESCALLEDCOMPLEXNUMBERSACOMPLEXNUMBERISAQUANTITYOFTHEFORMWHEREANDAREREALANDISASPECIALQUANTITYTHATSATISFIESTHEEQUATIONWECALLANDTHEREALPARTANDIMAGINARYPARTOFANDWEDEFINETHEABSOLUTEVALUEOFTOBETHECOMPLEXCONJUGATEOFISANDWEHAVETHETHEORYOFCOMPLEXNUMBERSISINMANYWAYSSIMPLERANDMOREBEAUTIFULTHANTHETHEORYOFREALNUMBERSBUTITISUSUALLYCONSIDEREDTOBEANADVANCEDTOPICTHEREFOREWESHALLCONCENTRATEONREALNUMBERSINTHISBOOKEXCEPTWHENREALNUMBERSTURNOUTTOBEUNNECESSARILYCOMPLICATEDIFANDAREREALNUMBERSWITHTHECLOSEDINTERVALISTHESETOFREALNUMBERSSUCHTHATTHEOPENINTERVALISSIMILARLYTHESETOFSUCHTHATANDHALFOPENINTERVALSORAREDEFINEDINANANALOGOUSWAYWEALSOALLOWTOBEORTOBEATANOPENENDPOINTMEANINGTHATTHEREISNOLOWERORUPPERBOUNDTHUSSTANDSFORTHESETOFALLREALNUMBERSANDDENOTESTHENONNEGATIVEREALSTHROUGHOUTTHISSECTIONLETTHELETTERSTANDFORAPOSITIVEREALNUMBERIFISANINTEGERTHENISDEFINEDBYTHEFAMILIARRULESITISEASYTOPROVEBYINDUCTIONTHATTHELAWSOFEXPONENTSAREVALIDEXPONENTSLAWSOFWHENEVERANDAREINTEGERSIFISAPOSITIVEREALNUMBERANDIFISAPOSITIVEINTEGERTHEREISALWAYSAUNIQUEPOSITIVEREALNUMBERSUCHTHATITISCALLEDTHETHROOTOFANDDENOTEDROOTOFNUMBERPOWEROFNUMBERWENOWDEFINEFORRATIONALNUMBERSASFOLLOWSTHISDEFINITIONDUETOORESMECISAGOODONESINCEANDSINCETHELAWSOFEXPONENTSARESTILLCORRECTEVENWHENANDAREARBITRARYRATIONALNUMBERSSEEEXERCISEFINALLYWEDEFINEFORALLREALVALUESOFSUPPOSEFIRSTTHATIFISGIVENBYEQWEWANTTHISDEFINESASAUNIQUEPOSITIVEREALNUMBERSINCETHEDIFFERENCEBETWEENTHERIGHTANDLEFTEXTREMESINEQISBYEXERCISEBELOWTHISDIFFERENCEISLESSTHANANDIFWETAKELARGEENOUGHWECANTHEREFOREGETANYDESIREDACCURACYFORFOREXAMPLEWEFINDTHATTHEREFOREIFANDWEKNOWTHEVALUEOFWITHANACCURACYOFBETTERTHANONEPARTINMILLIONALTHOUGHWESTILLDONTEVENKNOWWHETHERTHEDECIMALEXPANSIONOFBEGINSWITHORWHENWEDEFINEANDWHENWITHTHESEDEFINITIONSITCANBEPROVEDTHATTHELAWSOFEXPONENTSHOLDFORANYREALVALUESOFANDTHESEIDEASFORDEFININGWEREFIRSTFORMULATEDBYJOHNWALLISANDISAACNEWTONNOWWECOMETOANIMPORTANTQUESTIONSUPPOSETHATAPOSITIVEREALNUMBERLOGARITHMISGIVENCANWEFINDAREALNUMBERSUCHTHATTHEANSWERISYESPROVIDEDTHATFORWESIMPLYUSEEQINREVERSETODETERMINEANDWHENISGIVENTHERESULTINGNUMBERISCALLEDTHELOGARITHMOFTOTHEBASEANDWEWRITETHISASBYTHISDEFINITIONWEHAVEASANEXAMPLEEQSSHOWTHATFROMTHELAWSOFEXPONENTSITFOLLOWSTHATANDEQUATIONILLUSTRATESTHESOCALLEDCOMMONLOGARITHMSLOGARITHMSCOMMONWHICHWEGETWHENTHEBASEISONEMIGHTEXPECTTHATINCOMPUTERWORKBINARYLOGARITHMSTOTHEBASEWOULDBEMOREUSEFULSINCEMOSTCOMPUTERSDOBINARYARITHMETICACTUALLYWEWILLSEETHATBINARYLOGARITHMSAREINDEEDVERYUSEFULBUTNOTONLYFORTHATREASONTHEREASONISPRIMARILYTHATACOMPUTERALGORITHMOFTENMAKESTWOWAYBRANCHESBINARYLOGARITHMSARISESOFREQUENTLYITISWISETOHAVEASHORTERNOTATIONFORTHEMTHEREFOREWESHALLWRITEFOLLOWINGASUGGESTIONOFERNESTOTRUCCOBULLMATHBIOPHYSICSTHEQUESTIONNOWARISESASTOWHETHERORNOTTHEREISANYRELATIONSHIPBETWEENANDFORTUNATELYTHEREISBYEQSANDHENCEANDINGENERALWEFINDTHATEQUATIONSANDARETHEFUNDAMENTALRULESFORMANIPULATINGLOGARITHMSITTURNSOUTTHATNEITHERBASENORBASEISREALLYTHEMOSTCONVENIENTBASETOWORKWITHINMOSTCASESTHEREISAREALNUMBERDENOTEDBYFORWHICHTHELOGARITHMSHAVESIMPLERPROPERTIESLOGARITHMSTOTHEBASEARECONVENTIONALLYCALLEDNATURALLOGARITHMSANDWEWRITETHISRATHERARBITRARYDEFINITIONINFACTWEHAVENTREALLYDEFINEDPROBABLYDOESNTSTRIKETHEREADERASBEINGAVERYNATURALLOGARITHMYETWELLFINDTHATSEEMSMOREANDMORENATURALTHEMOREWEWORKWITHITJOHNNAPIERACTUALLYDISCOVEREDNATURALLOGARITHMSWITHSLIGHTMODIFICATIONSANDWITHOUTCONNECTINGTHEMWITHPOWERSBEFORETHEYEARMANYYEARSBEFOREANYOTHERKINDOFLOGARITHMWASKNOWNTHEFOLLOWINGTWOEXAMPLESPROVEDINEVERYCALCULUSTEXTSHEDSOMELIGHTONWHYNAPIERSLOGARITHMSDESERVETOBECALLEDNATURALAINFIGFIGTHEAREAOFTHESHADEDPORTIONISBIFABANKPAYSCOMPOUNDINTERESTATRATECOMPOUNDEDCOMPOUNDINTERESTSEMIANNUALLYTOFIGFIGNATURALLOGARITHMTHEANNUALRETURNONEACHDOLLARISDOLLARSIFITISCOMPOUNDEDQUARTERLYYOUGETDOLLARSANDIFITISCOMPOUNDEDDAILYYOUPROBABLYGETDOLLARSNOWIFTHEINTERESTWERECOMPOUNDEDCONTINUOUSLYYOUWOULDGETEXACTLYDOLLARSFOREVERYDOLLARIGNORINGROUNDOFFERRORINTHISAGEOFCOMPUTERSMANYBANKERSHAVENOWACTUALLYREACHEDTHELIMITINGFORMULACOMPOUNDINTERESTTHEINTERESTINGHISTORYOFTHECONCEPTSOFLOGARITHMANDEXPONENTIALHASBEENTOLDINASERIESOFARTICLESBYFCAJORIAMMWECONCLUDETHISSECTIONBYCONSIDERINGHOWTOCOMPUTELOGARITHMSONEMETHODISSUGGESTEDIMMEDIATELYBYEQIFWELETANDRAISEALLPARTSOFTHATEQUATIONTOTHETHPOWERWEFINDTHATFORSOMEINTEGERALLWEHAVETODOTOGETTHELOGARITHMOFISTORAISETOTHISHUGEPOWERANDFINDWHICHPOWERSOFTHERESULTLIESBETWEENTHENISTHEANSWERTODECIMALPLACESASLIGHTMODIFICATIONOFTHISAPPARENTLYIMPRACTICALMETHODLEADSTOASIMPLEANDREASONABLEPROCEDUREWEWILLSHOWHOWTOCALCULATEANDTOEXPRESSTHEANSWERINTHEBINARYSYSTEMASFIRSTWESHIFTTHEDECIMALPOINTOFTOTHELEFTORTOTHERIGHTSOTHATWEHAVETHISDETERMINESTHEINTEGERPARTTOOBTAINWENOWSETANDFORTHEVALIDITYOFTHISPROCEDUREFOLLOWSFROMTHEFACTTHATFORASISEASILYPROVEDBYINDUCTIONINPRACTICEOFCOURSEWEMUSTWORKWITHONLYFINITEACCURACYSOWECANNOTSETEXACTLYINSTEADWESETROUNDEDORTRUNCATEDTOACERTAINNUMBEROFDECIMALPLACESFOREXAMPLEHEREISTHEEVALUATIONOFROUNDEDTOFOURSIGNIFICANTFIGURESCOMPUTATIONALERRORHASCAUSEDERRORSTOPROPAGATETHETRUEROUNDEDVALUEOFCOMPUTATIONALERRORISTHISWILLEVENTUALLYCAUSETOBECOMPUTEDINCORRECTLYANDWEGETTHEBINARYVALUEWHICHCORRESPONDSTOTHEDECIMALEQUIVALENTRATHERTHANTHETRUEVALUEGIVENINEQWITHANYMETHODSUCHASTHISITISNECESSARYTOEXAMINETHEAMOUNTOFCOMPUTATIONALERRORDUETOTHELIMITATIONSIMPOSEDEXERCISEDERIVESANUPPERBOUNDFORTHEERRORWORKINGTOFOURFIGURESASABOVEWEFINDTHATTHEERRORINTHEVALUEOFTHELOGARITHMISGUARANTEEDTOBELESSTHANOURANSWERABOVEWASMOREACCURATETHANTHISPRIMARILYBECAUSEANDWEREOBTAINEDEXACTLYTHISMETHODISSIMPLEANDQUITEINTERESTINGBUTITISPROBABLYNOTTHEBESTWAYTOCALCULATELOGARITHMSONACOMPUTERANOTHERMETHODISGIVENINEXERCISEEXERCISESWHATISTHESMALLESTPOSITIVERATIONALNUMBERTHEREISNONEIFISAPOSITIVERATIONALISSMALLERISADECIMALEXPANSIONNOTIFINFINITELYMANYNINESAPPEARINAROWINTHATCASETHEDECIMALEXPANSIONOFTHENUMBERISACCORDINGTOEQWHATISBUTTHETEXTHASNTDEFINEDITWHATISWEDEFINEDREALNUMBERSINTERMSOFADECIMALEXPANSIONDISCUSSHOWWECOULDHAVEDEFINEDTHEMINTERMSOFABINARYEXPANSIONINSTEADANDGIVEADEFINITIONTOREPLACEEQLETANDBEREALNUMBERSGIVEARULEFORDETERMININGWHETHERORBASEDONTHEDECIMALREPRESENTATIONTHEDECIMALEXPANSIONOFANUMBERISUNIQUESOIFANDONLYIFANDFORALLIFONEMAYCOMPAREVSVSVSETCWHENTHEFIRSTINEQUALITYOCCURSTHELARGERQUANTITYBELONGSTOTHELARGEROFMGIVENTHATANDAREINTEGERSPROVETHELAWSOFEXPONENTSSTARTINGFROMTHEDEFINITIONGIVENBYEQONEMAYUSEINDUCTIONONFIRSTPROVINGTHELAWSFORPOSITIVEANDTHENFORNEGATIVEDETAILSAREOMITTEDHERELETBEAPOSITIVEINTEGERPROVETHATEVERYPOSITIVEREALNUMBERHASAUNIQUEPOSITIVETHROOTBYGIVINGAMETHODTOCONSTRUCTSUCCESSIVELYTHEVALUESINTHEDECIMALEXPANSIONOFTHEROOTROOTOFNUMBERBYTRYINGWEFINDTHEVALUEOFFORWHICHASSUMINGINDUCTIVELYTHATHAVEBEENDETERMINEDISTHEDIGITSUCHTHATTHISCONSTRUCTIONCANTMAKEFORALLBECAUSETHATCOULDHAPPENONLYIFMGIVENTHATANDARERATIONALPROVETHELAWSOFEXPONENTSLAWSOFEXPONENTSUNDERTHEASSUMPTIONTHATTHELAWSHOLDWHENANDAREINTEGERSUSINGTWICEHENCETHISPROVESTHESECONDLAWWEPROVETHEFIRSTLAWUSINGTHESECONDPROVETHATISNOTARATIONALNUMBERIFWITHANDPOSITIVETHENWHICHISABSURDSINCETHERIGHTHANDSIDEISDIVISIBLEBYBUTTHELEFTHANDSIDEISNTIFANDISAPPROXIMATELYEQUALTOHOWMANYDECIMALPLACESOFSVALUEWILLGUARANTEETHATWECANDETERMINETHEFIRSTTHREEPLACESOFTHEDECIMALEXPANSIONOFNOTEYOUMAYUSETHERESULTOFEXERCISEINYOURDISCUSSIONINFINITELYMANYNOMATTERHOWMANYDIGITSOFAREGIVENWEWILLNOTKNOWWHETHERBEGINSWITHORIFSDIGITSAGREEWITHTHEDIGITSOFTHEREISNOTHINGMYSTERIOUSORPARADOXICALINTHISASIMILARSITUATIONOCCURSINADDITIONIFWEAREADDINGTOEXPLAINWHYEQFOLLOWSFROMEQSTHEYARETHEONLYVALUESOFTHATSATISFYEQMAGIVENTHATISAPOSITIVEREALNUMBERANDISAPOSITIVEINTEGERPROVETHEINEQUALITYBUSETHISFACTTOJUSTIFYTHEREMARKSFOLLOWINGAFIRSTPROVEBYINDUCTIONTHATIFTHENSETANDTAKETHROOTSBPROVEEQSETINTHESECONDEQUATIONOFTHENTAKELOGARITHMSOFBOTHSIDESPROVEORDISPROVEFORALLREALPROVEITBYTRANSPOSINGTOTHEOTHERSIDEOFTHEEQUATIONANDUSINGHOWCANBEEXPRESSEDINTERMSOFANDBYWHATISUNDEFINEDPROVEORDISPROVEFORALLREALNOIFISANINTEGERWHOSEDECIMALREPRESENTATIONISDIGITSLONGWILLTHEVALUEOFFITINACOMPUTERWORDWITHACAPACITYOFBITSANDASIGNBITYESSINCEISTHEREANYSIMPLERELATIONBETWEENANDTHEYARERECIPROCALSLOGSOFLOGSEXPRESSINTERMSOFANDRWHAMMINGPROVETHATWITHLESSTHANERRORTHUSATABLEOFNATURALLOGARITHMSANDOFLOGARITHMSCOMMONCOMMONLOGARITHMSCANBEUSEDTOGETAPPROXIMATEVALUESOFBINARYLOGARITHMSASWELLFROMTHETABLESINAPPENDIXATHERELATIVEERRORISMGIVEAGEOMETRICPROOFTHATBASEDONFIGFIGTAKETHEFIGUREOFAREAANDDIVIDEITSHEIGHTBYWHILEMULTIPLYINGITSLENGTHBYTHISDEFORMATIONPRESERVESITSAREAANDMAKESITCONGRUENTTOTHEPIECELEFTWHENISREMOVEDFROMSINCETHEHEIGHTATPOINTINTHEDIAGRAMFORISEXPLAINHOWTHEMETHODUSEDFORCALCULATINGLOGARITHMSTOTHEBASEATTHEENDOFTHISSECTIONCANBEMODIFIEDTOPRODUCELOGARITHMSTOBASESUBSTITUTEEVERYWHEREAPPEARSBRIGGSLOGSUPPOSETHATWEHAVEABINARYCOMPUTERANDANUMBERSHOWTHATTHEFOLLOWINGALGORITHMWHICHUSESONLYSHIFTINGADDITIONANDSUBTRACTIONOPERATIONSPROPORTIONALTOTHENUMBEROFPLACESOFACCURACYDESIREDMAYBEUSEDTOCALCULATEANAPPROXIMATIONTOHARDWAREORIENTEDALGORITHMSLLINITIALIZESETSHIFTEDRIGHTLTESTFORENDIFSTOPLCOMPAREIFSETSHIFTEDRIGHTANDREPEATTHISSTEPLREDUCEVALUESSETSHIFTEDRIGHTANDGOTOLNOTESTHISMETHODISVERYSIMILARTOTHEMETHODUSEDFORDIVISIONINCOMPUTERHARDWARETHEIDEAGOESBACKINESSENCETOHENRYBRIGGSWHOUSEDITINDECIMALRATHERTHANBINARYFORMTOCOMPUTELOGARITHMTABLESPUBLISHEDINWENEEDANAUXILIARYTABLEOFTHECONSTANTSETCTOASMANYVALUESASTHEPRECISIONOFTHECOMPUTERTHEALGORITHMINVOLVESINTENTIONALCOMPUTATIONALERRORSASNUMBERSARESHIFTEDTOTHERIGHTSOTHATEVENTUALLYWILLBEREDUCEDTOANDTHEALGORITHMWILLTERMINATETHEPURPOSEOFTHISEXERCISEISTOEXPLAINWHYITWILLTERMINATEANDWHYITCOMPUTESANAPPROXIMATIONNOTETHATWHENISTHEPRECISIONTHENUMBEROFBINARYDIGITSAFTERTHERADIXPOINTTHEQUANTITYSTAYSAPPROXIMATELYCONSTANTMFINDARIGOROUSUPPERBOUNDONTHEERRORMADEBYTHEALGORITHMINTHEPREVIOUSEXERCISEBASEDONTHEPRECISIONUSEDINTHEARITHMETICOPERATIONSMCONSIDERTHEMETHODFORCALCULATINGDISCUSSEDINTHETEXTLETDENOTETHECOMPUTEDAPPROXIMATIONTODETERMINEDASFOLLOWSANDINTHEDETERMINATIONOFBYEQSTHEQUANTITYISUSEDINPLACEOFWHEREANDHEREANDARESMALLCONSTANTSTHATREFLECTTHEUPPERANDLOWERERRORSDUETOROUNDINGORTRUNCATIONIFDENOTESTHERESULTOFTHECALCULATIONSSHOWTHATAFTERSTEPSWEHAVELOGARITHMPROVEBYINDUCTIONONTHATANDTAKELOGARITHMSFEYNMANEXPMRFEYNMANDEVELOPAMETHODFORCOMPUTINGWHENUSINGONLYSHIFTINGADDITIONANDSUBTRACTIONSIMILARTOTHEALGORITHMINEXERCISEANDANALYZEITSACCURACYCOMPUTATIONALERRORTHEFOLLOWINGSOLUTIONUSESTHESAMEAUXILIARYTABLEASBEFOREEEINITIALIZESETANDWHEREISTHELARGESTPOSSIBLEVALUEOFANDISTHENEARESTAPPROXIMATIONTOTHEQUANTITYWILLREMAINAPPROXIMATELYCONSTANTINTHEFOLLOWINGSTEPSETESTFORENDIFSTOPECOMPAREIFINCREASEBYANDREPEATTHISSTEPEREDUCEVALUESSETSHIFTEDRIGHTANDGOTOEIFISSETSTEPETHESUBSEQUENTCOMPUTATIONALERRORARISESWHENANDDURINGTHETHEXECUTIONOFSTEPEFORCERTAINSMALLERRORSANDWHENTHEALGORITHMTERMINATESWEHAVECOMPUTEDFURTHERANALYSISDEPENDSONANDTHECOMPUTERWORDSIZENOTICETHATBOTHINTHISCASEANDINEXERCISEITISPOSSIBLETOREFINETHEERRORESTIMATESSOMEWHATIFTHEBASEISSINCEFORMOSTVALUESOFTHETABLEENTRYCANBEGIVENWITHHIGHACCURACYITEQUALSNOTESIMILARALGORITHMSCANBEGIVENFORTRIGONOMETRICFUNCTIONSSEEJEMEGGITTIBMJRESANDDEVSEEALSOTCCHENIBMJRESANDDEVVSLINSKYVYCHISLMATLOGOSLATDEKNUTHMETAFONTTHEPROGRAMADDISONWESLEYLETBEAREALNUMBERGREATERTHANAFORWHATREALNUMBERISAMINIMUMBFORWHATINTEGERISITAMINIMUMCFORWHATINTEGERISAMINIMUMSIMPLIFYTHEEXPRESSIONASSUMINGTHATANDSUMSANDPRODUCTSLETBEANYSEQUENCEOFNUMBERSWEAREOFTENSUMMATIONINTERESTEDINSUMSSUCHASANDTHISSUMISMORECOMPACTLYWRITTENUSINGEITHEROFTHEFOLLOWINGESSENTIALLYEQUIVALENTNOTATIONSIFISZEROTHEVALUEOFISDEFINEDTOBEZEROOURCONVENTIONOFUSINGTHREEDOTSINSUMSSUCHASTHEREFOREHASSOMESLIGHTLYPECULIARBUTSENSIBLEBEHAVIORINBORDERLINECASESSEEEXERCISEINGENERALIFISANYRELATIONINVOLVINGTHESYMBOLMEANSTHESUMOFALLWHEREISANINTEGERSATISFYINGTHECONDITIONIFNOSUCHINTEGERSEXISTNOTATIONDENOTESZEROTHELETTERINANDISADUMMYINDEXORINDEXVARIABLEDUMMYVARIABLEINTRODUCEDJUSTFORTHEPURPOSESOFTHENOTATIONSYMBOLSUSEDASINDEXVARIABLESAREUSUALLYTHELETTERSOCCASIONALLYWITHSUBSCRIPTSORACCENTMARKSLARGESUMMATIONSIGNSLIKETHOSEINANDCANALSOBERENDEREDMORECOMPACTLYASORTHEUSEOFAANDINDEXVARIABLESTOINDICATESUMMATIONWITHDEFINITELIMITSWASINTRODUCEDBYJFOURIERINSTRICTLYSPEAKINGTHENOTATIONISAMBIGUOUSSINCEITDOESNOTCLARIFYWHETHERTHESUMMATIONISTAKENWITHRESPECTTOORTOINTHISPARTICULARCASEITWOULDBERATHERSILLYTOINTERPRETITASASUMONVALUESOFBUTMEANINGFULEXAMPLESCANBECONSTRUCTEDINWHICHTHEINDEXVARIABLEISNOTCLEARLYSPECIFIEDASININSUCHCASESTHECONTEXTMUSTMAKECLEARWHICHVARIABLEISADUMMYVARIABLEANDWHICHVARIABLEHASASIGNIFICANCETHATEXTENDSBEYONDITSAPPEARANCEINTHESUMASUMSUCHASWOULDPRESUMABLYBEUSEDONLYIFEITHERORNOTBOTHHASEXTERIORSIGNIFICANCEINMOSTCASESWEWILLUSENOTATIONONLYWHENTHESUMISFINITETHATISWHENONLYAFINITENUMBEROFVALUESINFINITESERIESSATISFYANDHAVEIFANINFINITESUMISREQUIREDFOREXAMPLEWITHINFINITELYMANYNONZEROTERMSTHETECHNIQUESOFCALCULUSMUSTBEEMPLOYEDTHEPRECISEMEANINGOFISTHENPROVIDEDTHATBOTHLIMITSEXISTIFEITHERLIMITFAILSTOEXISTTHEINFINITESUMISDIVERGENTITDOESNOTEXISTOTHERWISEITISCONVERGENTWHENTWOORMORECONDITIONSAREPLACEDUNDERTHESIGNASINWEMEANTHATALLCONDITIONSMUSTHOLDFOURSIMPLEALGEBRAICOPERATIONSONSUMSAREVERYIMPORTANTANDFAMILIARITYWITHTHEMMAKESTHESOLUTIONOFMANYPROBLEMSPOSSIBLEWESHALLNOWDISCUSSTHESEFOUROPERATIONSATHEDISTRIBUTIVELAWFORPRODUCTSOFSUMSTOUNDERSTANDTHISLAWCONSIDERFOREXAMPLETHESPECIALCASEITISCUSTOMARYTODROPTHEPARENTHESESONTHERIGHTHANDSIDEOFADOUBLESUMMATIONSUCHASISWRITTENSIMPLYBCHANGEOFVARIABLETHISEQUATIONREPRESENTSTWOKINDSOFTRANSFORMATIONSINTHEFIRSTCASEWEARESIMPLYCHANGINGTHENAMEOFTHEINDEXVARIABLEFROMTOTHESECONDCASEISMOREINTERESTINGHEREISAFUNCTIONOFTHATREPRESENTSAPERMUTATIONOFTHERELEVANTVALUESMOREPRECISELYFOREACHINTEGERSATISFYINGTHERELATIONTHEREMUSTBEEXACTLYONEINTEGERSATISFYINGTHERELATIONTHISCONDITIONISALWAYSSATISFIEDINTHEIMPORTANTCASESANDWHEREISANINTEGERNOTDEPENDINGONANDTHESEARETHECASESUSEDMOSTFREQUENTLYINAPPLICATIONSFOREXAMPLETHEREADERSHOULDSTUDYTHISEXAMPLECAREFULLYTHEREPLACEMENTOFBYCANNOTBEDONEFORALLINFINITESUMSTHEOPERATIONISALWAYSVALIDIFASABOVEBUTINOTHERCASESSOMECAREMUSTBEUSEDFOREXAMPLESEETMAPOSTOLMATHEMATICALANALYSISREADINGMASSADDISONWESLEYCHAPTERASUFFICIENTCONDITIONTOGUARANTEETHEVALIDITYOFFORANYPERMUTATIONOFTHEINTEGERSISTHATEXISTSCINTERCHANGINGORDEROFSUMMATIONLETUSCONSIDERAVERYSIMPLESPECIALCASEOFTHISEQUATIONBYEQTHESETWOAREEQUALTHISSAYSNOMORETHANWHEREWELETANDTHEOPERATIONOFINTERCHANGINGTHEORDEROFSUMMATIONISEXTREMELYUSEFULSINCEITOFTENHAPPENSTHATWEKNOWASIMPLEFORMFORBUTNOTFORWEFREQUENTLYNEEDTOINTERCHANGETHESUMMATIONORDERALSOINAMOREGENERALSITUATIONWHERETHERELATIONDEPENDSONASWELLASINSUCHACASEWECANDENOTETHERELATIONBYTHEINTERCHANGEOFSUMMATIONCANALWAYSBECARRIEDOUTINTHEORYATLEASTASFOLLOWSWHERESPECIFIESSUMMINGOVERALLSUCHTHATTHEREISANINTEGERSUCHTHATBOTHANDARETRUEANDSPECIFIESSUMMINGOVERALLSUCHTHATBOTHANDARETRUEFOREXAMPLEIFTHESUMMATIONISTHENSUMSOVERWHERETHEREISANINTEGERSUCHTHATANDTHATISANDSUMSOVERWHEREANDTHATISTHUSNOTEASINCASEBTHEOPERATIONOFINTERCHANGINGORDEROFSUMMATIONISNOTALWAYSVALIDFORINFINITESERIESIFTHESERIESISABSOLUTELYCONVERGENTTHATISIFCONVERGENCEABSOLUTEEXISTSITCANBESHOWNTHATEQSANDAREVALIDALSOIFEITHERONEOFORSPECIFIESAFINITESUMINEQANDIFEACHINFINITESUMTHATAPPEARSISCONVERGENTTHENTHEINTERCHANGEISJUSTIFIEDINPARTICULAREQISALWAYSTRUEFORCONVERGENTINFINITESUMSINFINITESERIESDMANIPULATINGTHEDOMAINIFANDAREARBITRARYRELATIONSWEHAVEFOREXAMPLEASSUMINGTHATINTHISCASEANDISSIMPLYSOWEHAVEREDUCEDTHESECONDSUMTOSIMPLYINMOSTAPPLICATIONSOFEQEITHERANDARESIMULTANEOUSLYSATISFIEDFORONLYONEORTWOVALUESOFORELSEITISIMPOSSIBLETOHAVEBOTHANDTRUEFORTHESAMEINTHELATTERCASETHESECONDSUMONTHERIGHTHANDSIDEOFEQSIMPLYDISAPPEARSNOWTHATWEHAVESEENTHEFOURBASICRULESFORMANIPULATINGSUMSLETSSTUDYSOMEFURTHERILLUSTRATIONSOFHOWTOAPPLYTHESETECHNIQUESEXAMPLETHELASTSTEPMERELYSIMPLIFIESTHERELATIONSBELOWTHESSUMOVERHALFEXAMPLELETINTERCHANGINGTHENAMESANDANDRECOGNIZINGTHATIFWEDENOTETHELATTERSUMBYWEHAVETHUSWEHAVEDERIVEDTHEIMPORTANTIDENTITYEXAMPLETHESUMOFAGEOMETRICPROGRESSIONASSUMETHATANDTHATTHENCOMPARINGTHEFIRSTRELATIONWITHTHELASTWEHAVEHENCEWEOBTAINTHEBASICFORMULAEXAMPLETHESUMOFANARITHMETICARITHMETICPROGRESSIONPROGRESSIONASSUMETHATTHENSINCETHEFIRSTSUMSIMPLYADDSTOGETHERTERMSTHATDONOTDEPENDONNOWBYEQUATINGTHEFIRSTANDLASTEXPRESSIONSANDDIVIDINGBYWEOBTAINTHISISTIMESWHICHCANBEUNDERSTOODASTHENUMBEROFTERMSTIMESTHEAVERAGEOFTHEFIRSTANDLASTTERMSARITHMETICPROGRESSIONNOTICETHATWEHAVEDERIVEDTHEIMPORTANTEQUATIONSANDPURELYBYUSINGSIMPLEMANIPULATIONSOFSUMSMOSTTEXTBOOKSWOULDSIMPLYSTATETHOSEFORMULASANDPROVETHEMBYINDUCTIONINDUCTIONISOFCOURSEAPERFECTLYVALIDPROCEDUREBUTITDOESNOTGIVEANYINSIGHTINTOHOWONEARTHAPERSONWOULDEVERHAVEDREAMEDTHEFORMULAUPINTHEFIRSTPLACEEXCEPTBYSOMELUCKYGUESSINTHEANALYSISOFALGORITHMSWEARECONFRONTEDWITHHUNDREDSOFSUMSTHATDONOTCONFORMTOANYAPPARENTPATTERNBYMANIPULATINGTHOSESUMSASABOVEWECANOFTENGETTHEANSWERWITHOUTTHENEEDFORINGENIOUSGUESSESMANYMANIPULATIONSOFSUMSANDOTHERFORMULASBECOMECONSIDERABLYSIMPLERIFWEADOPTTHEFOLLOWINGBRACKETNOTATIONBRACKETNOTATIONFORSTATEMENTSTHENWECANWRITEFOREXAMPLEWHERETHESUMONTHERIGHTISOVERALLINTEGERSBECAUSETHETERMSOFTHATINFINITESUMAREZEROWHENISFALSEWEASSUMETHATISDEFINEDFORALLWITHBRACKETNOTATIONWECANDERIVERULEBFROMRULESAANDCINANCHANGEOFVARIABLEINTERESTINGWAYTHEREMAININGSUMONISEQUALTOWHENISTRUEIFWEASSUMETHATISAPERMUTATIONOFTHERELEVANTVALUESASREQUIREDINHENCEWEARELEFTWITHWHICHISTHISPROVESIFISNOTSUCHAPERMUTATIONTELLSUSTHETRUEVALUEOFCHANGEOFVARIABLETHEMOSTFAMOUSSPECIALCASEOFBRACKETNOTATIONISTHESOCALLEDKRONECKERDELTASYMBOLINTRODUCEDBYLEOPOLDKRONECKERINMOREGENERALNOTATIONSSUCHASIVERSONBRACKETWEREINTRODUCEDBYKEIVERSONINTHEREFOREIVERSONBRACKETISOFTENCALLEDIVERSONSCONVENTIONSEEDEKNUTHAMMBRACKETNOTATIONFORSTATEMENTSTHEREISANOTATIONFORPRODUCTSANALOGOUSTOOURNOTATIONFORSUMSTHESYMBOLSSTANDFORTHEPRODUCTOFALLFORWHICHTHEINTEGERSATISFIESIFNOSUCHINTEGEREXISTSTHEPRODUCTISDEFINEDTOHAVETHEVALUENOTOPERATIONSBCANDDAREVALIDFORTHENOTATIONASWELLASFORTHENOTATIONWITHSUITABLESIMPLEMODIFICATIONSTHEEXERCISESATTHEENDOFTHISSECTIONGIVEANUMBEROFEXAMPLESOFPRODUCTNOTATIONINUSEWECONCLUDETHISSECTIONBYMENTIONINGANOTHERNOTATIONFORMULTIPLESUMMATIONTHATISOFTENCONVENIENTASINGLESIGNMAYBEUSEDWITHSUMSMULTIPLEINTERCHANGINGORDERONEORMORERELATIONSINSEVERALINDEXVARIABLESMEANINGTHATTHESUMISTAKENOVERALLCOMBINATIONSOFVARIABLESTHATMEETTHECONDITIONSFOREXAMPLETHISNOTATIONGIVESNOPREFERENCETOONEINDEXOFSUMMATIONOVERANYOTHERSOITALLOWSUSTODERIVEINANEWWAYUSINGTHEFACTTHATTHEMOREGENERALEQUATIONFOLLOWSINASIMILARWAYFROMTHEIDENTITYAFURTHEREXAMPLETHATDEMONSTRATESTHEUSEFULNESSOFSUMMATIONWITHSEVERALINDICESISWHEREISANTUPLYSUBSCRIPTEDVARIABLEFOREXAMPLEIFTHISNOTATIONSTANDSFORSEETHEREMARKSONPARTITIONSOFANUMBERINSECTIONEXERCISESFIRSTSETTHETEXTSAYSTHATWHATTHENISELLIPSESTHREEDOTSTHREEDOTSNOTATIONANDINGENERALSUMSWITHAREDEFINEDSOTHATFORARBITRARYINTEGERSANDNOTEWEMIGHTALSOSAYTHATANDTHATUSINGTHELEFTHALFOFONTHEOTHERHANDWESHOULDNOTREPLACEUSINGTHERIGHTHALFOFTHESUMISBYWHATDOESTHENOTATIONMEANIFWITHOUTUSINGTHENOTATIONWRITEOUTTHEEQUIVALENTOFANDALSOTHEEQUIVALENTOFEXPLAINWHYTHETWORESULTSAREDIFFERENTINSPITEOFRULEBTHERULEFORISVIOLATEDINTHEFIRSTCASEOCCURSFORNOANDINTHESECONDCASEOCCURSFORTWOSEEEQWITHOUTUSINGTHENOTATIONWRITEOUTTHEEQUIVALENTOFEACHSIDEOFEQASASUMOFSUMSFORTHECASEPROVETHATRULEAISVALIDFORARBITRARYINFINITESERIESPROVIDEDTHATTHESERIESCONVERGEITISONLYNECESSARYTOUSETHERULEPROVETHATRULEDISVALIDFORANARBITRARYINFINITESERIESPROVIDEDTHATANYTHREEOFTHEFOURSUMSEXISTGIVENTHATISANINTEGERSHOWTHATEVENIFBOTHSERIESAREINFINITEUSEEQTHETWOLIMITSAREINTERCHANGEDANDTHETERMSBETWEENANDMUSTBETRANSFERREDFROMONELIMITTOTHEOTHERFINDANEXAMPLEOFADOUBLYINFINITESEQUENCEOFINTEGERSFORWHICHEQISFALSELETANDFORALLANDALLOTHERZEROLETTHELEFTHANDSIDEISTHERIGHTHANDSIDEISISTHEDERIVATIONOFEQVALIDEVENIFISTHEDERIVATIONOFEQVALIDEVENIFNOTHEAPPLICATIONSOFRULEDASSUMETHATTHERESULTISCORRECTFORBUTTHEDERIVATIONISNTWHATSHOULDTHERIGHTHANDSIDEOFEQBEIFWHATISUSINGEQANDASSUMINGTHATEVALUATEORUSINGTHERESULTOFTHEPREVIOUSEXERCISEEVALUATEIFANDMCOMPUTETHESUMFORSMALLVALUESOFDOYOUSEETHEPATTERNDEVELOPINGINTHESENUMBERSIFNOTDISCOVERITBYMANIPULATIONSSIMILARTOTHOSELEADINGUPTOEQMPROVETHATIFWITHOUTUSINGMATHEMATICALINDUCTIONKEYSTEPSMLETBEASETOFINTEGERSWHATISTHENUMBEROFELEMENTSINMSHOWHOWTOINTERCHANGETHEORDEROFSUMMATIONASINEQGIVENTHATSPECIFIESSUMMINGOVERALLSUCHTHATISAMULTIPLEOFANDSPECIFIESSUMMINGOVERALLSUCHTHATSUMSOVERWITHSUMSOVERWITHISAMULTIPLEOFANDWHATISDRIJMATRIXHASOBSERVEDAREMARKABLESEQUENCEOFFORMULASAWRITETHEGOODDOCTORSGREATDISCOVERYINTERMSOFTHENOTATIONBYOURANSWERTOPARTAUNDOUBTEDLYINVOLVESTHENUMBERASBASEOFTHEDECIMALSYSTEMGENERALIZETHISFORMULASOTHATYOUGETAFORMULATHATWILLPERHAPSWORKINANYBASECPROVEYOURFORMULAFROMPARTBBYUSINGFORMULASDERIVEDINTHETEXTORINEXERCISEABOVETHISFORMULAFOLLOWSFROMANDTHERESULTOFEXERCISEMDERIVERULEDFROMANDNOWUSETHEFACTTHATRJSJRJSJINGENERALBRACKETNOTATIONGIVESUSTHEABILITYTOMANIPULATEONTHELINEINSTEADOFBELOWTHELINESTATETHEAPPROPRIATEANALOGSOFEQSANDFORPRODUCTSINSTEADOFSUMSFORANDJUSTCHANGEWEALSOHAVEANDEXPLAINWHYITISAGOODIDEATODEFINEANDASZEROANDONERESPECTIVELYWHENNOINTEGERSSATISFYANDTHISMAKESMANYOPERATIONSANDEQUATIONSSIMPLERSUCHASRULEDANDITSANALOGINTHEPREVIOUSEXERCISESUPPOSETHATISTRUEFORONLYFINITELYMANYBYINDUCTIONONTHENUMBEROFINTEGERSSATISFYINGPROVETHATASSUMINGTHATALLCONSIDERTHEFOLLOWINGDERIVATIONISANYTHINGAMISSTHEFIRSTSTEPANDLASTSTEPAREOKTHESECONDSTEPUSESFORTWODIFFERENTPURPOSESATONCETHETHIRDSTEPSHOULDPROBABLYBESHOWTHATMAYBEEXPRESSEDINTERMSOFBYMANIPULATINGTHENOTATIONASSTATEDINEXERCISEKEYSTEPSAFTERTRANSFORMINGTHEPROBLEMASINEXAMPLETHEANSWERISBECAUSEMGENERALIZETHERESULTOFEXERCISEPRODINEQBYPROVINGTHATASSUMINGTHATMFINDASIMPLEFORMULAFORSUMHMAEXPRESSINTERMSOFTHEMULTIPLESUMNOTATIONEXPLAINEDATTHEENDOFTHESECTIONBEXPRESSTHESAMESUMINTERMSOFANDSEEEQABLETSOLUTIONTHEGENERALSOLUTIONTOTHISPROBLEMASTHENUMBEROFINDICESGETSLARGERMAYBEFOUNDINSECTIONEQSYMHBINETCAUCHYSCHWARZMJBINETWITHOUTUSINGINDUCTIONPROVETHEIDENTITYANIMPORTANTSPECIALCASEARISESWHENAREARBITRARYCOMPLEXNUMBERSANDWESETTHETERMSARENONNEGATIVESOTHEFAMOUSCAUCHYSCHWARZINEQUALITYCAUCHYSINEQUALITYISACONSEQUENCEOFBINETSFORMULAWRITETHELEFTSIDEASANDDOASIMILARTHINGONTHERIGHTTHISIDENTITYISTHESPECIALCASEOFEXERCISECAUCHYSSUMSWEREEXTENDEDTOINTEGRALSBYVBOUNIAKOWSKYMEMACADSTPETERSBOURGNOANDHASCHWARZACTASOCIETATISSCIENTIARUMFENNICAEBINETCOROLLARYMUSEBINETSFORMULATOEXPRESSTHESUMINTERMSOFANDSETANDTOOBTAINTHEANSWERCONSEQUENTLYWEHAVEWHENANDARESULTKNOWNASCHEBYSHEVSMONOTONICINEQUALITYSEESOOBSHCHMATOBSHCHKHARKOVSKOMUNIVMPROVETHATSUMSMULTIPLEDIVDIFFIDENTMONEEVENINGDRMATRIXDISCOVEREDSOMEFORMULASTHATMIGHTEVENBECLASSEDASMOREREMARKABLETHANTHOSEOFEXERCISEPROVETHATTHESEFORMULASAREASPECIALCASEOFAGENERALLAWLETBEDISTINCTNUMBERSANDSHOWTHATTHISCANBEPROVEDBYINDUCTIONONIFWEREWRITETHEFORMULAASEACHOFTHESESUMSNOWHASTHEFORMOFTHEORIGINALSUMEXCEPTONELEMENTSANDTHEVALUESTURNOUTNICELYBYINDUCTIONWHENWHENCONSIDERTHEIDENTITYWHEREISAPOLYNOMIALOFDEGREEINWHOSECOEFFICIENTSARESYMMETRICFUNCTIONSOFTHATDONTDEPENDONSEEEXERCISEELEMSYMWEOBTAINTHEDESIREDANSWERFROMTHESOLUTIONSFORNOTESDRMATRIXWASANTICIPATEDINTHISDISCOVERYBYLEULERWHOWROTETOCHRISTIANGOLDBACHABOUTITONNOVEMBERSEEEULERSINSTITUTIONUMCALCULIINTEGRALISANDEWARINGPHILTRANSTHEFOLLOWINGALTERNATIVEMETHODOFPROOFUSINGCOMPLEXVARIABLETHEORYISLESSELEMENTARYBUTMOREELEGANTBYTHERESIDUETHEOREMTHEVALUEOFTHEGIVENSUMISWHERETHELAURENTEXPANSIONOFTHEINTEGRANDCONVERGESUNIFORMLYONITISINTEGRATINGTERMBYTERMEVERYTHINGVANISHESEXCEPTTHECOEFFICIENTOFTHISMETHODGIVESUSTHEGENERALFORMULAFORANARBITRARYINTEGERSEEEQDEFHJJSYLVESTERQUARTJMATHMPROVETHATPROVIDEDTHATANDISARBITRARYFOREXAMPLEIFANDTHENIFTHEREADERHASTRIEDEARNESTLYTOSOLVETHISPROBLEMWITHOUTGETTINGTHEANSWERPERHAPSITSPURPOSEHASBEENACHIEVEDTHETEMPTATIONTOREGARDTHENUMERATORSASPOLYNOMIALSINRATHERTHANASPOLYNOMIALSINISALMOSTOVERWHELMINGITWOULDUNDOUBTEDLYBEEASIERTOPROVETHECONSIDERABLYMOREGENERALRESULTWHICHISANIDENTITYINVARIABLESSUPLAWSTHENOTATIONISUSEDTODENOTETHESUPREMUMLEASTUPPERBOUNDOFTHEELEMENTSINAMANNEREXACTLYANALOGOUSTOTHEANDNOTATIONSWHENISSATISFIEDFORONLYFINITELYMANYTHENOTATIONISOFTENUSEDTODENOTETHESAMEQUANTITYSHOWHOWRULESABCANDDCANBEADAPTEDFORMANIPULATIONOFTHISNOTATIONINPARTICULARDISCUSSTHEFOLLOWINGANALOGOFRULEADISTRIBUTIVELAWANDGIVEASUITABLEDEFINITIONFORTHENOTATIONWHENISSATISFIEDFORNOIFNEVERHOLDSTHEVALUESHOULDBETHESTATEDANALOGOFRULEAISBASEDONTHEIDENTITYSIMILARLYIFALLARENONNEGATIVEWEHAVERULESBCDONOTCHANGEFORRULEDWEGETTHESIMPLERFORMEXERCISESSECONDSETDETERMINANTSANDMATRICESTHEFOLLOWINGINTERESTINGPROBLEMSDETERMINANTSAREFORTHEREADERWHOHASEXPERIENCEDATLEASTANINTRODUCTIONTODETERMINANTSANDELEMENTARYMATRIXTHEORYADETERMINANTMAYBEEVALUATEDBYASTUTELYCOMBININGTHEOPERATIONSOFAFACTORINGAQUANTITYOUTOFAROWORCOLUMNBADDINGAMULTIPLEOFONEROWORCOLUMNTOANOTHERROWORCOLUMNCEXPANDINGBYCOFACTORSTHESIMPLESTANDMOSTOFTENUSEDVERSIONOFOPERATIONCISTOSIMPLYDELETETHEENTIREFIRSTROWANDCOLUMNPROVIDEDTHATTHEELEMENTINTHEUPPERLEFTCORNERISANDTHEREMAININGELEMENTSINEITHERTHEENTIREFIRSTROWORTHEENTIREFIRSTCOLUMNAREZEROTHENEVALUATETHERESULTINGSMALLERDETERMINANTINGENERALTHECOFACTOROFANELEMENTINANDETERMINANTISIFOTHERWISEITSTIMESTHEDETERMINANTOBTAINEDBYDELETINGTHEROWANDCOLUMNINWHICHAPPEAREDTHEVALUEOFADETERMINANTISEQUALTOSUMMEDWITHEITHERORHELDCONSTANTANDWITHTHEOTHERSUBSCRIPTVARYINGFROMTOIFISTHEINVERSEOFMATRIXTHENEQUALSINVERSEOFMATRIXTHECOFACTOROFNOTDIVIDEDBYTHEDETERMINANTOFTHEWHOLEMATRIXTHEFOLLOWINGTYPESOFMATRICESAREOFSPECIALIMPORTANCEVANDERMONDEMATRIXCOMBINATORIALMATRIXCAUCHYMATRIXCOMBDETMSHOWTHATTHEDETERMINANTOFTHECOMBINATORIALMATRIXISSUBTRACTCOLUMNONEFROMCOLUMNSADDROWSTOROWONETHERESULTISATRIANGULARDETERMINANTVDMDETMSHOWTHATTHEDETERMINANTOFVANDERMONDESMATRIXISSUBTRACTCOLUMNONEFROMCOLUMNSTHENSUBTRACTTIMESROWFROMROWFORINTHATORDERNOWFACTOROUTOFTHEFIRSTCOLUMNANDFACTOROUTOFCOLUMNSOBTAININGTIMESAVANDERMONDEDETERMINANTOFORDERTHEPROCESSCONTINUESBYINDUCTIONALTERNATIVEPROOFUSINGHIGHERMATHEMATICSTHEDETERMINANTISAPOLYNOMIALINTHEVARIABLESOFTOTALDEGREEITVANISHESIFORIFANDTHECOEFFICIENTOFISTHESEFACTSCHARACTERIZEITSVALUEINGENERALIFTWOROWSOFAMATRIXBECOMEEQUALFORTHEIRDIFFERENCEISUSUALLYDIVISIBLEBYANDTHISOBSERVATIONOFTENSPEEDSTHEEVALUATIONOFDETERMINANTSMSHOWTHATTHEDETERMINANTOFCAUCHYSMATRIXISSUBTRACTCOLUMNONEFROMCOLUMNSANDFACTOROUTFROMROWSANDCOLUMNSNOWSUBTRACTROWONEFROMROWSANDFACTOROUTWEARELEFTWITHTHECAUCHYDETERMINANTOFORDERCOMBINVMSHOWTHATTHEINVERSEOFACOMBINATORIALMATRIXISACOMBINATORIALMATRIXWITHTHEENTRIESLETBETHEIDENTITYMATRIXANDTHEMATRIXOFALLONESSINCEWEHAVEMSHOWTHATTHEINVERSEOFVANDERMONDESMATRIXISGIVENBYELEMENTARYSYMMETRICFUNCTIONSDONTBEDISMAYEDBYTHECOMPLICATEDSUMINTHENUMERATORITSJUSTTHECOEFFICIENTOFINTHEPOLYNOMIALITEQUALSWHENADEMOIVRETHEDOCTRINEOFCHANCESNDEDITIONLONDONWEHAVECAUCHYINVMSHOWTHATTHEINVERSEOFCAUCHYSMATRIXISGIVENBYTHISFOLLOWSIMMEDIATELYFROMTHERELATIONOFANINVERSEMATRIXTOITSCOFACTORSITMAYALSOBEINTERESTINGTOGIVEADIRECTPROOFHEREWEHAVEWHENTHISISAPOLYNOMIALOFDEGREEATMOSTINIFWESETTHETERMSAREZEROEXCEPTWHENSOTHEVALUEOFTHISPOLYNOMIALISTHESEPOLYNOMIALSOFDEGREEATMOSTAGREEATDISTINCTPOINTSSOTHEYAGREEALSOFORHENCEMWHATISTHESUMOFALLELEMENTSINTHEINVERSEOFTHECOMBINATORIALMATRIXCOMBINATORIALMATRIXMWHATISTHESUMOFALLELEMENTSINTHEINVERSEOFVANDERMONDESMATRIXHINTUSEEXERCISEVANDERMONDEMATRIXTHISISEASILYVERIFIEDIFANYSINCETHEINVERSEOFANYMATRIXHAVINGAROWORCOLUMNALLOFONESMUSTHAVEELEMENTSWHOSESUMISIFNONEOFTHEEQUALSONESUMTHEELEMENTSOFROWBYSETTINGINEXERCISEANDOBTAININGAFTERMULTIPLYINGNUMERATORANDDENOMINATORBYWECANSUMONBYAPPLYINGEXERCISEWITHTOTHENUMBERSMWHATISTHESUMOFALLELEMENTSINTHEINVERSEOFCAUCHYSMATRIXINVERSEOFMATRIXCAUCHYMATRIXWEFINDAFTERAPPLYINGEXERCISEANDMAHILBERTMATRIXSOMETIMESCALLEDANSEGMENTOFTHEINFINITEHILBERTMATRIXISAMATRIXFORWHICHSHOWTHATTHISISASPECIALCASEOFCAUCHYSMATRIXFINDITSINVERSESHOWTHATEACHELEMENTOFTHEINVERSEISANINTEGERANDSHOWTHATTHESUMOFALLELEMENTSOFTHEINVERSEISNOTEHILBERTMATRICESHAVEOFTENBEENUSEDTOTESTVARIOUSMATRIXMANIPULATIONALGORITHMSBECAUSETHEYARENUMERICALLYUNSTABLEANDTHEYHAVEKNOWNINVERSESHOWEVERITISAMISTAKETOCOMPARETHEKNOWNINVERSEGIVENINTHISEXERCISETOTHECOMPUTEDINVERSEOFAHILBERTMATRIXSINCETHEMATRIXTOBEINVERTEDMUSTBEEXPRESSEDINROUNDEDNUMBERSBEFOREHANDTHEINVERSEOFANAPPROXIMATEHILBERTMATRIXWILLBESOMEWHATDIFFERENTFROMTHEINVERSEOFANEXACTONEDUETOTHEINSTABILITYPRESENTSINCETHEELEMENTSOFTHEINVERSEAREINTEGERSANDSINCETHEINVERSEMATRIXISJUSTASUNSTABLEASTHEORIGINALTHEINVERSECANBESPECIFIEDEXACTLYANDONECOULDTRYTOINVERTTHEINVERSETHEINTEGERSTHATAPPEARINTHEINVERSEAREHOWEVERQUITELARGETHESOLUTIONTOTHISPROBLEMREQUIRESANELEMENTARYKNOWLEDGEOFFACTORIALSANDBINOMIALCOEFFICIENTSWHICHAREDISCUSSEDINSECTIONSANDLETFROMEXERCISETHESUMOFTHEELEMENTSOFTHEINVERSEISFROMEXERCISETHEELEMENTSOFTHEINVERSEARETHISQUANTITYCANBEPUTINTOSEVERALFORMSINVOLVINGBINOMIALCOEFFICIENTSFOREXAMPLEFROMTHELATTERFORMULAWESEETHATISNOTONLYANINTEGERITISDIVISIBLEBYANDPERHAPSTHEPRETTIESTFORMULAFORISTHESOLUTIONTOTHISPROBLEMWOULDBEEXTREMELYDIFFICULTIFWEHADNOTREALIZEDTHATAHILBERTMATRIXISASPECIALCASEOFACAUCHYMATRIXTHEMOREGENERALPROBLEMISMUCHEASIERTOSOLVETHANITSSPECIALCASEITISFREQUENTLYWISETOGENERALIZEAPROBLEMTOITSINDUCTIVECLOSUREIETOTHESMALLESTGENERALIZATIONSUCHTHATALLSUBPROBLEMSTHATARISEINANATTEMPTEDPROOFBYMATHEMATICALINDUCTIONBELONGTOTHESAMECLASSINTHISCASEWESEETHATCOFACTORSOFACAUCHYMATRIXAREDETERMINANTSOFCAUCHYMATRICESBUTCOFACTORSOFHILBERTMATRICESARENOTDETERMINANTSOFHILBERTMATRICESFORFURTHERINFORMATIONSEEJTODDJRESEARCHNATBURSTANDACAUCHYEXERCICESDANALYSEETDEPHYSIQUEMATHEMATIQUEBINETCAUCHYMLETBEANMATRIXANDLETBEANMATRIXGIVENTHATLETDENOTETHEMATRIXCONSISTINGOFCOLUMNSOFANDLETDENOTETHEMATRIXCONSISTINGOFROWSOFPROVETHEBINETCAUCHYIDENTITYNOTETHESPECIALCASESIIIIIIIVVFORANYINTEGERSLETSIGNWHERESIGNIFISEQUALTOEXCEPTFORTHEFACTTHATANDHAVEBEENINTERCHANGEDWEHAVETHEREFOREWEHAVETHEEQUATIONIFARETHENUMBERSREARRANGEDINTONONDECREASINGORDERNOWBYDEFINITIONOFTHEDETERMINANTFINALLYIFJDELECOLEPOLYTECHNIQUEBINETANDCAUCHYPRESENTEDTHEIRPAPERSONTHESAMEDAYINMCKRATTENTHALERPROVETHATANDGENERALIZETHISEQUATIONTOANIDENTITYFORANDETERMINANTINVARIABLESCOMPAREYOURFORMULATOTHERESULTOFEXERCISELETSUBTRACTCOLUMNFROMCOLUMNANDFACTOROUTFORINTHATORDERFORINTHATORDERTHISLEAVESTIMESDETWHERENOWSUBTRACTTIMESCOLUMNFROMCOLUMNFORANDFORTHISLEAVESDETWHEREESSENTIALLYDEFINESAVANDERMONDEMATRIXWECANNOWPROCEEDASINEXERCISEOPERATINGONROWSINSTEADOFCOLUMNSOBTAININGWHENFORTHEMATRIXINTHISEXERCISEISACAUCHYMATRIXWITHROWMULTIPLIEDBYTHEREFORETHISRESULTGENERALIZESEXERCISEBYADDINGINDEPENDENTPARAMETERSMANUSCRIPTAMATHSUMMATIONDETERMINANTSINTEGERFUNCTIONSANDELEMENTARYNUMBERTHEORYIFISANYREALNUMBERWEWRITEFLOORCEILINGTHENOTATIONWASOFTENUSEDBEFOREFORONEORTHEOTHEROFTHESEFUNCTIONSUSUALLYTHEFORMERBUTTHENOTATIONSABOVEINTRODUCEDBYKEIVERSONINTHESAREMOREUSEFULBECAUSEANDOCCURABOUTEQUALLYOFTENINPRACTICETHEFUNCTIONISSOMETIMESCALLEDTHEENTIERFUNCTIONFROMTHEFRENCHWORDFORINTEGERTHEFOLLOWINGFORMULASANDEXAMPLESAREEASILYVERIFIEDEXERCISESATTHEENDOFTHISSECTIONLISTOTHERIMPORTANTFORMULASINVOLVINGTHEFLOORANDCEILINGOPERATIONSIFANDAREANYREALNUMBERSWEDEFINETHEFOLLOWINGBINARYOPERATIONMODMODDEFFROMTHISDEFINITIONWECANSEETHATWHENCONSEQUENTLYAIFTHENBIFTHENCTHEQUANTITYISANINTEGRALMULTIPLEOFWECALLTHEREMAINDERWHENISDIVIDEDBYSIMILARLYWECALLTHEQUOTIENTWHENANDAREINTEGERSMODISTHEREFOREAFAMILIAROPERATIONWEHAVEIFANDONLYIFISAMULTIPLEOFTHATISIFANDONLYIFISDIVISIBLEBYTHENOTATIONREADDIVIDESMEANSTHATISAPOSITIVEINTEGERANDTHEMODOPERATIONISUSEFULALSOWHENANDTAKEARBITRARYREALVALUESFOREXAMPLEWITHTRIGONOMETRICFUNCTIONSWECANWRITETHEQUANTITYISTHEMODFRACTIONALPARTOFWEHAVEBYEQWRITERSONNUMBERTHEORYOFTENUSETHEABBREVIATIONMODINADIFFERENTBUTNUMBERTHEORYMODULOCONGRUENCECLOSELYRELATEDSENSEWEWILLUSETHEFOLLOWINGFORMTOEXPRESSTHENUMBERTHEORETICALCONCEPTOFCONGRUENCETHESTATEMENTMEANSTHATITISTHESAMEASSAYINGTHATISANINTEGRALMULTIPLEOFEXPRESSIONISREADISCONGRUENTTOMODULOLETSTURNNOWTOTHEBASICELEMENTARYPROPERTIESOFCONGRUENCESTHATWILLBEUSEDINTHENUMBERTHEORETICALARGUMENTSOFTHISBOOKALLVARIABLESINTHEFOLLOWINGFORMULASAREASSUMEDTOBEINTEGERSTWOINTEGERSANDARESAIDTOBERELATIVELYPRIMEIFTHEYHAVENOCOMMONFACTORTHATISIFTHEIRGREATESTCOMMONDIVISORISINSUCHACASEWEWRITETHECONCEPTOFRELATIVELYPRIMEINTEGERSISAFAMILIARONESINCEITISCUSTOMARYTOSAYTHATAFRACTIONISINLOWESTTERMSWHENTHENUMERATORISRELATIVELYPRIMETOTHEDENOMINATORLAWAIFANDTHENANDBMODCANCELLAWBIFANDANDIFTHENLAWCIFANDONLYIFWHENDMODRSLAWDIFTHENIFANDONLYIFANDLAWASTATESTHATWECANDOADDITIONSUBTRACTIONANDMULTIPLICATIONMODULOJUSTASWEDOORDINARYADDITIONSUBTRACTIONANDMULTIPLICATIONLAWBCONSIDERSTHEOPERATIONOFDIVISIONANDSHOWSTHATWHENTHEDIVISORISRELATIVELYPRIMETOTHEMODULUSWECANALSODIVIDEOUTCOMMONFACTORSLAWSCANDDCONSIDERWHATHAPPENSWHENTHEMODULUSISCHANGEDTHESELAWSAREPROVEDINTHEEXERCISESBELOWTHEFOLLOWINGIMPORTANTTHEOREMISACONSEQUENCEOFLAWSAANDBFFERMATTHMTHEOREMFFERMATSTHEOREMIFISAPRIMENUMBERTHENFORALLINTEGERSIFISAMULTIPLEOFOBVIOUSLYSOWENEEDONLYCONSIDERTHECASESINCEISAPRIMENUMBERTHISMEANSTHATCONSIDERTHENUMBERSTHESENUMBERSAREALLDISTINCTFORIFTHENBYDEFINITIONHENCEBYLAWBSINCEGIVESDISTINCTNUMBERSALLNONNEGATIVEANDLESSTHANWESEETHATTHEFIRSTNUMBERISZEROANDTHERESTARETHEINTEGERSINSOMEORDERTHEREFOREBYLAWAMULTIPLYINGEACHSIDEOFTHISCONGRUENCEBYWEOBTAINANDTHISPROVESTHETHEOREMSINCEEACHOFTHEFACTORSISRELATIVELYPRIMETOANDCANBECANCELEDBYLAWBEXERCISESWHATAREANDWHATISMLETBEANINTEGERANDLETBEAREALNUMBERPROVETHATAIFANDONLYIFBIFANDONLYIFCIFANDONLYIFDIFANDONLYIFEIFANDONLYIFANDIFANDONLYIFFIFANDONLYIFANDIFANDONLYIFCEILINGTHESEFORMULASARETHEMOSTIMPORTANTTOOLSFORPROVINGFACTSABOUTANDBYDEFINITIONISTHEGREATESTINTEGERLESSTHANOREQUALTOTHEREFOREISANINTEGERANDTHELATTERPROPERTIESPLUSTHEFACTTHATWHENANDAREINTEGERSWEHAVEIFANDONLYIFLEADTOANEASYPROOFOFPROPOSITIONSAANDBSIMILARARGUMENTSPROVECANDDFINALLYEANDFAREJUSTCOMBINATIONSOFPREVIOUSPARTSOFTHISEXERCISEMUSINGTHEPREVIOUSEXERCISEPROVETHATBYPARTFHENCEUSEPARTEGIVENTHATISAPOSITIVEREALNUMBERSTATEASIMPLEFORMULATHATEXPRESSESROUNDEDTOTHENEARESTINTEGERTHEDESIREDROUNDINGRULEISTOPRODUCEWHENANDTOPRODUCEWHENYOURANSWERSHOULDBEASINGLEFORMULATHATCOVERSBOTHCASESDISCUSSTHEROUNDINGTHATWOULDBEOBTAINEDBYYOURFORMULAWHENISNEGATIVETHEVALUEOFROUNDEDWILLBETHESAMEASROUNDEDEXCEPTWHENINTHELATTERCASETHENEGATIVEVALUEISROUNDEDTOWARDSZEROANDTHEPOSITIVEVALUEISROUNDEDAWAYFROMZEROWHICHOFTHEFOLLOWINGEQUATIONSARETRUEFORALLPOSITIVEREALNUMBERSABCAISTRUESIMILARLYBISTRUEBUTCFAILSWHENISSAYMSHOWTHATANDTHATEQUALITYHOLDSIFANDONLYIFDOESASIMILARFORMULAHOLDFORCEILINGSFLOORTHEINEQUALITYSHOULDBEFORCEILINGSANDTHENEQUALITYHOLDSIFANDONLYIFEITHERORISANINTEGERORTHATISIFANDONLYIFWHATAREMODMODMODMODWHATAREMODMODMODWHATAREMODMODMODWHATDOESMEANBYOURCONVENTIONSWHATINTEGERSARERELATIVELYPRIMETOALLMBYCONVENTIONWESAYTHATTHEGREATESTCOMMONDIVISOROFANDISWHATINTEGERSARERELATIVELYPRIMETOIFANDWHATISPROVETHATLAWCISANIMMEDIATECONSEQUENCEOFTHISDISTRIBUTIVELAWMULTIPLYBOTHSIDESOFEQBYTHERESULTISALSOEASILYVERIFIEDIFMASSUMETHATSHOWTHATIFISANINTEGERANDIFTHENMPROVELAWADIRECTLYFROMTHEDEFINITIONOFCONGRUENCEANDALSOPROVEHALFOFLAWDIFTHENANDHEREANDAREARBITRARYINTEGERSASANEXAMPLECONSIDERTHEMULTIPLICATIONPORTIONOFLAWAWEHAVEANDFORSOMEINTEGERSANDSOMUSINGLAWBPROVETHEOTHERHALFOFLAWDIFANDTHENPROVIDEDTHATWEHAVEFORSOMEINTEGERANDALSOMODULOHENCEBYLAWBMODULOSOFORSOMEINTEGERINVMODPMLAWOFINVERSESIFINVERSEMODULOEUCLIDSALGORITHMEXTENDEDTHEREISANINTEGERSUCHTHATMODULOPROVETHISUSINGTHEEXTENSIONOFEUCLIDSALGORITHMALGORITHMEXTEUCLIDMUSETHELAWOFINVERSESANDLAWATOPROVELAWBMULTIPLYBOTHSIDESOFTHECONGRUENCEBYUNIQFACTMFUNDAMENTALTHEOREMOFARITHMETICPRIMEFACTORIZATIONUSELAWBANDEXERCISEPRIMEFACTORSTOPROVETHATEVERYINTEGERHASAUNIQUEREPRESENTATIONASAPRODUCTOFPRIMESEXCEPTFORTHEORDEROFTHEFACTORSINOTHERWORDSSHOWTHATTHEREISEXACTLYONEWAYTOWRITEWHEREEACHISPRIMEANDTHEREISATLEASTONESUCHREPRESENTATIONBYTHEPREVIOUSLYPROVEDEXERCISEIFTHEREARETWOREPRESENTATIONSWEHAVEMODULOSOIFNONEOFTHESEQUALSWECOULDCANCELTHEMALLBYLAWBANDOBTAINMODULOTHELATTERISIMPOSSIBLESINCEISNOTEQUALTOSOSOMEEQUALSANDEITHERISPRIMEWHENTHERESULTISCLEARLYTRUEORBYINDUCTIONTHETWOFACTORIZATIONSOFARETHESAMEMGIVEANEXAMPLETOSHOWTHATLAWBISNOTALWAYSTRUEIFISNOTRELATIVELYPRIMETOLETWHEREANDTHENBUTMODULOMGIVEANEXAMPLETOSHOWTHATLAWDISNOTALWAYSTRUEIFISNOTRELATIVELYPRIMETOMTOWHATEXTENTCANLAWSABCANDDBEGENERALIZEDTOAPPLYTOARBITRARYREALNUMBERSINSTEADOFINTEGERSLAWAISALWAYSVALIDFORADDITIONANDSUBTRACTIONLAWCISALWAYSVALIDMSHOWTHATACCORDINGTOTHEOREMFISNOTAMULTIPLEOFWHENEVERISAPRIMENUMBERSQRTMODPMLETBEANODDPRIMENUMBERLETBEANYINTEGERANDLETSHOWTHATISEITHERORORHINTCONSIDERIFISNOTAMULTIPLEOFTHENISSOONEOFTHEFACTORSMUSTBEMGIVENTHATISAPOSITIVEINTEGERLETBETHETOTIENTFUNCTIONNUMBEROFVALUESAMONGTHATARERELATIVELYPRIMETOTHUSETCSHOWTHATIFISAPRIMENUMBERANDEVALUATEWHENISAPOSITIVEINTEGERANUMBERISRELATIVELYPRIMETOIFANDONLYIFITISNOTAMULTIPLEOFSOWECOUNTTHOSETHATARENOTMULTIPLESOFANDGETEULERTHMMSHOWTHATTHEMETHODUSEDTOPROVETHEOREMFCANBEUSEDTOPROVETHEFOLLOWINGEXTENSIONCALLEDEULERSTHEOREMMODULOFORANYPOSITIVEINTEGERWHENINPARTICULARTHENUMBERINEXERCISEMAYBETAKENTOBECONGRUENCEIFANDARERELATIVELYPRIMETOSOISSINCEANYPRIMEDIVIDINGTHELATTERANDMUSTDIVIDEORALSONOWSIMPLYLETBETHENUMBERSRELATIVELYPRIMETOANDOBSERVETHATARETHESAMENUMBERSINSOMEORDERETCMAFUNCTIONOFPOSITIVEINTEGERSISCALLEDMULTIPLICATIVEIFWHENEVERMULTIPLICATIVEFUNCTIONSHOWTHATEACHOFTHEFOLLOWINGFUNCTIONSISMULTIPLICATIVEAWHEREISANYCONSTANTBISNOTDIVISIBLEBYFORANYINTEGERCWHEREISTHENUMBEROFDISTINCTPRIMESTHATDIVIDEDTHEPRODUCTOFANYTWOMULTIPLICATIVEFUNCTIONSWEPROVEBIFANDIFDIVIDESTHENDIVIDESFORSOMEPRIMESODIVIDESSAYANDCANNOTDIVIDESODIVIDESWESEETHATIFANDONLYIFORTOTIENTEVALMPROVETHATTHEFUNCTIONOFEXERCISEISMULTIPLICATIVEUSINGTHISFACTEVALUATEANDGIVEAMETHODFOREVALUATINGINASIMPLEWAYONCEHASBEENFACTOREDINTOPRIMESSUPPOSEONEIDEAISTOPROVETHATTHENUMBERSRELATIVELYPRIMETOAREPRECISELYTHEDISTINCTNUMBERSMODWHEREANDARETHECORRESPONDINGVALUESFORANDSINCEISMULTIPLICATIVEANDINGENERALWHENWEHAVEANOTHERPROOFAPPEARSINEXERCISEDIVISORCOUNTSUMISMULTMPROVETHATIFISMULTIPLICATIVESOISMULTIPLICATIVEFUNCTIONUSETHEFACTTHATTHEDIVISORSOFMAYBEUNIQUELYWRITTENINTHEFORMWHEREDIVIDESANDDIVIDESSIMILARLYIFONECANSHOWTHATTHEFUNCTIONISMULTIPLICATIVESEEEXERCISESUPLAWSMPROVETHEDOUBLESUMMATIONIDENTITYINTERCHANGEORDERFORANYFUNCTIONMGIVENTHATANDAREINTEGERSEVALUATEABTHESPECIALCASEISWORTHNOTINGEITHERORISEVENSOONEOFTHEQUANTITIESINSIDETHEBRACKETSISANINTEGERSOEQUALITYHOLDSINEXERCISEANDWEOBTAINABFLOOROFLOGMWHATCONDITIONSONTHEREALNUMBERARENECESSARYANDSUFFICIENTTOGUARANTEETHATFORALLREALMUSTBEANINTEGERSETTHESUFFICIENCYISPROVEDASINEXERCISETHESAMECONDITIONISNECESSARYANDSUFFICIENTFORNOTERJMCELIECEHASPOINTEDOUTTHEFOLLOWINGGENERALIZATIONLETBEACONTINUOUSSTRICTLYINCREASINGFUNCTIONDEFINEDONANINTERVALANDASSUMETHATBOTHANDAREINWHENEVERISINTHENTHERELATIONHOLDSFORALLINIFANDONLYIFTHERELATIONHOLDSFORALLINIFANDONLYIFTHEFOLLOWINGCONDITIONISSATISFIEDFORALLINISANINTEGERIMPLIESISANINTEGERTHECONDITIONISOBVIOUSLYNECESSARYFORIFISANINTEGERANDITEQUALSORTHENMUSTEQUALORCONVERSELYIFSAYTHENBYCONTINUITYTHEREISSOMEWITHFORWHICHISANINTEGERBUTCANNOTBEANINTEGERNESTEDFLOORMGIVENTHATANDAREINTEGERSANDPROVETHATFORALLREALWHENWEHAVEANIMPORTANTSPECIALCASEDOESANANALOGOUSRESULTHOLDFORTHECEILINGFUNCTIONAPPLYEXERCISEUSEOFEXERCISEGIVESASIMILARRESULTFORTHECEILINGFUNCTIONBOTHIDENTITIESFOLLOWASASPECIALCASEOFMCELIECESTHEOREMINEXERCISEMPROVETHATALSOEVALUATEASSUMEFIRSTTHATTHENHENCEBYEXERCISEANDIFWEHAVEFORTHESECONDSUMWEGETSIMILARLYFLOORFRACSUMMLETANDBEINTEGERSSHOWTHATWHEREISTHEGREATESTCOMMONDIVISOROFANDANDISANYREALNUMBERLETDENOTEWEMUSTSUBTRACTTHISQUANTITYCONSISTSOFCOPIESOFTHESAMESUMSINCEIFWEHAVELETTHENANDSINCETHISSUMMAYBEREARRANGEDTOEQUALFINALLYSINCETHEBRACESINTHISSUMMAYBEREMOVEDANDWEHAVEANAPPLICATIONOFEXERCISEYIELDSTHESIMILARIDENTITYTHISFORMULAWOULDBECOMESYMMETRICINANDIFITWEREEXTENDEDOVERTHERANGETHESYMMETRYCANBEEXPLAINEDBYDRAWINGTHEGRAPHOFTHESUMMANDASAFUNCTIONOFTHENREFLECTINGABOUTTHELINEFLOORREPLMEBUSCHEPROVETHATFORALLREALANDWITHINPARTICULARWHENISAPOSITIVEINTEGERWEHAVETHEIMPORTANTFORMULABOTHSIDESINCREASEBYWHENINCREASESBYSOWECANASSUMETHATTHENBOTHSIDESAREZEROWHENANDBOTHSIDESINCREASEBYWHENINCREASESPASTTHEVALUESFORCRELLETHECASEISDUETOCHERMITEACTAMATHREPLICAFUNCTIONFORWHICHWHENEVERISAPOSITIVEINTEGERISCALLEDAREPLICATIVEFUNCTIONTHEREPLICATIVEFUNCTIONPREVIOUSEXERCISEESTABLISHESTHEFACTTHATISREPLICATIVESHOWTHATTHEFOLLOWINGFUNCTIONSAREREPLICATIVEABXCXDRMXRMETHREEOTHERFUNCTIONSLIKETHEONEINDWITHANDORRESTRICTEDTOPOSITIVEVALUESFIFTHEVALUEISALLOWEDGTHESUMOFANYTWOREPLICATIVEFUNCTIONSHACONSTANTMULTIPLEOFAREPLICATIVEFUNCTIONITHEFUNCTIONWHEREISREPLICATIVEPROOFOFPARTFCONSIDERTHEMOREGENERALIDENTITYWHICHCANBEDEMONSTRATEDASFOLLOWSSINCETHEIDENTITYISACONSEQUENCEOFTHETWOFORMULASTHELATTERISTRUESINCETHEFUNCTIONISREPLICATIVEANDTHEFORMERISTRUEBECAUSEWEMAYSETINTHEFACTORIZATIONOFTHEPOLYNOMIALWHERESTUDYTHECLASSOFREPLICATIVEFUNCTIONSDETERMINEALLREPLICATIVEFUNCTIONSOFASPECIALTYPEFOREXAMPLEISTHEFUNCTIONINAOFEXERCISETHEONLYCONTINUOUSREPLICATIVEFUNCTIONITMAYBEINTERESTINGTOSTUDYALSOTHEMOREGENERALCLASSOFFUNCTIONSFORWHICHHEREANDARENUMBERSTHATDEPENDONBUTNOTONDERIVATIVESANDIFINTEGRALSOFTHESEFUNCTIONSAREOFTHESAMETYPEIFWEREQUIREREPLICATIVEFUNCTIONTHATWEHAVEFOREXAMPLETHEBERNOULLIPOLYNOMIALSTHETRIGONOMETRICFUNCTIONSANDASWELLASHURWITZSGENERALIZEDZETAFUNCTIONFORFIXEDWITHWEHAVESTILLOTHERWELLKNOWNFUNCTIONSSUCHASTHEPSIFUNCTIONNOTEBYNGDEBRUIJNIFISREPLICATIVEFORALLHENCEIFISCONTINUOUSFORALLANDISREPLICATIVEANDPERIODICNOWEXPANDINGINFOURIERSERIESSHOWSTHATFORITFOLLOWSTHATINGENERALTHISARGUMENTSHOWSTHATANYREPLICATIVELOCALLYRIEMANNINTEGRABLEFUNCTIONHASTHEFORMALMOSTEVERYWHEREFORFURTHERRESULTSSEELJMORDELLJLONDONMATHSOCMFYODERAEQUATIONESMATHEMATICAENNSMLETBETHESEQUENCEFINDANEXPRESSIONFORINTERMSOFUSINGTHEFLOORANDORCEILINGFUNCTIONWEWANTWHENSINCEISANINTEGERTHISISEQUIVALENTTOIEHENCETHENEARESTINTEGERTOOTHERCORRECTANSWERSAREETCSUMBYPARTSMAPROVETHATSUMMATIONBYPARTSBTHEPRECEDINGFORMULAISUSEFULFOREVALUATINGCERTAINSUMSINVOLVINGTHEFLOORFUNCTIONPROVETHATIFISANINTEGERASEEEXERCISEGENSUMBYPARTSBTHEGIVENSUMISWHEREMEVALUATEMSHOWTHATIFANDAREINTEGERSANDWHATISTHEVALUEOFTHISSUMWHENTHESUMISWHENISNEGATIVEGENRECIPMTHERESULTOFEXERCISEISSOMEWHATSURPRISINGSINCEITIMPLIESTHATWHENANDAREPOSITIVEINTEGERSANDISARBITRARYTHISRECIPROCITYRELATIONSHIPISONEOFMANYSIMILARFORMULASSEESECTIONRECIPROCITYSHOWTHATINGENERALWEHAVEFORANYFUNCTIONANDALLINTEGERSINPARTICULARPROVETHATHINTCONSIDERTHECHANGEOFVARIABLEBINOMIALCOEFFICIENTSAREDISCUSSEDINSECTIONIFANDONLYIFANDWEFINDTHATTHEGIVENSUMISTHEREFORETHESTATEDRESULTFOLLOWSBYREARRANGINGTHELATTERSUMGROUPINGTHETERMSWITHAPARTICULARVALUEOFTHESECONDFORMULAISIMMEDIATEBYTHESUBSTITUTIONMGENERALRECIPROCITYLAWEXTENDTHEFORMULAOFEXERCISETOOBTAINANEXPRESSIONFORWHEREISANYPOSITIVEREALNUMBEREXEXQUADRECIPMWHENISANODDPRIMENUMBERTHELEGENDRESYMBOLISDEFINEDTOBEORDEPENDINGONWHETHERISOREXERCISESQRTMODPPROVESTHATTHESEARETHEONLYPOSSIBLEVALUESAGIVENTHATISNOTAMULTIPLEOFSHOWTHATTHENUMBERSARECONGRUENTINSOMEORDERTOTHENUMBERSMODULOHENCEWHEREBUSETHERESULTOFATOCALCULATECGIVENTHATISODDSHOWTHATUNLESSISAMULTIPLEOFHINTCONSIDERTHEQUANTITYDUSETHEGENERALRECIPROCITYFORMULAOFEXERCISETOOBTAINTHELAWOFQUADRATICRECIPROCITYGIVENTHATANDAREDISTINCTODDPRIMESRECIPROCITYEXEXATHENUMBERSARETHEEVENRESIDUESMODULOSINCETHENUMBERWILLBEANEVENRESIDUEORANEVENRESIDUEMINUSANDEACHEVENRESIDUECLEARLYOCCURSJUSTONCEHENCEBLETIFIFHENCEACCORDINGASRESPECTIVELYCFORWEHAVEHENCEWEMAYREPLACETHELASTTERMSBYETCDALSOTHEIDEAOFTHISPROOFGOESBACKTOGEISENSTEINCRELLEEISENSTEINALSOGAVESEVERALOTHERPROOFSOFTHISANDOTHERRECIPROCITYLAWSINTHESAMEVOLUMEMPROVEORDISPROVETHEFOLLOWINGIDENTITIESFORINTEGERSANDATHISISCLEARLYNOTALWAYSTRUEWHENWHENITISEASYTOVERIFYBTHEPENULTIMATEEQUALITYISJUSTIFIEDBYEXERCISEMSUPPOSETHEINTEGERVALUEDFUNCTIONSATISFIESTHETWOSIMPLELAWSIIIFORALLPOSITIVEINTEGERSPROVETHATEITHERFORALLRATIONALORFORALLRATIONALSINCEWEHAVEFORALLINTEGERSIFWEHAVEANDIFWEHAVEFURTHERMOREIMPLIESFORBYINDUCTIONONTHUSIMPLIESFORALLRATIONALONTHEOTHERHANDIFTHEFUNCTIONSATISFIESIANDIIANDHASHENCEFORALLRATIONALPEISELEANDKPHADELERAMMITDOESNOTFOLLOWHOWEVERTHATORFORALLREALVALUESOFIFFOREXAMPLEISANYFUNCTIONWITHANDFORALLREALANDTHENTHEFUNCTIONSATISFIESIANDIIBUTMAYBEUNBOUNDEDANDHIGHLYERRATICWHENGHAMELMATHANNALENMJHQUICKNOTICEDTHATPIRANDOMANDISITTRUETHATFORALLINTEGERSANDNOBUTDOESIMPLYTHATWHENEVERANDDOESIMPLYTHATWHENEVERNUMBERTHEORYPERMUTATIONSANDFACTORIALSAPERMUTATIONOFOBJECTSISANARRANGEMENTOFDISTINCTPERMUTATIONSOBJECTSINAROWTHEREARESIXPERMUTATIONSOFTHREEOBJECTSTHEPROPERTIESOFPERMUTATIONSAREOFGREATIMPORTANCEINTHEANALYSISOFALGORITHMSANDWEWILLDEDUCEMANYINTERESTINGFACTSABOUTTHEMLATERINTHISBOOKINFACTPERMUTATIONSARESOIMPORTANTVAUGHANPRATTHASSUGGESTEDCALLINGTHEMPERMSASSOONASPRATTSCONVENTIONISESTABLISHEDTEXTBOOKSOFCOMPUTERSCIENCEWILLBESOMEWHATSHORTERANDPERHAPSLESSEXPENSIVEPRATTTERMINOLOGYOURFIRSTTASKISSIMPLYTOCOUNTTHEMHOWMANYPERMUTATIONSOFOBJECTSAREPOSSIBLETHEREAREWAYSTOCHOOSETHELEFTMOSTOBJECTANDONCETHISCHOICEHASBEENMADETHEREAREWAYSTOSELECTADIFFERENTOBJECTTOPLACENEXTTOITTHISGIVESUSCHOICESFORTHEFIRSTTWOPOSITIONSSIMILARLYWEFINDTHATTHEREARECHOICESFORTHETHIRDOBJECTDISTINCTFROMTHEFIRSTTWOANDATOTALOFPOSSIBLEWAYSTOCHOOSETHEFIRSTTHREEOBJECTSINGENERALIFDENOTESTHENUMBEROFWAYSTOCHOOSEOBJECTSOUTOFANDTOARRANGETHEMINAROWWESEETHATTHETOTALNUMBEROFPERMUTATIONSISTHEREFORETHEPROCESSOFCONSTRUCTINGALLPERMUTATIONSOFOBJECTSINANINDUCTIVEMANNERASSUMINGTHATALLPERMUTATIONSOFOBJECTSHAVEBEENCONSTRUCTEDISVERYIMPORTANTINOURAPPLICATIONSLETUSREWRITEUSINGTHENUMBERSINSTEADOFTHELETTERSTHEPERMUTATIONSARETHENCONSIDERHOWTOGETFROMTHISARRAYTOTHEPERMUTATIONSOFTHEREARETWOPRINCIPALWAYSTOGOFROMOBJECTSTOOBJECTSPERMSMETHODFOREACHPERMUTATIONOFFORMOTHERSBYINSERTINGTHENUMBERINALLPOSSIBLEPLACESOBTAININGFOREXAMPLEFROMTHEPERMUTATIONINWEGETITISCLEARTHATALLPERMUTATIONSOFOBJECTSAREOBTAINEDINTHISMANNERANDTHATNOPERMUTATIONISOBTAINEDMORETHANONCEPERMSMETHODFOREACHPERMUTATIONOFFORMOTHERSASFOLLOWSFIRSTCONSTRUCTTHEARRAYTHENRENAMETHEELEMENTSOFEACHPERMUTATIONUSINGTHENUMBERSPRESERVINGORDERFOREXAMPLEFROMTHEPERMUTATIONINWEGETANDRENAMINGWEGETANOTHERWAYTODESCRIBETHISPROCESSISTOTAKETHEPERMUTATIONANDANUMBERADDONETOEACHWHOSEVALUEISTHUSOBTAININGAPERMUTATIONOFTHEELEMENTSTHENISAPERMUTATIONOFAGAINITISCLEARTHATWEOBTAINEACHPERMUTATIONOFELEMENTSEXACTLYONCEBYTHISCONSTRUCTIONPUTTINGATTHELEFTINSTEADOFTHERIGHTORPUTTINGINANYOTHERFIXEDPOSITIONWOULDOBVIOUSLYWORKJUSTASWELLIFISTHENUMBEROFPERMUTATIONSOFOBJECTSBOTHOFTHESEMETHODSSHOWTHATTHISOFFERSUSTWOFURTHERPROOFSTHATASWEALREADYESTABLISHEDINEQPERMUTATIONSFACTORIALSTHEIMPORTANTQUANTITYISCALLEDFACTORIALANDITISWRITTENOURCONVENTIONFORVACUOUSPRODUCTSELLIPSESTHREEDOTSTHREEDOTSNOTATIONSECTIONGIVESUSTHEVALUEANDWITHTHISCONVENTIONTHEBASICIDENTITYISVALIDFORALLPOSITIVEINTEGERSFACTORIALSCOMEUPSUFFICIENTLYOFTENINCOMPUTERWORKTHATTHEREADERISADVISEDTOMEMORIZETHEVALUESOFTHEFIRSTFEWTHEFACTORIALSINCREASEVERYRAPIDLYFOREXAMPLEISANINTEGERWITHMORETHANDECIMALDIGITSITISHELPFULTOKEEPTHEVALUEINMINDONESHOULDREMEMBERTHATISABOUTMILLIONINASENSETHISNUMBERREPRESENTSANAPPROXIMATEDIVIDINGLINEBETWEENTHINGSTHATAREPRACTICALTOCOMPUTEANDTHINGSTHATARENOTIFANALGORITHMREQUIRESTHETESTINGOFMORETHANCASESITMAYCONSUMETOOMUCHCOMPUTERTIMETOBEPRACTICALONTHEOTHERHANDIFWEDECIDETOTESTCASESANDEACHCASEREQUIRESSAYONEMILLISECONDOFCOMPUTERTIMETHENTHEENTIRERUNWILLTAKEABOUTANHOURTHESECOMMENTSAREVERYVAGUEOFCOURSEBUTTHEYCANBEUSEFULTOGIVEANINTUITIVEIDEAOFWHATISCOMPUTATIONALLYFEASIBLEITISONLYNATURALTOWONDERWHATRELATIONBEARSTOOTHERQUANTITIESINMATHEMATICSISTHEREANYWAYTOTELLHOWLARGEISWITHOUTLABORIOUSLYCARRYINGOUTTHEMULTIPLICATIONSIMPLIEDINEQTHEANSWERWASFOUNDBYJAMESSTIRLINGINHISFAMOUSWORKMETHODUSDIFFERENTIALISSTIRLINGPAGEWEHAVETHESIGNTHATAPPEARSHEREDENOTESAPPROXIMATELYEQUALANDISTHEBASEOFNATURALLOGARITHMSINTRODUCEDINSECTIONWEWILLPROVESTIRLINGSAPPROXIMATIONINSECTIONEXERCISEGIVESASIMPLEPROOFOFALESSPRECISERESULTASANEXAMPLEOFTHEUSEOFTHISFORMULAWEMAYCOMPUTEINTHISCASETHEERRORISABOUTWEWILLSEELATERTHATTHERELATIVEERRORISAPPROXIMATELYINADDITIONTOTHEAPPROXIMATEVALUEGIVENBYEQWECANALSORATHEREASILYOBTAINTHEEXACTVALUEOFFACTOREDINTOPRIMESINFACTTHEPRIMENUMBERSPRIMEISADIVISOROFWITHTHEMULTIPLICITYFOREXAMPLEIFANDWEHAVESOISDIVISIBLEBYBUTNOTBYALTHOUGHFORMULAISWRITTENASANINFINITESUMITISREALLYFINITEFORANYPARTICULARVALUESOFANDBECAUSEALLOFTHETERMSAREEVENTUALLYZEROITFOLLOWSFROMEXERCISENESTEDFLOORTHATTHISFACTFACILITATESTHECALCULATIONINEQSINCEWECANJUSTDIVIDETHEVALUEOFTHEPREVIOUSTERMBYANDDISCARDTHEREMAINDEREQUATIONFOLLOWSFROMTHEFACTTHATISTHENUMBEROFINTEGERSAMONGTHATAREMULTIPLESOFIFWESTUDYTHEINTEGERSINTHEPRODUCTANYINTEGERTHATISDIVISIBLEBYBUTNOTBYISCOUNTEDEXACTLYTIMESONCEINONCEINONCEINTHISACCOUNTSFORALLOCCURRENCESOFASAFACTOROFSEEAMLEGENDREESSAISURLATHEORIEDESNOMBRESSECONDEDITIONPARISPAGEPRIMENUMBERSANOTHERNATURALQUESTIONARISESNOWTHATWEHAVEDEFINEDFORNONNEGATIVEINTEGERSPERHAPSTHEFACTORIALFUNCTIONISMEANINGFULALSOFORRATIONALVALUESOFANDEVENFORREALVALUESWHATISFOREXAMPLELETUSILLUSTRATETHISPOINTBYINTRODUCINGTHETERMIALFUNCTIONWHICHISANALOGOUSTOTHEFACTORIALFUNCTIONEXCEPTTHATWEAREADDINGINSTEADOFMULTIPLYINGWEALREADYKNOWTHESUMOFTHISARITHMETICPROGRESSIONFROMEQARITHPROGTHISSUGGESTSAGOODWAYTOGENERALIZETHETERMIALFUNCTIONTOARBITRARYBYUSINGINSTEADOFWEHAVESTIRLINGHIMSELFMADESEVERALATTEMPTSTOGENERALIZETONONINTEGERHEEXTENDEDTHEAPPROXIMATIONINTOANINFINITESUMBUTUNFORTUNATELYTHESUMDIDNOTCONVERGEFORANYVALUEOFHISMETHODGAVEEXTREMELYGOODAPPROXIMATIONSBUTITCOULDNTBEEXTENDEDTOGIVEANEXACTVALUEFORADISCUSSIONOFTHISSOMEWHATUNUSUALSITUATIONSEEKKNOPPTHEORYANDAPPLICATIONOFINFINITESERIESNDEDGLASGOWBLACKIESTIRLINGTRIEDAGAINBYNOTICINGTHATSTIRLINGTRYWEWILLPROVETHISFORMULAINTHENEXTSECTIONTHEAPPARENTLYINFINITESUMINEQISINREALITYFINITEFORANYNONNEGATIVEINTEGERHOWEVERITDOESNOTPROVIDETHEDESIREDGENERALIZATIONOFSINCETHEINFINITESUMDOESNOTEXISTEXCEPTWHENISANONNEGATIVEINTEGERSEEEXERCISESTILLUNDAUNTEDSTIRLINGFOUNDASEQUENCESUCHTHATHEWASUNABLETOPROVETHATTHISSUMDEFINEDFORALLFRACTIONALVALUESOFALTHOUGHHEWASABLETODEDUCETHEVALUEOFATABOUTTHESAMETIMELEONHARDEULERCONSIDEREDTHESAMEPROBLEMANDHEWASTHEFIRSTTOFINDTHEAPPROPRIATEGENERALIZATIONEULERCOMMUNICATEDTHISIDEAINALETTERTOCHRISTIANGOLDBACHONOCTOBERHISFORMULADEFINESFORANYVALUEOFEXCEPTNEGATIVEINTEGERSWHENTHEDENOMINATORBECOMESZEROINSUCHCASESISTAKENTOBEINFINITEEXERCISESANDEXPLAINWHYEQISAREASONABLEDEFINITIONNEARLYTWOCENTURIESLATERINCHERMITEPROVEDTHATSTIRLINGSIDEAACTUALLYDOESDEFINESUCCESSFULLYFORNONINTEGERSANDTHATINFACTEULERSANDSTIRLINGSGENERALIZATIONSAREIDENTICALSTIRLINGMANYNOTATIONSWEREUSEDFORFACTORIALSINTHEEARLYDAYSEULERACTUALLYWROTEGAUSSWROTEANDTHESYMBOLSHEIGHTNANDNHEIGHTWEREPOPULARINENGLANDANDITALYTHENOTATIONWHICHISUNIVERSALLYUSEDTODAYWHENISANINTEGERWASINTRODUCEDBYACOMPARATIVELYLITTLEKNOWNMATHEMATICIANCHRISTIANKRAMPINANALGEBRATEXTELEMENSDARITHMETIQUEUNIVERSELLECOLOGNEPAGEWHENISNOTANINTEGERHOWEVERTHENOTATIONISLESSCOMMONINSTEADWECUSTOMARILYEMPLOYANOTATIONDUETOAMLEGENDREGAMMAFUNCTIONTHISFUNCTIONISCALLEDTHEGAMMAFUNCTIONANDBYEQWEHAVETHEDEFINITIONAGRAPHOFISSHOWNINFIGFIGFIGFIGTHEFUNCTIONTHELOCALMINIMUMATHASTHECOORDINATESEQUATIONSANDDEFINEFACTORIALSANDTHEGAMMAFUNCTIONFORCOMPLEXVALUESASWELLASREALVALUESBUTWEGENERALLYUSETHELETTERINSTEADOFORWHENTHINKINGOFAVARIABLETHATHASBOTHREALANDIMAGINARYPARTSTHEFACTORIALANDGAMMAFUNCTIONSARERELATEDNOTONLYBYTHEFACTORIALRELATEDTOGAMMARULEBUTALSOBYWHICHHOLDSWHENEVERISNOTANINTEGERSEEEXERCISEFACTGAMMAALTHOUGHISINFINITEWHENISZEROORANEGATIVEINTEGERTHEFUNCTIONISWELLDEFINEDFORALLCOMPLEXSEEEXERCISEGAMMAINFPRODADVANCEDAPPLICATIONSOFTHEGAMMAFUNCTIONOFTENMAKEUSEOFANIMPORTANTCONTOURINTEGRALFORMULADUETOHERMANNHANKELTHEPATHOFCOMPLEXINTEGRATIONSTARTSATTHENCIRCLESTHEORIGININACOUNTERCLOCKWISEDIRECTIONANDRETURNSTOZEITSCHRIFTFURMATHUNDPHYSIKMANYFORMULASOFDISCRETEMATHEMATICSINVOLVEFACTORIALLIKEPRODUCTSKNOWNASFACTORIALPOWERSTHEQUANTITIESANDREADTOTHEFALLINGANDTOTHERISINGAREDEFINEDASFOLLOWSWHENISAPOSITIVEINTEGERFALLINGPOWERRISINGPOWERTHUSFOREXAMPLETHENUMBEROFISJUSTNOTICETHATWEHAVETHEGENERALFORMULASCANBEUSEDTODEFINEFACTORIALPOWERSFOROTHERVALUESOFTHENOTATIONSANDAREDUERESPECTIVELYTOACAPELLIGIORNALEDIMATDIBATTAGLINIANDLTOSCANOCOMMENTACCADEMIADELLESCIENZETHEINTERESTINGHISTORYOFFACTORIALSFROMTHETIMEOFSTIRLINGTOTHEPRESENTDAYISTRACEDINANARTICLEBYPJDAVISLEONHARDEULERSINTEGRALAHISTORICALPROFILEOFTHEGAMMAFUNCTIONAMMSEEALSOJDUTKAARCHIVEFORHISTORYOFEXACTSCIENCESEXERCISESHOWMANYWAYSARETHERETOSHUFFLEACARDDECKCARDSPLAYINGFORTHECURIOUSTHISNUMBERISINTHENOTATIONOFEQSHOWTHATANDEXPLAINWHYTHISHAPPENSAFTERTHEFIRSTOBJECTSHAVEBEENPLACEDTHEREISONLYONEPOSSIBILITYFORTHELASTOBJECTWHATPERMUTATIONSOFWOULDBECONSTRUCTEDFROMTHEPERMUTATIONUSINGMETHODSANDRESPECTIVELYFACTGIVENTHEFACTTHATDETERMINEEXACTLYHOWMANYDECIMALDIGITSAREPRESENTINTHENUMBERWHATISTHEMOSTSIGNIFICANTDIGITWHATISTHELEASTSIGNIFICANTDIGITTHEREAREDIGITSTHELEADINGDIGITISSINCETHELEASTSIGNIFICANTDIGITISZEROANDINFACTBYEQTHELOWORDERDIGITSAREALLZEROTHEEXACTVALUEOFWASCALCULATEDBYHSUHLERUSINGADESKCALCULATORANDMUCHPATIENCEOVERAPERIODOFSEVERALYEARSANDAPPEARSINSCRIPTAMATHEMATICAITBEGINSWITHTHELASTSTEPINTHECALCULATIONTOMULTIPLYTHETWONUMBERSANDWASPERFORMEDONUNIVACIBYJOHNWWRENCHJRINTHEEXTRAORDINARYTIMEOFMINUTESNOWADAYSOFCOURSEADESKTOPMACHINEEASILYPRODUCESINAFRACTIONOFASECONDANDWECANCONFIRMTHATUHLERSVALUEWASCORRECTESTIMATEUSINGTHEFOLLOWINGMOREEXACTVERSIONOFSTIRLINGSAPPROXIMATIONUSINGEQWRITEASAPRODUCTOFPRIMEFACTORSMSHOWTHATTHEGENERALIZEDTERMIALFUNCTIONINEQSATISFIESTHEIDENTITYFORALLREALNUMBERSSHOWTHATTHELIMITINEQDOESEQUALWHENISANONNEGATIVEINTEGERITISSINCEMDETERMINETHEVALUESOFANDGIVENTHATANDEXERCISEUSEDDOESTHEIDENTITYHOLDFORALLREALNUMBERSSEEEXERCISEYESEXCEPTWHENISZEROORANEGATIVEINTEGERFORWEHAVENURHOMLETTHEREPRESENTATIONOFINTHEBINARYSYSTEMBEWHERESHOWTHATISDIVISIBLEBYBUTNOTBYSIDEWAYSADDITIONFACTORIALFACTORSMALEGENDREGENERALIZINGTHERESULTOFTHEPREVIOUSEXERCISELETBEAPRIMENUMBERANDLETTHEREPRESENTATIONOFINTHEARYNUMBERSYSTEMBEEXPRESSTHENUMBEROFEQINASIMPLEFORMULAINVOLVINGANDSMEMWILSONSTHEOREMACTUALLYDUETOLEIBNIZIFISPRIMETHENPROVETHISBYPAIRINGOFFNUMBERSAMONGWHOSEPRODUCTMODULOISFOREACHDETERMINEASINEXERCISEINVMODPTHEREISEXACTLYONESUCHBYLAWMODCANCELANDTHEREFOREWECANPAIROFFTHENUMBERSINGROUPSOFTWOPROVIDEDTHATIFWEHAVEHENCEASINEXERCISESQRTMODPORSOSINCEANDARETHEONLYUNPAIREDELEMENTSMLSTICKELBERGERINTHENOTATIONOFEXERCISEWECANDETERMINEINTERMSOFTHEARYREPRESENTATIONFORANYPOSITIVEINTEGERTHUSGENERALIZINGWILSONSTHEOREMINFACTPROVETHATAMONGTHENUMBERSTHATARENOTMULTIPLESOFTHEREARECOMPLETESETSOFCONSECUTIVEELEMENTSEACHWITHAPRODUCTCONGRUENTTOBYWILSONSTHEOREMTHEREAREALSOLEFTOVERWHICHARECONGRUENTTOSOTHECONTRIBUTIONFROMTHEFACTORSTHATARENOTMULTIPLESOFISTHECONTRIBUTIONFROMTHEFACTORSTHATAREMULTIPLESOFISTHESAMEASTHECONTRIBUTIONINTHISARGUMENTCANTHEREFOREBEREPEATEDTOGETTHEDESIREDFORMULATHEPERMANENTOFASQUAREMATRIXISDEFINEDBYTHESAMEEXPANSIONASTHEDETERMINANTEXCEPTTHATEACHTERMOFTHEPERMANENTISGIVENAPLUSSIGNWHILETHEDETERMINANTALTERNATESBETWEENPLUSANDMINUSTHUSTHEPERMANENTOFISWHATISTHEPERMANENTOFTHEREARETERMSEACHTERMHASONEENTRYFROMEACHROWANDEACHCOLUMNSOITHASTHEVALUESHOWTHATTHEINFINITESUMINEQDOESNOTCONVERGEUNLESSISANONNEGATIVEINTEGERTHETERMSDONOTAPPROACHZEROSINCETHECOEFFICIENTSAPPROACHPROVETHATTHEINFINITEPRODUCTEQUALSIFANDIFNONEOFTHESISANEGATIVEINTEGEREXPRESSTHEGAMMAFUNCTIONSASLIMITSBYEQWALLISPRODMASSUMETHATTHISISWALLISSPRODUCTOBTAINEDBYJWALLISINANDWEWILLPROVEITINEXERCISEBETAHALFHALFUSINGTHEPREVIOUSEXERCISEPROVETHATWALLISSOWNHEURISTICPROOFCANBEFOUNDINDJSTRUIKSSOURCEBOOKINMATHEMATICSHARVARDUNIVERSITYPRESSGAMMAMDENOTETHEQUANTITYAPPEARINGAFTERINEQBYSHOWTHATCHANGEOFVARIABLEINTEGRATIONBYPARTSANDINDUCTIONGAMMAINTUSINGTHEFACTTHATIFANDTHEPREVIOUSEXERCISESHOWTHATIFFORCOMPLETENESSWEPROVETHESTATEDINEQUALITYSTARTWITHTHEEASILYVERIFIEDINEQUALITYSETANDRAISETOTHETHPOWERTOGETHENCEBYEXERCISEPRODINEQNOWTHEGIVENINTEGRALMINUSISASTHEFIRSTOFTHESEINTEGRALSAPPROACHESZEROSINCEFORLARGEANDTHESECONDISATMOSTARBOGASTLFAARBOGASTLETREPRESENTTHETHDERIVATIVEOFAFUNCTIONWITHRESPECTTOTHECHAINRULESTATESTHATIFWEAPPLYTHISTOSECONDDERIVATIVESWEFINDSHOWTHATTHEGENERALFORMULAISIFDENOTESTHEAPPROPRIATECOEFFICIENTWEFINDBYDIFFERENTIATIONTHEEQUATIONSANDAREPRESERVEDINTHISINDUCTIONRELATIONSHIPWECANEASILYFACTOROUTOFEACHTERMAPPEARINGONTHERIGHTHANDSIDEOFTHEEQUATIONFORANDWEARELEFTWITHINTHEPROOFITISCONVENIENTTOASSUMETHATTHEREAREINFINITELYMANYSALTHOUGHCLEARLYTHESOLUTIONJUSTGIVENMAKESUSEOFSTANDARDTECHNIQUESBUTITDOESNTGIVEASATISFACTORYEXPLANATIONOFWHYTHEFORMULAHASTHISFORMNORHOWITCOULDHAVEBEENDISCOVEREDINTHEFIRSTPLACELETUSEXAMINETHISQUESTIONUSINGACOMBINATORIALARGUMENTSUGGESTEDBYHSWALLBULLAMERMATHSOCWRITEFORCONVENIENCETHENANDBYTHESETWORULESANDTHERULEFORDERIVATIVEOFAPRODUCTWEFINDANALOGOUSLYWEMAYSETUPACORRESPONDINGTABLEAUOFSETPARTITIONSTHUSPARTITIONSOFSETFORMALLYIFISAPARTITIONOFTHESETDEFINETHISRULEISANEXACTPARALLELOFTHERULEIFWELETTHETERMCORRESPONDTOAPARTITIONWITHELEMENTSINSOTHEREISANATURALMAPPINGFROMONTOANDFURTHERMOREITISEASYTOSEETHATINCLUDESEACHPARTITIONOFTHESETEXACTLYONCESEEEXERCISESETPARTSFROMTHESEOBSERVATIONSWEFINDTHATIFWECOLLECTLIKETERMSINWEOBTAINASUMOFTERMSWHEREANDANDWHEREISTHENUMBEROFPARTITIONSOFINTOSUBSETSSUCHTHATTHEREARESUBSETSHAVINGELEMENTSITREMAINSTOCOUNTTHESEPARTITIONSCONSIDERANARRAYOFBOXESOFCAPACITYTHENUMBEROFWAYSTOPUTDIFFERENTELEMENTSINTOTHESEBOXESISTHEMULTINOMIALCOEFFICIENTTOGETWESHOULDDIVIDETHISBYSINCETHEBOXESINEACHGROUPOFAREINDISTINGUISHABLEFROMEACHOTHERTHEYMAYBEPERMUTEDINWAYSWITHOUTAFFECTINGTHESETPARTITIONARBOGASTSORIGINALPROOFDUCALCULDESDERIVATIONSSTRASBOURGWASBASEDONTHEFACTTHATISTHECOEFFICIENTOFINANDISTHECOEFFICIENTOFINHENCETHECOEFFICIENTOFINISHISFORMULAWASFORGOTTENFORMANYYEARSTHENREDISCOVEREDINDEPENDENTLYBYFFAADIBRUNOQUARTERLYJMATHWHOOBSERVEDTHATITCANALSOBEEXPRESSEDASADETERMINANTWHEREBOTHSIDESOFTHISEQUATIONAREDIFFERENTIALOPERATORSTOBEAPPLIEDTOFORAGENERALIZATIONOFARBOGASTSFORMULATOFUNCTIONSOFSEVERALVARIABLESANDALISTOFREFERENCESTOOTHERRELATEDWORKSEETHEPAPERBYIJGOODANNALSOFMATHEMATICALSTATISTICSTRYTOPUTYOURSELFINEULERSPLACELOOKINGFORAWAYTOGENERALIZETONONINTEGERVALUESOFSINCETIMESEQUALSITSEEMSNATURALTHATSHOULDBEAPPROXIMATELYSIMILARLYSHOULDBEINVENTAHYPOTHESISABOUTTHERATIOASAPPROACHESINFINITYISYOURHYPOTHESISCORRECTWHENISANINTEGERDOESITTELLANYTHINGABOUTTHEAPPROPRIATEVALUEOFWHENISNOTANINTEGERTHEHYPOTHESISTHATISVALIDFORINTEGERSFOREXAMPLEIFISPOSITIVETHEQUANTITYISWHICHCERTAINLYAPPROACHESUNITYIFWEALSOASSUMETHATTHEHYPOTHESISLEADSUSTOCONCLUDEIMMEDIATELYTHATWHICHISEQUIVALENTTOTHEDEFINITIONGIVENINTHETEXTFACTGAMMAPROVEGIVENTHATBYANDPOORMANSTIRLINGPROVETHEHANDYINEQUALITIESHINTFORALLREALHENCEWHENMDOFACTORIALPOWERSSATISFYALAWANALOGOUSTOTHEEXPONENTSLAWORDINARYLAWOFEXPONENTSTHESELAWSHOLDALSOWHENANDARENONINTEGERSBYFACTORIALSGAMMAFUNCTIONBINOMIALCOEFFICIENTSTHECOMBINATIONSOFOBJECTSTAKENATATIMECOMBINATIONSBINOMIALCOEFFICIENTSARETHEPOSSIBLECHOICESOFDIFFERENTELEMENTSFROMACOLLECTIONOFOBJECTSDISREGARDINGORDERTHECOMBINATIONSOFTHEFIVEOBJECTSTAKENTHREEATATIMEAREITISASIMPLEMATTERTOCOUNTTHETOTALNUMBEROFCOMBINATIONSOFOBJECTSEQUATIONOFTHEPREVIOUSSECTIONTOLDUSTHATTHEREAREWAYSTOCHOOSETHEFIRSTOBJECTSFORAPERMUTATIONANDEVERYCOMBINATIONAPPEARSEXACTLYTIMESINTHESEARRANGEMENTSSINCEEACHCOMBINATIONAPPEARSINALLITSPERMUTATIONSTHEREFORETHENUMBEROFCOMBINATIONSWHICHWEDENOTEBYISNCHOOSEKFOREXAMPLEWHICHISTHENUMBEROFCOMBINATIONSWEFOUNDINCOMBINATIONSTHEQUANTITYREADCHOOSEISCALLEDABINOMIALCOEFFICIENTTHESENUMBERSHAVEANEXTRAORDINARYNUMBEROFAPPLICATIONSTHEYAREPROBABLYTHEMOSTIMPORTANTQUANTITIESENTERINGINTOTHEANALYSISOFALGORITHMSSOTHEREADERISURGEDTOBECOMEFAMILIARWITHTHEMEQUATIONMAYBEUSEDTODEFINEEVENWHENISBINOMIALCOEFSDEFINEDNOTANINTEGERTOBEPRECISEWEDEFINETHESYMBOLFORALLREALNUMBERSANDALLINTEGERSASFOLLOWSINPARTICULARCASESWEHAVETABLETABGIVESVALUESOFTHEBINOMIALCOEFFICIENTSFORSMALLINTEGERVALUESOFANDTHEVALUESFORSHOULDBEMEMORIZEDTABTABLESPREADTABLEOFBINOMIALCOEFFICIENTSPASCALSTRIANGLEBINOMIALCOEFFICIENTSHAVEALONGANDINTERESTINGHISTORYTABLETABISCALLEDPASCALSTRIANGLEPASCALSTRIANGLEBECAUSEITAPPEAREDINBLAISEPASCALSTRAITEDUTRIANGLEARITHMETIQUEINTHISTREATISEWASSIGNIFICANTBECAUSEITWASONEOFTHEFIRSTWORKSONPROBABILITYTHEORYBUTPASCALDIDNOTINVENTTHEBINOMIALCOEFFICIENTSWHICHWEREWELLKNOWNINEUROPEATTHATTIMETABLETABALSOAPPEAREDINTHETREATISESZUYUANYUCHIENTHEPRECIOUSMIRROROFTHEFOURELEMENTSBYTHECHINESEMATHEMATICIANCHUSHIHCHIEHINWHERETHEYWERESAIDTOBEANOLDINVENTIONYANGHUIINCREDITEDTHEMTOCHIAHSIENCWHOSEWORKISNOWLOSTLONGBEFORETHATCININDIAVIRAHANKAHADEXPLAINEDTWOWAYSTOCOMPUTETHEMINHISVRTTAJATISAMUCCAYAMANUALOFPROSODYSLOKASWELLSEETHOSETWOWAYSBELOWINEQSANDVIRAHANKAWASINSPIREDBYANANCIENTHINDUCLASSICPINGALASCHANDAHSASTRATHEEARLIESTKNOWNDETAILEDDISCUSSIONOFBINOMIALCOEFFICIENTSISINHALAYUDHASTENTHCENTURYCOMMENTARYONPINGALASWORKSEEGCHAKRAVARTIBULLCALCUTTAMATHSOCANOTHERINDIANMATHEMATICIANMAHAVRAHADPREVIOUSLYEXPLAINEDRULEFORCOMPUTINGINCHAPTEROFHISGANITASARASANGRAHAWRITTENABOUTANDINBHASKARAREPEATEDMAHAVRASRULENEARTHEENDOFHISFAMOUSBOOKLLAVATFORSMALLVALUESOFBINOMIALCOEFFICIENTSWEREKNOWNMUCHEARLIERTHEYAPPEAREDINGREEKANDROMANWRITINGSWITHAGEOMETRICINTERPRETATIONSEEFIGFIGTHENOTATIONWASINTRODUCEDBYANDREASVONETTINGSHAUSENINOFHISPASCALSTRIANGLEFIGURATENUMBERSBINOMIALCOEFSTABLETABLESOFNUMERICALQUANTITIESBOOKDIECOMBINATORISCHEANALYSISVIENNAFIGFIGAGEOMETRICINTERPRETATIONOFTHEREADERHASPROBABLYNOTICEDSEVERALINTERESTINGPATTERNSINTABLETABBINOMIALCOEFFICIENTSSATISFYLITERALLYTHOUSANDSOFIDENTITIESANDFORCENTURIESTHEIRAMAZINGPROPERTIESHAVEBEENCONTINUALLYEXPLOREDINFACTTHEREARESOMANYRELATIONSPRESENTTHATWHENSOMEONEFINDSANEWIDENTITYNOTMANYPEOPLEGETEXCITEDABOUTITANYMOREEXCEPTTHEDISCOVERERINORDERTOMANIPULATETHEFORMULASTHATARISEINTHEANALYSISOFALGORITHMSAFACILITYFORHANDLINGBINOMIALCOEFFICIENTSISAMUSTANDSOANATTEMPTHASBEENMADEINTHISSECTIONTOEXPLAININASIMPLEWAYHOWTOMANEUVERWITHTHESENUMBERSMARKTWAINONCETRIEDTOREDUCEALLJOKESTOADOZENORSOPRIMITIVEKINDSFARMERSDAUGHTERMOTHERINLAWETCWEWILLTRYTOCONDENSETHETHOUSANDSOFIDENTITIESINTOASMALLSETOFBASICOPERATIONSWITHWHICHWECANSOLVENEARLYEVERYPROBLEMINVOLVINGBINOMIALCOEFFICIENTSTHATWEWILLMEETINMOSTAPPLICATIONSBOTHOFTHENUMBERSANDTHATAPPEARINWILLBEINTEGERSANDSOMEOFTHETECHNIQUESWEWILLDESCRIBEAREAPPLICABLEONLYINSUCHCASESTHEREFOREWEWILLBECAREFULTOLISTATTHERIGHTOFEACHNUMBEREDEQUATIONANYRESTRICTIONSONTHEVARIABLESTHATAPPEARFOREXAMPLEEQMENTIONSTHEREQUIREMENTTHATISANINTEGERTHEREISNORESTRICTIONONTHEIDENTITIESWITHFEWESTRESTRICTIONSARETHEMOSTUSEFULNOWLETUSSTUDYTHEBASICTECHNIQUESFOROPERATINGONBINOMIALCOEFFICIENTSAREPRESENTATIONBYFACTORIALSFROMEQWEHAVEIMMEDIATELYTHISALLOWSCOMBINATIONSOFFACTORIALSTOBEREPRESENTEDASBINOMIALCOEFFICIENTSANDCONVERSELYBSYMMETRYCONDITIONFROMEQSANDWEHAVETHISFORMULAHOLDSFORALLINTEGERSWHENISNEGATIVEORGREATERTHANTHEBINOMIALCOEFFICIENTISZEROPROVIDEDTHATISANONNEGATIVEINTEGERCMOVINGINANDOUTOFPARENTHESESFROMTHEDEFINITIONWEHAVETHISFORMULAISVERYUSEFULFORCOMBININGABINOMIALCOEFFICIENTWITHOTHERPARTSOFANEXPRESSIONBYELEMENTARYTRANSFORMATIONWEHAVETHERULESTHEFIRSTOFWHICHISVALIDFORALLINTEGERSANDTHESECONDWHENNODIVISIONBYZEROHASBEENPERFORMEDWEALSOHAVEASIMILARRELATIONLETUSILLUSTRATETHESETRANSFORMATIONSBYPROVINGEQUSINGEQSANDALTERNATELYNOTETHISDERIVATIONISVALIDONLYWHENISAPOSITIVEINTEGERBECAUSEOFTHECONSTRAINTSINVOLVEDINEQSANDYETEQCLAIMSTOBEVALIDFORARBITRARYTHISCANBEPROVEDINASIMPLEANDIMPORTANTMANNERWEHAVEVERIFIEDTHATFORINFINITELYMANYVALUESOFBOTHSIDESOFTHISEQUATIONAREPOLYNOMIALSINANONZEROPOLYNOMIALOFDEGREECANHAVEATMOSTDISTINCTZEROSSOBYSUBTRACTIONIFTWOPOLYNOMIALSOFDEGREEAGREEATORMOREDIFFERENTPOINTSTHEPOLYNOMIALSAREIDENTICALLYEQUALTHISPRINCIPLEMAYBEUSEDTOEXTENDTHEVALIDITYOFMANYIDENTITIESFROMINTEGERSTOALLREALNUMBERSDADDITIONFORMULATHEBASICRELATIONISCLEARLYVALIDINTABLETABEVERYVALUEISTHESUMOFTHETWOVALUESABOVEANDTOTHELEFTANDWEMAYEASILYVERIFYITINGENERALFROMEQALTERNATIVELYEQSANDTELLUSTHATEQUATIONISOFTENUSEFULINOBTAININGPROOFSBYINDUCTIONONWHENISANINTEGERESUMMATIONFORMULASBINOMIALCOEFSINSUMSREPEATEDAPPLICATIONOFGIVESORTHUSWEARELEDTOTWOIMPORTANTSUMMATIONFORMULASTHATCANBEEXPRESSEDASFOLLOWSBINOMBOTHGROWBINOMCONSTLOWEREQUATIONCANBEPROVEDEASILYBYINDUCTIONONBUTITISINTERESTINGTOSEEHOWITCANALSOBEDERIVEDFROMEQANDEQASSUMINGTHATIFEQISOBVIOUSEQUATIONOCCURSVERYFREQUENTLYINAPPLICATIONSINFACTWEHAVEALREADYDERIVEDSPECIALCASESOFITINPREVIOUSSECTIONSFOREXAMPLEWHENWEHAVEOUROLDFRIENDTHESUMOFANARITHMETICPROGRESSIONSUPPOSETHATWEWANTASIMPLEFORMULAFORTHESUMTHISCANBEOBTAINEDBYOBSERVINGTHATHENCEANDTHISANSWEROBTAINEDINTERMSOFBINOMIALCOEFFICIENTSCANBEPUTBACKINTOPOLYNOMIALNOTATIONIFDESIREDTHESUMCANBEOBTAINEDINASIMILARWAYANYPOLYNOMIALCANBEEXPRESSEDASFORSUITABLYCHOSENCOEFFICIENTSWEWILLRETURNTOTHISSUBJECTLATERFTHEBINOMIALTHEOREMBINOMIALTHEOREMOFCOURSETHEBINOMIALTHEOREMISONEOFOURPRINCIPALTOOLSFOREXAMPLEATLASTWEAREABLETOJUSTIFYTHENAMEBINOMIALCOEFFICIENTFORTHENUMBERSITISIMPORTANTTONOTICETHATWEHAVEWRITTENINEQRATHERTHANASMIGHTHAVEBEENEXPECTEDIFNORESTRICTIONISPLACEDONWEARESUMMINGOVERALLINTEGERSBUTTHETWONOTATIONSAREEXACTLYEQUIVALENTINTHISCASESINCEWECONSIDERTOBESTRONGLYZEROWHENORSTRONGENOUGHTOCANCELNEGATIVEPOWERSOFTHESIMPLERFORMISTOBEPREFERREDSINCEALLMANIPULATIONSWITHSUMSARESIMPLERWHENTHECONDITIONSOFSUMMATIONARESIMPLERWESAVEAGOODDEALOFTEDIOUSEFFORTIFWEDONOTNEEDTOKEEPTRACKOFTHELOWERANDORUPPERLIMITSOFSUMMATIONSOTHELIMITSSHOULDBELEFTUNSPECIFIEDWHENEVERPOSSIBLEOURNOTATIONHASANOTHERADVANTAGEALSOIFISNOTANONNEGATIVEINTEGEREQBECOMESANINFINITESUMANDTHEBINOMIALTHEOREMOFCALCULUSSTATESTHATEQISVALIDFORALLIFITSHOULDBENOTEDTHATFORMULAGIVESWEWILLUSETHISCONVENTIONCONSISTENTLYTHESPECIALCASEINEQISSOIMPORTANTWESTATEITSPECIALLYTHEDISCOVERYOFTHEBINOMIALTHEOREMWASANNOUNCEDBYISAACNEWTONINLETTERSTOOLDENBURGONJUNEANDOCTOBERSEEDSTRUIKSOURCEBOOKINMATHEMATICSHARVARDUNIVPRESSBUTHEAPPARENTLYHADNOREALPROOFOFTHEFORMULAATTHATTIMETHENECESSITYFORRIGOROUSPROOFWASNOTFULLYREALIZEDTHEFIRSTATTEMPTEDPROOFWASGIVENBYLEULERINALTHOUGHHISEFFORTWASINCOMPLETEFINALLYCFGAUSSGAVETHEFIRSTACTUALPROOFININFACTGAUSSSWORKREPRESENTEDTHEFIRSTTIMEANYTHINGABOUTINFINITESUMSWASPROVEDSATISFACTORILYEARLYINTHENINETEENTHCENTURYNHABELFOUNDASURPRISINGGENERALIZATIONOFTHEBINOMIALFORMULATHISISANIDENTITYINTHREEVARIABLESANDSEEEXERCISESTHROUGHABELPUBLISHEDANDPROVEDTHISFORMULAINVOLUMEOFALCRELLESSOONTOBEFAMOUSJOURNALFURDIEREINEUNDANGEWANDTEMATHEMATIKPAGESITISINTERESTINGTONOTETHATABELCONTRIBUTEDMANYOTHERPAPERSTOTHESAMEVOLUMEINCLUDINGHISFAMOUSMEMOIRSONTHEUNSOLVABILITYOFALGEBRAICEQUATIONSOFDEGREEORMOREBYRADICALSANDONTHEBINOMIALTHEOREMSEEHWGOULDAMMFORANUMBEROFREFERENCESTOEQBINOMIALTHEOREMGNEGATINGTHEUPPERINDEXTHEBASICIDENTITYFOLLOWSIMMEDIATELYFROMTHEDEFINITIONWHENEACHTERMOFTHENUMERATORISNEGATEDTHISISOFTENAUSEFULTRANSFORMATIONONTHEUPPERINDEXONEEASYCONSEQUENCEOFEQISTHESUMMATIONFORMULATHISIDENTITYCOULDBEPROVEDBYINDUCTIONUSINGEQBUTWECANUSEEQSANDDIRECTLYANOTHERIMPORTANTAPPLICATIONOFEQCANBEMADEWHENISANINTEGERSETANDINEQANDUSEWEHAVEMOVEDFROMTHEUPPERPOSITIONTOTHELOWERHSIMPLIFYINGPRODUCTSWHENPRODUCTSOFBINOMIALCOEFFICIENTSAPPEARTHEYCANUSUALLYBEREEXPRESSEDINSEVERALDIFFERENTWAYSBYEXPANDINGINTOFACTORIALSANDOUTAGAINUSINGEQFOREXAMPLEITSUFFICESTOPROVEEQWHENISANINTEGERSEETHEREMARKSAFTEREQANDWHENTHENEQUATIONISVERYUSEFULWHENANINDEXNAMELYAPPEARSINBOTHTHEUPPERANDTHELOWERPOSITIONANDWEWISHTOHAVEITAPPEARINONEPLACERATHERTHANTWONOTICETHATEQISTHESPECIALCASEOFEQWHENISUMSOFPRODUCTSTOCOMPLETEOURSETOFBINOMIALCOEFFICIENTMANIPULATIONSWEPRESENTTHEFOLLOWINGVERYGENERALIDENTITIESWHICHAREPROVEDINTHEEXERCISESATTHEENDOFTHISSECTIONTHESEFORMULASSHOWHOWTOSUMOVERAPRODUCTOFTWOBINOMIALCOEFFICIENTSCONSIDERINGVARIOUSPLACESWHERETHERUNNINGVARIABLEMIGHTAPPEARVANDERMONDECONBINOMUPPNEGLOWBINOMUPPCONVROTHESUMOFTHESEIDENTITIESEQISBYFARTHEMOSTIMPORTANTANDITSHOULDBEMEMORIZEDONEWAYTOREMEMBERITISTOINTERPRETTHERIGHTHANDSIDEASTHENUMBEROFWAYSTOSELECTPEOPLEFROMAMONGMENANDWOMENEACHTERMONTHELEFTISTHENUMBEROFWAYSTOCHOOSEOFTHEMENANDOFTHEWOMENEQUATIONISCOMMONLYCALLEDVANDERMONDESCONVOLUTIONSINCEAVANDERMONDEPUBLISHEDITINMEMEMACADROYSCIENCESPARISPARTHOWEVERITHADAPPEAREDALREADYINCHUSHIHCHIEHSTREATISEMENTIONEDEARLIERSEEJNEEDHAMSCIENCEANDCIVILISATIONINCHINACAMBRIDGEUNIVERSITYPRESSIFINEQWEAVOIDTHEZERODENOMINATORBYCANCELINGWITHAFACTORINTHENUMERATORTHEREFOREEQISAPOLYNOMIALIDENTITYINTHEVARIABLESOBVIOUSLYEQISASPECIALCASEOFEQWITHWESHOULDPOINTOUTANONOBVIOUSUSEOFEQSANDITISOFTENHELPFULTOREPLACETHESIMPLEBINOMIALCOEFFICIENTONTHERIGHTHANDSIDEBYTHEMORECOMPLICATEDEXPRESSIONONTHELEFTINTERCHANGETHEORDEROFSUMMATIONANDSIMPLIFYWEMAYREGARDTHELEFTHANDSIDESASEXPANSIONSOFFORMULAISUSEDFORNEGATIVEFORMULAFORPOSITIVETHISCOMPLETESOURSTUDYOFBINOMIALCOEFFICIENTOLOGYTHEREADERISADVISEDTOLEARNESPECIALLYEQSANDFRAMETHEMWITHYOURFAVORITEHIGHLIGHTERPENWITHALLTHESEMETHODSATOURDISPOSALWESHOULDBEABLETOSOLVEALMOSTANYPROBLEMTHATCOMESALONGINATLEASTTHREEDIFFERENTWAYSTHEFOLLOWINGEXAMPLESILLUSTRATETHETECHNIQUESEXAMPLEWHENISAPOSITIVEINTEGERWHATISTHEVALUEOFSOLUTIONFORMULAISUSEFULFORDISPOSINGOFTHEOUTSIDENOWFORMULAAPPLIESWITHANDTHEANSWERISTHEREFORESUMWITHKSEXAMPLEWHATISTHEVALUEOFIFISANONNEGATIVEINTEGERSOLUTIONTHISPROBLEMISTOUGHERTHESUMMATIONINDEXAPPEARSINSIXPLACESFIRSTWEAPPLYEQANDWEOBTAINWECANNOWBREATHEMOREEASILYSINCESEVERALOFTHEMENACINGCHARACTERISTICSOFTHEORIGINALFORMULAHAVEDISAPPEAREDTHENEXTSTEPSHOULDBEOBVIOUSWEAPPLYEQINAMANNERSIMILARTOTHETECHNIQUEUSEDINEXAMPLEGOODANOTHERHASVANISHEDATTHISPOINTTHEREARETWOEQUALLYPROMISINGLINESOFATTACKWECANREPLACETHEBYBECAUSEANDEVALUATETHESUMWITHEQTHEBINOMIALCOEFFICIENTEQUALSZEROEXCEPTWHENINWHICHCASEITEQUALSONESOWECANCONVENIENTLYSTATETHEANSWERTOOURPROBLEMASUSINGIVERSONSCONVENTIONEQIVERSONBRACKETORASUSINGTHEKRONECKERDELTAEQKRONDELTAANOTHERWAYTOPROCEEDFROMEQISTOUSEEQOBTAININGWECANNOWAPPLYEQWHICHYIELDSTHESUMONCEAGAINWEHAVEDERIVEDTHEANSWERHARDERSUMWITHKSEXAMPLEWHATISTHEVALUEOFFORPOSITIVEINTEGERSANDSOLUTIONIFWEREZEROWEWOULDHAVETHESAMEFORMULATOWORKWITHTHATWEHADINEXAMPLEHOWEVERTHEPRESENCEOFMEANSTHATWECANNOTEVENBEGINTOUSETHEMETHODOFTHEPREVIOUSSOLUTIONSINCETHEFIRSTSTEPTHEREWASTOUSEEQWHICHNOLONGERAPPLIESINTHISSITUATIONITPAYSTOCOMPLICATETHINGSEVENMOREBYREPLACINGTHEUNWANTEDBYASUMOFTERMSOFTHEFORMSINCEOURPROBLEMWILLTHENBECOMEASUMOFPROBLEMSTHATWEKNOWHOWTOSOLVEACCORDINGLYWEUSEEQWITHALLOFTHECONDITIONSREQUIREDFORARESATISFIEDBECAUSEANDAREPOSITIVETHESUMTOBESOLVEDNOWTAKESTHEFORMANDTHERESTISEASYBYINTERCHANGINGTHEORDEROFSUMMATIONEQUATIONTELLSUSHOWTOSUMONANDALLTHECOMPLICATIONSMELTAWAYEVERYTHINGREDUCESTOJUSTSOOURFINALANSWERISTHESOLUTIONTOTHISPROBLEMWASFAIRLYCOMPLICATEDBUTNOTREALLYMYSTERIOUSTHEREWASAGOODREASONFOREACHSTEPTHEDERIVATIONSHOULDBESTUDIEDCLOSELYBECAUSETHEUSEOFILLUSTRATESSOMEDELICATEMANEUVERINGWITHTHECONDITIONSINOUREQUATIONSTHEREISACTUALLYABETTERWAYTOATTACKTHISPROBLEMHOWEVERTHEREADERISINVITEDTOFIGUREOUTHOWTOTRANSFORMTHEGIVENSUMSOTHATEQAPPLIESSEEEXERCISEEXAMPLEPROVETHATWHEREISTHETHDEGREEPOLYNOMIALINTHATSATISFIESSOLUTIONWEMAYASSUMETHATFORSINCEBOTHSIDESOFAREPOLYNOMIALSINOURPROBLEMISTOEVALUATEWHICHIFANYTHINGLOOKSMUCHWORSETHANOURPREVIOUSHORRIBLEPROBLEMSNOTICETHESTRONGSIMILARITYTOEQHOWEVERANDALSONOTETHECASEWEARETEMPTEDTOCHANGEEXCEPTTHATTHELATTERTENDSTOLOSETHEANALOGYWITHEQANDITFAILSWHENPARTIALFRACTIONSABETTERWAYTOPROCEEDISTOUSETHETECHNIQUEOFPARTIALFRACTIONSWHEREBYAFRACTIONWITHACOMPLICATEDDENOMINATORCANOFTENBEREPLACEDBYASUMOFFRACTIONSWITHSIMPLERDENOMINATORSINDEEDWEHAVEASSUMINGASWEMAYTHATPUTTINGTHISINTOOURSUMWEGETANDEQEVALUATESBOTHOFTHESEFORMULASPARTIALFRACTIONSIFWECHANGETOINTHESECONDTHEDESIREDRESULTFOLLOWSIMMEDIATELYIDENTITIESANDAREDUETOHAROTHEFORMULAEDESERIERUMREVERSIONELEIPZIGSPECIALCASESOFTHESEFORMULASARESTILLBEINGDISCOVEREDFREQUENTLYFORTHEINTERESTINGHISTORYOFTHESEIDENTITIESANDSOMEGENERALIZATIONSSEEHWGOULDANDJKAUCKYJOURNALOFCOMBINATORIALTHEORYSTIRLINGCOEFSEXAMPLEDETERMINETHEVALUESOFSUCHTHATFORALLNONNEGATIVEINTEGERSSOLUTIONEQUATIONSTIRLINGTRYWHICHWASPRESENTEDWITHOUTPROOFINTHEPREVIOUSSECTIONGIVESTHEANSWERLETUSPRETENDTHATWEDONTKNOWITYETITISCLEARTHATTHEPROBLEMDOESHAVEASOLUTIONSINCEWECANSETANDDETERMINETHENSETANDDETERMINEETCFIRSTWEWOULDLIKETOWRITEEQINTERMSOFBINOMIALCOEFFICIENTSTHEPROBLEMOFSOLVINGIMPLICITEQUATIONSLIKETHISFORISCALLEDTHEINVERSIONPROBLEMANDTHETECHNIQUEWESHALLUSEAPPLIESTOSIMILARINVERSIONPROBLEMPROBLEMSASWELLTHEIDEAISBASEDONTHESPECIALCASEOFEQTHEIMPORTANCEOFTHISFORMULAISTHATWHENTHESUMISZEROTHISENABLESUSTOSOLVEOURPROBLEMSINCEALOTOFTERMSCANCELOUTASTHEYDIDINEXAMPLENOTICEHOWWEWEREABLETOGETANEQUATIONINWHICHONLYONEVALUEAPPEARSBYADDINGTOGETHERSUITABLEMULTIPLESOFEQFORWEHAVENOWINVERSIONPROBLEMTHISCOMPLETESTHESOLUTIONTOEXAMPLELETUSNOWTAKEACLOSERLOOKATTHEIMPLICATIONSOFEQWHENANDARENONNEGATIVEINTEGERSWEHAVESINCETHEOTHERTERMSVANISHAFTERSUMMATIONBYPROPERLYCHOOSINGTHECOEFFICIENTSWECANREPRESENTANYPOLYNOMIALINASASUMOFBINOMIALCOEFFICIENTSWITHUPPERINDEXWEFINDTHEREFORETHATWHEREREPRESENTSANYPOLYNOMIALWHATEVEROFDEGREEORDIFFERENCESOFPOLYNOMIALSLESSTHISFORMULAWILLBEOFNOGREATSURPRISETOSTUDENTSOFNUMERICALANALYSISSINCEISTHETHDIFFERENCEOFTHEFUNCTIONUSINGEQWECANIMMEDIATELYOBTAINMANYOTHERRELATIONSTHATAPPEARCOMPLICATEDATFIRSTANDTHATAREOFTENGIVENVERYLENGTHYPROOFSSUCHASITISCUSTOMARYINTEXTBOOKSSUCHASTHISTOGIVEALOTOFIMPRESSIVEEXAMPLESOFNEATTRICKSETCBUTNEVERTOMENTIONSIMPLELOOKINGPROBLEMSWHERETHETECHNIQUESFAILTHEEXAMPLESABOVEMAYHAVEGIVENTHEIMPRESSIONTHATALLTHINGSAREPOSSIBLEWITHBINOMIALCOEFFICIENTSITSHOULDBEMENTIONEDHOWEVERTHATINSPITEOFEQSANDTHERESEEMSTOBENOSIMPLEFORMULAFORTHEANALOGOUSSUMWHENFORTHEANSWERISSIMPLEWHATISITSEEEXERCISEONTHEOTHERHANDTHISSUMDOESHAVEACLOSEDFORMASAFUNCTIONOFWHENISANEXPLICITNEGATIVEINTEGERFOREXAMPLETHEREISALSOASIMPLEFORMULAFORASUMTHATLOOKSASTHOUGHITSHOULDBEHARDERNOTEASIERHOWCANWEDECIDEWHENTOSTOPWORKINGONASUMTHATRESISTSSIMPLIFICATIONFORTUNATELYTHEREISNOWAGOODWAYTOANSWERTHATQUESTIONINMANYIMPORTANTCASESANALGORITHMDUETORWGOSPERANDDZEILBERGERWILLDISCOVERCLOSEDFORMSINBINOMIALCOEFFICIENTSWHENTHEYEXISTANDWILLPROVETHEIMPOSSIBILITYWHENTHEYDONOTEXISTTHEGOSPERZEILBERGERALGORITHMISBEYONDTHESCOPEOFTHISBOOKBUTITISEXPLAINEDINCMATHSEEALSOTHEBOOKABBYPETKOVSEKWILFANDZEILBERGERWELLESLEYMASSAKPETERSTHEPRINCIPALTOOLFORDEALINGWITHSUMSOFBINOMIALCOEFFICIENTSINASYSTEMATICMECHANICALWAYISTOEXPLOITTHEPROPERTIESOFHYPERGEOMETRICFUNCTIONSWHICHAREINFINITESERIESDEFINEDASFOLLOWSINTERMSOFRISINGFACTORIALPOWERSANINTRODUCTIONTOTHESEIMPORTANTFUNCTIONSCANBEFOUNDINSECTIONSANDOFCMATHSEEALSOJDUTKAARCHIVEFORHISTORYOFEXACTSCIENCESFORHISTORICALREFERENCESTHECONCEPTOFBINOMIALCOEFFICIENTSHASSEVERALSIGNIFICANTGENERALIZATIONSBINOMIALCOEFSGENERALIZEDWHICHWESHOULDDISCUSSBRIEFLYFIRSTWECANCONSIDERARBITRARYREALVALUESOFTHELOWERINDEXINSEEEXERCISESTHROUGHWEALSOHAVETHEGENERALIZATIONWHICHBECOMESTHEORDINARYBINOMIALCOEFFICIENTWHENAPPROACHESTHELIMITINGVALUETHISCANBESEENBYDIVIDINGEACHFACTORINNUMERATORANDDENOMINATORBYTHEBASICPROPERTIESOFSUCHNOMIALCOEFFICIENTSAREDISCUSSEDINEXERCISEHOWEVERFOROURPURPOSESTHEMOSTIMPORTANTGENERALIZATIONISTHEMULTINOMIALCOEFFICIENTTHECHIEFPROPERTYOFMULTINOMIALCOEFFICIENTSISTHEGENERALIZATIONOFMULTINOMIALTHEOREMEQITISIMPORTANTTOOBSERVETHATANYMULTINOMIALCOEFFICIENTCANBEEXPRESSEDINTERMSOFBINOMIALCOEFFICIENTSSOWEMAYAPPLYTHETECHNIQUESTHATWEALREADYKNOWFORMANIPULATINGBINOMIALCOEFFICIENTSBOTHSIDESOFEQARETHETRINOMIALCOEFFICIENTWECONCLUDETHISSECTIONWITHABRIEFANALYSISOFTHETRANSFORMATIONFROMAPOLYNOMIALEXPRESSEDINPOWERSOFTOAPOLYNOMIALEXPRESSEDINBINOMIALCOEFFICIENTSTHECOEFFICIENTSINVOLVEDINTHISTRANSFORMATIONARECALLEDSTIRLINGNUMBERSANDTHESENUMBERSARISEINTHESTUDYOFNUMEROUSALGORITHMSSTIRLINGNUMBERSSTIRLINGNUMBERSTABLETABLESOFNUMBERSSTIRLINGNUMBERSASYMPTOTICMOSERWYMANBARTONDAVIDMERRINGTONTEMMEWILFHWANGTABTABLESPREADSTIRLINGNUMBERSOFBOTHKINDSTOFORAPPROXIMATIONSVALIDWHENISLARGESEELMOSERANDMWYMANJLONDONMATHSOCDUKEMATHJDEBARTONFNDAVIDANDMMERRINGTONBIOMETRIKANMTEMMESTUDIESINAPPLIEDMATHHSWILFJCOMBINATORIALTHEORYAHKHWANGJCOMBINATORIALTHEORYASTIRLINGNUMBERSCOMEINTWOFLAVORSWEDENOTESTIRLINGNUMBERSOFTHEFIRSTKINDBYANDTHOSEOFTHESECONDKINDBYTHESENOTATIONSDUETOJOVANKARAMATAMATHEMATICACLUJHAVECOMPELLINGADVANTAGESOVERTHEMANYOTHERSYMBOLISMSTHATHAVEBEENTRIEDSEEDEKNUTHAMMWECANREMEMBERTHECURLYBRACESINBECAUSECURLYBRACESDENOTESTIRLINGNUMBERSCOMBINATORIALLYSETSANDISTHENUMBEROFWAYSTOPARTITIONASETOFELEMENTSINTODISJOINTSUBSETSEXERCISETHEOTHERSTIRLINGNUMBERSALSOHAVEACOMBINATORIALINTERPRETATIONWHICHWEWILLSTUDYINSECTIONISTHENUMBEROFPERMUTATIONSONLETTERSHAVINGCYCLESTABLETABDISPLAYSSTIRLINGSTRIANGLESWHICHAREINSOMEWAYSANALOGOUSTOPASCALSTRIANGLESTIRLINGNUMBERSOFTHEFIRSTKINDAREUSEDTOCONVERTFROMFACTORIALPOWERSFALLINGPOWERSPOLYNOMIALSTOORDINARYPOWERSSTIRLSUMFOREXAMPLEFROMTABLETABSTIRLINGNUMBERSOFTHESECONDKINDAREUSEDTOCONVERTFROMORDINARYPOWERSTOFACTORIALPOWERSTHISFORMULAWASINFACTSTIRLINGSORIGINALREASONFORSTUDYINGTHENUMBERSINHISMETHODUSDIFFERENTIALISLONDONFROMTABLETABWEHAVEFOREXAMPLEWESHALLNOWLISTTHEMOSTIMPORTANTIDENTITIESINVOLVINGSTIRLINGNUMBERSINTHESEEQUATIONSTHEVARIABLESANDALWAYSDENOTENONNEGATIVEINTEGERSADDITIONFORMULASINVERSIONFORMULASCOMPAREWITHEQSPECIALVALUESEXPANSIONFORMULASSOMEOTHERFUNDAMENTALSTIRLINGNUMBERIDENTITIESAPPEARINEXERCISESEXANDHARMASSTIRLANDINEQSSTIRLEGFSTIRLEGFSTIRLGFANDSTIRLGFOFSECTIONEQISJUSTONEINSTANCEOFAGENERALPHENOMENONBOTHKINDSOFSTIRLINGNUMBERSANDAREPOLYNOMIALSINOFDEGREEWHENEVERISANONNEGATIVEINTEGERFOREXAMPLETHEFORMULASFORANDARETHEREFOREITMAKESSENSETODEFINETHENUMBERSANDFORARBITRARYREALORCOMPLEXVALUESOFWITHTHISGENERALIZATIONTHETWOKINDSOFSTIRLINGNUMBERSAREUNITEDBYANINTERESTINGDUALITYLAWWHICHWASIMPLICITINSTIRLINGSORIGINALDISCUSSIONFALLINGPOWERSMOREOVEREQREMAINSTRUEINGENERALINTHESENSETHATTHEINFINITESERIESCONVERGESWHENEVERTHEREALPARTOFISPOSITIVETHECOMPANIONFORMULAEQGENERALIZESINASIMILARWAYTOANASYMPTOTICBUTNOTCONVERGENTSERIESSEEEXERCISESECTIONSANDOFCMATHCONTAINADDITIONALINFORMATIONABOUTSTIRLINGNUMBERSANDHOWTOMANIPULATETHEMINFORMULASSEEALSOEXERCISEDUALTRIANGLESFORAGENERALFAMILYOFTRIANGLESTHATINCLUDESSTIRLINGNUMBERSASAVERYSPECIALCASESTIRLINGNUMBERSEXERCISESHOWMANYCOMBINATIONSOFTHINGSTAKENATATIMEAREPOSSIBLESINCEEACHCOMBINATIONLEAVESOUTONEITEMWHATISTHERESEXACTLYONEWAYTOCHOOSENOTHINGFROMTHEEMPTYSETHOWMANYBRIDGEHANDSCARDSOUTOFACARDDECKAREPOSSIBLECARDSPLAYINGTHEACTUALNUMBERISGIVETHEANSWERTOEXERCISEASAPRODUCTOFPRIMENUMBERSPRIMESUSEPASCALSTRIANGLETOEXPLAINTHEFACTTHATPASCALSTRIANGLETABLETABCANBEEXTENDEDINALLDIRECTIONSBYUSEOFTHEADDITIONFORMULAEQFINDTHETHREEROWSTHATGOONTOPOFTABLETABIEFORANDIFISAFIXEDPOSITIVEINTEGERWHATVALUEOFMAKESAMAXIMUMORALTERNATIVELYITISCLEARFROMTHATFORSMALLERVALUESTHEBINOMIALCOEFFICIENTISSTRICTLYINCREASINGANDAFTERWARDSITDECREASESTOZEROWHATPROPERTYOFPASCALSTRIANGLEISREFLECTEDINTHESYMMETRYCONDITIONEQTHENONZEROENTRIESINEACHROWARETHESAMEFROMLEFTTORIGHTASFROMRIGHTTOLEFTWHATISTHEVALUEOFCONSIDERALLINTEGERSONEIFISPOSITIVEORZEROZEROIFISNEGATIVEBINOMMODPMIFISPRIMEANDISANINTEGERSHOWTHATABFORCFORDFOREELUCASFIFTHEREPRESENTATIONSOFANDINTHEARYNUMBERSYSTEMAREABANDFFOLLOWIMMEDIATELYFROMECANDDFOLLOWFROMABANDEQTHUSITSUFFICESTOPROVEECONSIDERASAFRACTIONGIVENBYEQWITHFACTORSINNUMERATORANDDENOMINATORTHEFIRSTMODFACTORSHAVENOSINTHEDENOMINATORANDINTHENUMERATORANDDENOMINATORTHOSEFACTORSARECLEARLYCONGRUENTTOTHECORRESPONDINGFACTORSOFWHICHDIFFERBYMULTIPLESOFWHENDEALINGWITHNONMULTIPLESOFWEMAYWORKMODULOINBOTHNUMERATORANDDENOMINATORSINCEIFANDANDAREINTEGERSTHENTHEREREMAINFACTORSWHICHFALLINTOGROUPSOFCONSECUTIVEVALUESEACHEACHGROUPCONTAINSEXACTLYONEMULTIPLEOFTHEOTHERFACTORSINAGROUPARECONGRUENTMODULOTOSOTHEYCANCELINNUMERATORANDDENOMINATORITREMAINSTOINVESTIGATETHEMULTIPLESOFINNUMERATORANDDENOMINATORWEDIVIDEEACHOFTHEMBYANDARELEFTWITHTHEBINOMIALCOEFFICIENTIFTHISEQUALSASDESIREDANDIFTHEOTHERFACTORISZEROSOTHEFORMULAHOLDSINGENERALAMERICANJMATHSEEALSOLEDICKSONQUARTJMATHNJFINEAMMKUMMERFACTMEKUMMERLETBEPRIMESHOWTHATIFDIVIDESBUTDOESNOTTHENISEQUALTOTHENUMBEROFCARRIESTHATOCCURWHENISADDEDTHEARYNUMBERSYSTEMHINTSEEEXERCISEFACTORIALFACTORSPRIMESIFANDTHEVALUEOFACCORDINGTOEXERCISEFACTORIALFACTORSANDEQISACARRYDECREASESBYANDINCREASESBYGIVINGANETCHANGEOFINTHISFORMULASIMILARRESULTSHOLDFORNOMIALANDFIBONOMIALCOEFFICIENTSSEEKNUTHANDWILFCRELLEMARETHEREANYPOSITIVEINTEGERSFORWHICHALLTHENONZEROENTRIESINTHETHROWOFPASCALSTRIANGLEAREODDIFSOFINDALLSUCHBYEITHEROFTHETWOPREVIOUSEXERCISESMUSTBEONELESSTHANAPOWEROFMOREGENERALLYISNEVERDIVISIBLEBYTHEPRIMEIFANDONLYIFMPROVETHESUMMATIONFORMULAEQMEVALUATEMPROVETHEBINOMIALFORMULAEQINDUCTIONANDMGIVENTHATANDAREPOSITIVEINTEGERSPROVETHESYMMETRICALIDENTITYMPROVETHECHUVANDERMONDEFORMULAFROMEQUSINGTHEIDEATHATWEMAYASSUMETHATANDAREPOSITIVEINTEGERSALSOFORALLSOTHECOEFFICIENTSOFMUSTBEIDENTICALMPROVEEQUSINGEQSANDMPROVEEQBYINDUCTIONMPROVEEQBYUSINGEQSANDTHENSHOWTHATANOTHERUSEOFEQYIELDSEQMBOTHSIDESOFEQAREPOLYNOMIALSINWHYISNTTHATEQUATIONANIDENTITYINTHELEFTHANDSIDEISAPOLYNOMIALOFDEGREETHERIGHTHANDSIDEISAPOLYNOMIALOFDEGREETHEPOLYNOMIALSAGREEATPOINTSBUTTHATISNTENOUGHTOPROVETHEMEQUALINFACTTHECORRECTFORMULAINGENERALISWHENANDARENONNEGATIVEINTEGERSMPROVEEQFORTHESPECIALCASEASSUMETHATTHETHTERMISTIMESANDTHETWOPRODUCTSGIVEAPOLYNOMIALOFDEGREEINAFTERDIVISIONBYSOTHESUMOVERISZEROBYEQMASSUMINGTHATEQHOLDSFORANDPROVEITFORMEXPLAINWHYTHERESULTSOFTHEPREVIOUSTWOEXERCISESCOMBINETOGIVEAPROOFOFEQTHEPROOFISBYINDUCTIONONIFTHEIDENTITYISOBVIOUSIFWEPROVEITHOLDSFORBYINDUCTIONONTHEINTEGERUSINGTHEPREVIOUSTWOEXERCISESANDTHEVALIDITYFORTHISESTABLISHESTHEIDENTITYFORINFINITELYMANYANDITHOLDSFORALLSINCEBOTHSIDESAREPOLYNOMIALSINGENBINOMLETTHEPOLYNOMIALBEDEFINEDASINEXAMPLESEEEQLETPROVETHATPROVIDEDTHATISCLOSEENOUGHTONOTEIFTHISRESULTISESSENTIALLYTHEBINOMIALTHEOREMANDTHISEQUATIONISANIMPORTANTGENERALIZATIONOFTHATTHEOREMTHEBINOMIALTHEOREMGENERALIZEDBINOMIALTHEOREMMAYBEASSUMEDINTHEPROOFHINTSTARTWITHMULTIPLESOFASPECIALCASEOFWHEREAGAINTHELEFTHANDSIDEISCONSIDEREDTOBEAPOLYNOMIALINUSINGTHERATIOTESTANDSTRAIGHTFORWARDESTIMATESFORLARGEVALUESOFWECANPROVECONVERGENCEWHENISSUFFICIENTLYSMALLWEHAVENOWLETTHISPROOFISDUETOHWGOULDAMMSEEALSOTHEMOREGENERALFORMULASINEXERCISESMULTITREEINVERSIONANDINDUCEDFUNCGENBINOMDIFFUSINGTHEASSUMPTIONSOFTHEPREVIOUSEXERCISEPROVETHATWECOULDSTARTWITHIDENTITYINTHEFORMANDPROCEEDASINEXERCISEANOTHERWAYISTODIFFERENTIATETHEFORMULAOFTHATEXERCISEWITHRESPECTTOWEGETHENCEWECANOBTAINTHEVALUEOFSOLVEEXAMPLEINTHETEXTBYUSINGTHERESULTOFEXERCISEANDPROVEEQFROMTHEPRECEDINGTWOEXERCISESHINTSEEEXERCISEFOREQMULTIPLYTHESERIESFORBYTHESERIESFORANDGETASERIESFORINWHICHCOEFFICIENTSOFMAYBEEQUATEDTOTHECOEFFICIENTSARISINGFROMTHESERIESFORMPROVETHATIFISANONNEGATIVEINTEGERDENOTINGTHELEFTHANDSIDEBYWEFINDBYCONSIDERINGTHEIDENTITYMSHOWTHATEQISJUSTASPECIALCASEOFTHEGENERALIDENTITYPROVEDINEXERCISEDIVDIFFIDENTMSHOWTHATTHEREISABETTERWAYTOSOLVEEXAMPLETHANTHEWAYUSEDINTHETEXTBYMANIPULATINGTHESUMSOTHATEQAPPLIESAPPLYANDTOGETNOWWECANAPPLYEQWITHOBTAININGTHISRESULTISTHESAMEASOURPREVIOUSFORMULAWHENISPOSITIVEBUTWHENTHEANSWERWEHAVEOBTAINEDISCORRECTWHILEISNOTOURDERIVATIONHASAFURTHERBONUSSINCETHEANSWERISVALIDFORANDALLINTEGERSPFAFFSAALSCHUTZMEVALUATEINTERMSOFANDGIVENTHATANDAREINTEGERSBEGINBYREPLACINGTHISSUMWASFIRSTOBTAINEDINCLOSEDFORMBYJFPFAFFNOVAACTAACADSCIENTPETRWEHAVECHANGINGTOANDAPPLYINGAGAINWEGETSTIRLGFEXMSHOWTHATWHEREISTHERISINGFACTORIALPOWERDEFINEDINEQRISINGPOWERREPLACEBYINCAPELLISUMMAVANDERMONDESHOWTHATTHEBINOMIALFORMULAISVALIDALSOWHENITINVOLVESFACTORIALPOWERSINSTEADOFTHEORDINARYPOWERSINOTHERWORDSPROVETHATTORELLISUMMTORELLISSUMINTHELIGHTOFTHEPREVIOUSEXERCISESHOWTHATABELSGENERALIZATIONEQOFABELSBINOMIALTHEOREMTHEBINOMIALFORMULAISTRUEALSOFORRISINGPOWERSMEMEMACADROYSCIPARISPARTCKRAMPELEMENSDARITHMETIQUEUNIVERSELLECOLOGNEGIORNALEDIMATBATTAGLINISINCETHEEQUATIONMAYBETRANSFORMEDINTOWHICHISACASEOFSIMILARLYANEQUIVALENTFORMULAOFROTHEFORMULAEDESERIERUMREVERSIONELEIPZIGMPROVETHEADDITIONFORMULASFORSTIRLINGNUMBERSSTIRLINGNUMBERSDIRECTLYFROMTHEDEFINITIONSEQSANDFOREXAMPLEWEPROVETHEFIRSTFORMULAMWHATISTHESUMOFTHENUMBERSINEACHROWOFPASCALSTRIANGLEWHATISTHESUMOFTHESENUMBERSWITHALTERNATINGSIGNSBYASSUMINGTHATISANONNEGATIVEINTEGERWEGETANDRESPECTIVELYMFROMTHEANSWERSTOTHEPRECEDINGEXERCISEDEDUCETHEVALUEOFTHESUMOFEVERYOTHERENTRYINAROWWHENTHEODDANDEVENTERMSCANCELSOEACHEQUALSHALFTHETOTALSUMRAMUSSUMCRAMUSGENERALIZINGTHERESULTOFTHEPRECEDINGEXERCISESHOWTHATWEHAVETHEFOLLOWINGFORMULAGIVENTHATFOREXAMPLEHINTFINDTHERIGHTCOMBINATIONSOFTHESECOEFFICIENTSMULTIPLIEDBYTHROOTSOFUNITYTHISIDENTITYISPARTICULARLYREMARKABLEWHENLETTHENNOWITISTHESUMOFAGEOMETRICPROGRESSIONSOTHERIGHTHANDSUMISTHEORIGINALSUMONTHELEFTISSINCETHEQUANTITYISKNOWNTOBEREALWEMAYTAKETHEREALPARTANDOBTAINTHESTATEDFORMULASEECRELLETHECASESANDHAVESPECIALPROPERTIESDISCUSSEDINCMATHEXERCISESANDMWHATISTHESUMOFTHENUMBERSINEACHROWOFSTIRLINGSFIRSTTRIANGLEWHATISTHESUMOFTHESENUMBERSWITHALTERNATINGSIGNSSEEEXERCISETHEROWSUMSINTHESECONDTRIANGLEARENOTSOSIMPLEWEWILLFINDEXERCISETHATISTHENUMBEROFWAYSTOPARTITIONASETOFELEMENTSINTODISJOINTSETSWHICHISTHENUMBEROFEQUIVALENCERELATIONSONBETATHEBETAFUNCTIONBISDEFINEDFORPOSITIVEREALNUMBERSBYTHEFORMULABASHOWTHATBBBSHOWTHATBBBCSHOWTHATBBPROOFOFCBYPARTSNOWUSEBBETAWEPROVEDARELATIONBETWEENTHEGAMMAFUNCTIONANDTHEBETAFUNCTIONINEXERCISEGAMMAMBYSHOWINGTHATBIFISAPOSITIVEINTEGERAPROVETHATBSHOWTHATBASREGARDLESSOFWHETHERRUNSTHROUGHINTEGERVALUESORNOTBYMONOTONICITYHENCEBANDEXPRESSTHEBINOMIALCOEFFICIENTINTERMSOFBINOMIALCOEFSGENERALIZEDTHEBETAFUNCTIONDEFINEDABOVETHISGIVESUSAWAYTOEXTENDTHEDEFINITIONTOALLREALVALUESOFIFTHISISDEFINEDACCORDINGTOEXERCISEBINGENERALWHENANDAREARBITRARYCOMPLEXNUMBERSWEDEFINETHEVALUEISINFINITEWHENISANEGATIVEINTEGERANDISNOTANINTEGERWITHTHISDEFINITIONTHESYMMETRYCONDITIONHOLDSFORALLCOMPLEXANDEXCEPTWHENISANEGATIVEINTEGERANDISANINTEGEREQSANDARENEVERFALSEALTHOUGHTHEYMAYOCCASIONALLYTAKEINDETERMINATEFORMSSUCHASOREQUATIONBECOMESWECANEVENEXTENDTHEBINOMIALTHEOREMANDVANDERMONDESCONVOLUTIONOBTAININGANDTHESEFORMULASHOLDFORALLCOMPLEXANDWHENEVERTHESERIESCONVERGEPROVIDEDTHATCOMPLEXPOWERSARESUITABLYDEFINEDSEELRAMSHAWINFPROCLETTERSBETAHALFHALFSHOWTHATBFROMEXERCISEWEMAYNOWCONCLUDETHATUSINGTHEGENERALIZEDBINOMIALCOEFFICIENTSUGGESTEDINEXERCISESHOWTHATUSINGTHEGENERALIZEDBINOMIALCOEFFICIENTSUGGESTEDINEXERCISEFINDBINOMIALCOEFSASYMPTOTICFORLARGEMUSINGSTIRLINGSAPPROXIMATIONEQSTIRLAPPROXFINDANAPPROXIMATEVALUEOFASSUMINGTHATBOTHANDARELARGEINPARTICULARFINDTHEAPPROXIMATESIZEOFWHENISLARGEANDGOINGHALVESMGIVENTHATISANINTEGERSHOWTHATGIVEASIMPLERFORMULAFORTHESPECIALCASEEACHQUANTITYISWHENANDISMULTIPLIEDBYWHENISREPLACEDBYWHENTHISIMPLIESRECIPBINOMMSHOWTHATIFTHEDENOMINATORSARENOTZERONOTETHATTHISFORMULAGIVESUSTHERECIPROCALOFABINOMIALCOEFFICIENTASWELLASTHEPARTIALFRACTIONEXPANSIONOFTHISCANBEPROVEDBYINDUCTIONUSINGTHEFACTTHATWHENALTERNATIVELYWEHAVEINFACTTHESTATEDSUMEQUALSBFORNONINTEGERALSOWHENTHESERIESCONVERGESMSHOWTHATTHEIDENTITYIMPLIESARELATIONONBINOMIALCOEFFICIENTSINTEGERSEEEXERCISEMPROVEABELSFORMULAEQINTHESPECIALCASEABELSBINOMIALFORMULATHETHSUMMANDISAPPLYEQMPROVEABELSFORMULAEQBYWRITINGEXPANDINGTHERIGHTHANDSIDEINPOWERSOFANDAPPLYINGTHERESULTOFTHEPREVIOUSEXERCISETHERIGHTHANDSIDEISTHESAMEDEVICEMAYBEUSEDTOPROVETORELLISSUMEXERCISEANOTHERNEATPROOFOFABELSFORMULACOMESFROMTHEFACTTHATITISREADILYTRANSFORMEDINTOTHEMORESYMMETRICIDENTITYDERIVEDINEXERCISEABELANDTREESABELSTHEOREMHASBEENGENERALIZEDEVENFURTHERBYAHURWITZACTAMATHEMATICAASFOLLOWSWHERETHESUMISOVERALLCHOICESOFORINDEPENDENTLYTHISISANIDENTITYINANDABELSFORMULAISTHESPECIALCASEHURWITZSFORMULAFOLLOWSFROMTHERESULTINEXERCISEHURWITZANDTREESPROVETHATABELSBINOMIALFORMULAISNOTALWAYSVALIDWHENISNOTANONNEGATIVEINTEGERBYEVALUATINGTHERIGHTHANDSIDEWHENABELSBINOMIALFORMULAMLJHAUTUSOBSERVESTHATTHESUMISABSOLUTELYCONVERGENTFORALLCOMPLEXWHENEVERSINCETHETERMSFORLARGEAREALWAYSOFORDERTHISCONVERGENCEISUNIFORMINBOUNDEDREGIONSSOWEMAYDIFFERENTIATETHESERIESTERMBYTERMIFISTHEVALUEOFTHESUMWHENWEFINDANDTHESEFORMULASARECONSISTENTWITHBUTACTUALLYTHELATTEREQUALITYSEEMSTOHOLDRARELYIFEVERUNLESSTHESUMISFINITEFURTHERMORETHEDERIVATIVEWITHRESPECTTOISALMOSTALWAYSNONZEROPARTIALVANDERMONDEMAPROVETHEFOLLOWINGIDENTITYBYINDUCTIONONWHEREANDAREINTEGERSBMAKINGUSEOFIMPORTANTRELATIONSFROMEXERCISESHOWTHATTHEFOLLOWINGFORMULACANBEOBTAINEDASASPECIALCASEOFTHEIDENTITYINPARTATHISRESULTISCONSIDERABLYMOREGENERALTHANEQINTHECASEFORBSETANDINTHERESULTOFAMCONSIDERPASCALSTRIANGLEASSHOWNINTABLETABASAMATRIXWHATISTHEINVERSEOFTHATMATRIXINVERSEOFMATRIXINSERTMINUSSIGNSINACHECKERBOARDPATTERNASSHOWNTHISISEQUIVALENTTOMULTIPLYINGBYTHERESULTISTHEDESIREDINVERSEBYEQMCONSIDERINGEACHOFSTIRLINGSTRIANGLESTABLETABASMATRICESDETERMINETHEIRINVERSESINSERTMINUSSIGNSINONETRIANGLEASINTHEPREVIOUSEXERCISETOGETTHEINVERSEOFTHEOTHEREQCOMBNOSYSTEMTHECOMBINATORIALNUMBERSYSTEMFOREACHINTEGERFINDTHREEINTEGERSFORWHICHANDCANYOUSEEHOWTHISPATTERNCANBECONTINUEDFORHIGHERVALUESOFWITHFIXEDANDRUNTHROUGHTHECOMBINATIONSOFTHINGSTWOATATIMEWITHANDFIXEDRUNSTHROUGHTHECOMBINATIONSOFTHINGSONEATATIMESIMILARLYWECOULDEXPRESSALLNUMBERSINTHEFORMWITHTHESEQUENCEBEGINSWECANFINDTHECOMBINATORIALREPRESENTATIONBYAGREEDYMETHODFIRSTCHOOSINGTHELARGESTPOSSIBLETHENTHELARGESTPOSSIBLEFORETCSECTIONDISCUSSESFURTHERPROPERTIESOFTHISREPRESENTATIONMSHOWTHATTHECOEFFICIENTINSTIRLINGSATTEMPTATGENERALIZINGTHEFACTORIALFUNCTIONEQSTIRLINGTRYISQNOMIALTHMMHAROTHEINTHENOTATIONOFEQPROVETHENOMIALTHEOREMALSOFINDNOMIALGENERALIZATIONSOFTHEFUNDAMENTALIDENTITIESANDNOMIALCOEFFICIENTSSYSTEMATISCHESLEHRBUCHDERARITHMETIKLEIPZIGXXIXUSEINDUCTIONANDTHEREFOREFSCHWEINSANALYSISHEIDELBERGTHEGENERALIZATIONOFISANDTHEIDENTITYMAKESITEASYTOGENERALIZETOTHENOMIALCOEFFICIENTSARISEINMANYDIVERSEAPPLICATIONSSEEFOREXAMPLESECTIONANDTHEAUTHORSNOTEINJCOMBINATORIALTHEORYAUSEFULFACTSWHENISANONNEGATIVEINTEGERISAPOLYNOMIALOFDEGREEINWITHNONNEGATIVEINTEGERCOEFFICIENTSANDITSATISFIESTHEREFLECTIVELAWSIFANDTHENOMIALTHEOREMHOLDSWHENISANARBITRARYREALNUMBERIFWEREPLACETHELEFTHANDSIDEBYPROPERTIESOFPOWERSERIESMAKEITNECESSARYTOVERIFYTHISONLYWHENISAPOSITIVEINTEGERBECAUSEWECANSETTHEIDENTITYHASTHENBEENVERIFIEDFORINFINITELYMANYVALUESOFNOWWECANNEGATETHEUPPERINDEXINTHENOMIALTHEOREMOBTAININGFORFURTHERINFORMATIONSEEGGASPERANDMRAHMANBASICHYPERGEOMETRICSERIESBASICHYPERGEOMETRICSERIESCAMBRIDGEUNIVPRESSTHENOMIALCOEFFICIENTSWEREINTRODUCEDBYGAUSSINCOMMENTATIONESSOCIETATISREGIAESCIENTIARUMGOTTINGENSISRECENTIORESSEEALSOCAUCHYCOMPTESRENDUSACADSCIPARISJACOBICRELLEHEINECRELLEANDSECTIONMASEQUENCEOFNUMBERSSATISFIESTHERELATIONSFORFINDCOMBWITHREPMWEHAVESEENTHATISTHENUMBEROFCOMBINATIONSOFTHINGSATATIMENAMELYTHENUMBEROFWAYSTOCHOOSEDIFFERENTBINOMIALCOEFSCOMBINATORIALLYTHINGSOUTOFASETOFTHECOMBINATIONSWITHREPETITIONSARESIMILARTOORDINARYCOMBINATIONSEXCEPTTHATWEMAYCHOOSEEACHOBJECTANYNUMBEROFTIMESTHUSTHELISTWOULDBEEXTENDEDTOINCLUDEALSOETCIFWEWERECONSIDERINGCOMBINATIONSWITHREPETITIONHOWMANYCOMBINATIONSOFOBJECTSARETHEREIFREPETITIONISALLOWEDTHISFORMULACANBEREMEMBEREDEASILYSINCEITISLIKEEQEXCEPTTHATTHENUMBERSINTHENUMERATORGOUPINSTEADOFDOWNASLICKWAYTOPROVEITISTONOTETHATWEWANTTOCOUNTTHENUMBEROFINTEGERSOLUTIONSTOTHERELATIONSTHISISTHESAMEASANDTHENUMBEROFSOLUTIONSTOISTHENUMBEROFCHOICESOFDISTINCTTHINGSFROMTHESETTHISTRICKISDUETOHFSCHERKCRELLECURIOUSLYITWASALSOGIVENBYWAFORSTEMANNINTHESAMEJOURNALWHOSAIDONEWOULDALMOSTBELIEVETHISMUSTHAVEBEENKNOWNLONGAGOBUTIHAVEFOUNDITNOWHEREEVENTHOUGHIHAVECONSULTEDMANYWORKSINTHISREGARDEXMEVALUATETHESUMTHEREBYOBTAININGACOMPANIONFORMULAFOREQSTIRLINGNUMBERSIFISTHEDESIREDQUANTITYWEHAVEBYANDHENCETHEANSWERISTHESAMEFORMULAISALSOEASILYOBTAINEDBYINVERSIONOFMTHETEXTGIVESFORMULASFORSUMSINVOLVINGAPRODUCTOFTWOBINOMIALCOEFFICIENTSOFTHESUMSINVOLVINGAPRODUCTOFTHREEBINOMIALCOEFFICIENTSTHEFOLLOWINGONEANDTHEIDENTITYOFEXERCISESEEMTOBEMOSTUSEFULTHESUMINCLUDESBOTHPOSITIVEANDNEGATIVEVALUESOFPROVETHISIDENTITYHINTTHEREISAVERYSHORTPROOFWHICHBEGINSBYAPPLYINGTHERESULTOFEXERCISEUSETHEIDENTITYOFEXERCISEWITHBYREARRANGINGTHEFACTORIALFACTORSTHESUMONNOWVANISHESUNLESSTHECASEOFTHISIDENTITYWASPUBLISHEDBYACDIXONMESSENGEROFMATHWHOESTABLISHEDTHEGENERALCASETWELVEYEARSLATERPROCLONDONMATHSOCHOWEVERLJROGERSHADALREADYPUBLISHEDAMUCHMOREGENERALFORMULAINTHEMEANTIMEPROCLONDONMATHSOCSEEALSOPAPERSBYPAMACMAHONQUARTERLYJOURNALOFPUREANDAPPLIEDMATHANDJOHNDOUGALLPROCEDINBURGHMATHSOCIETYTHECORRESPONDINGNOMIALNOMIALCOEFFICIENTSIDENTITIESAREWHEREMIFANDAREINTEGERSANDPROVETHATSEECMATHEXERCISESANDSETPARTSMSHOWTHATISTHENUMBEROFWAYSTOPARTITIONPARTITIONSOFSETSTIRLINGNUMBERSCOMBINATORIALLYASETOFELEMENTSINTONONEMPTYDISJOINTSUBSETSFOREXAMPLETHESETCANBEPARTITIONEDINTOTWOSUBSETSINWAYSHINTUSEEQLETBETHENUMBEROFPARTITIONSOFINTOPARTSCLEARLYIFTHEPARTITIONINGSAREOFTWOVARIETIESATHEELEMENTALONEFORMSASETOFTHEPARTITIONTHEREAREWAYSTOCONSTRUCTPARTITIONSLIKETHISBTHEELEMENTAPPEARSTOGETHERWITHANOTHERELEMENTTHEREAREWAYSTOINSERTINTOANYPARTITIONOFHENCETHEREAREWAYSTOCONSTRUCTPARTITIONSLIKETHISWECONCLUDETHATANDBYINDUCTIONBFLOGANPROVEEQSANDSEEAMMLOVASZINEQSUPPOSEANDAREREALNUMBERSSATISFYINGWHEREANDISANINTEGERBINOMIALCOEFFICIENTINEQUALITIESPROVETHATLETWITHSIMILARNOTATIONSFORANDWEMAYASSUMETHATISFIXEDSOTHATISAFUNCTIONOFLETANDSUPPOSETHATFORSOMEWEWILLPROVETHATTHEREFOREMUSTBETHEONLYROOTPROVINGTHESECONDINEQUALITYSINCEANDANDWEMUSTHAVESETTINGANDWEHAVESINCETHUSANDTOPROVETHEFIRSTINEQUALITYWEMAYASSUMETHATTHENIFFORSOMETHESECONDINEQUALITYTELLSUSTHATREFERENCESLLOVASZCOMBINATORIALPROBLEMSANDEXERCISESPROBLEMARMREDHEFFERAMMNICEBCBOUNDMWEOFTENNEEDTOKNOWTHATBINOMIALCOEFFICIENTSARENTTOOLARGEPROVETHEEASYTOREMEMBERUPPERBOUNDBINOMIALCOEFSBOUNDSINFACTEXERCISEPOORMANSTIRLINGGIVESTHESLIGHTLYSHARPERBUTLESSMEMORABLEUPPERBOUNDSTHECORRESPONDINGLOWERBOUNDISWHICHISLESSMEMORABLEBUTOFTENSHARPERTHANEXPECTEDABSDEVMADEMOIVREPROVETHATIFISANONNEGATIVEINTEGERLETTHENSOTHESTATEDSUMISDEMOIVRESTATEDTHISIDENTITYINMISCELLANEAANALYTICAINTHECASETHATISANINTEGERHPOINCAREPROVEDTHEGENERALCASEINHISCALCULDESPROBABILITESSEEPDIACONISANDSZABELLSTATISTICALSCIENCEFORTHEINTERESTINGHISTORYOFTHISIDENTITYANDFORAVARIETYOFSIMILARFORMULASBINOMIALCOEFFICIENTSBINOMIALCOEFSINSUMSHARMONICNUMBERSTHEFOLLOWINGSUMWILLBEOFGREATIMPORTANCEINOURLATERWORKHARMONICNUMBERSTHISSUMDOESNOTOCCURVERYFREQUENTLYINCLASSICALMATHEMATICSANDTHEREISNOSTANDARDNOTATIONFORITBUTINTHEANALYSISOFALGORITHMSITPOPSUPNEARLYEVERYTIMEWETURNAROUNDANDWEWILLCONSISTENTLYCALLITBESIDESTHENOTATIONSANDANDPSIFUNCTIONAREFOUNDINMATHEMATICALLITERATURETHELETTERSTANDSFORHARMONICANDWESPEAKOFASAHARMONICNUMBERBECAUSEISCUSTOMARILYCALLEDTHEHARMONICSERIESCHINESEBAMBOOSTRIPSWRITTENBEFOREALREADYEXPLAINEDHOWTOCOMPUTEASANEXERCISEINARITHMETICSEECCULLENHISTORIAMATHITMAYSEEMATFIRSTTHATDOESNOTGETTOOLARGEWHENHASALARGEVALUESINCEWEAREALWAYSADDINGSMALLERANDSMALLERNUMBERSBUTACTUALLYDIVERGENTSERIESITISNOTHARDTOSEETHATWILLGETASLARGEASWEPLEASEIFWETAKETOBEBIGENOUGHBECAUSETHISLOWERBOUNDFOLLOWSFROMTHEOBSERVATIONTHATFORWEHAVESOASINCREASESBYTHELEFTHANDSIDEOFINCREASESBYATLEASTITISIMPORTANTTOHAVEMOREDETAILEDINFORMATIONABOUTTHEVALUEOFTHANISGIVENINEQTHEAPPROXIMATESIZEOFISAWELLKNOWNQUANTITYATLEASTINMATHEMATICALCIRCLESTHATMAYBEEXPRESSEDASFOLLOWSHEREISEULERSCONSTANTINTRODUCEDBYLEONHARDEULERINCOMMENTARIIACADSCIIMPPETEXACTVALUESOFFORSMALLANDAPLACEVALUEFORAREGIVENINTHETABLESINAPPENDIXAWESHALLDERIVEEQINSECTIONTHUSISREASONABLYCLOSETOTHENATURALLOGARITHMOFEXERCISEADEMONSTRATESINASIMPLEWAYTHATHASASOMEWHATLOGARITHMICBEHAVIORINASENSEJUSTBARELYGOESTOINFINITYASGETSLARGEBECAUSETHESIMILARSUMSTAYSBOUNDEDFORALLWHENISANYREALVALUEDEXPONENTGREATERTHANUNITYSEEEXERCISEWEDENOTETHESUMINEQBYWHENTHEEXPONENTINEQISATLEASTTHEVALUEOFISFAIRLYCLOSETOITSMAXIMUMVALUEEXCEPTFORVERYSMALLTHEQUANTITYISVERYWELLKNOWNINMATHEMATICSASRIEMANNSZETAFUNCTIONIFISANEVENINTEGERTHEVALUEOFISKNOWNTOBEEQUALTOWHEREISABERNOULLINUMBERSEESECTIONANDAPPENDIXAINPARTICULARTHESERESULTSAREDUETOEULERFORDISCUSSIONANDPROOFSEECMATHNOWWEWILLCONSIDERAFEWIMPORTANTSUMSTHATINVOLVEHARMONICNUMBERSFIRSTTHISFOLLOWSFROMASIMPLEINTERCHANGEOFSUMMATIONFORMULAISASPECIALCASEOFTHESUMWHICHWEWILLNOWDETERMINEUSINGANIMPORTANTTECHNIQUECALLEDSUMMATIONSUMMATIONBYPARTSBINOMIALCOEFSINSUMSBYPARTSSEEEXERCISESUMMATIONBYPARTSISAUSEFULWAYTOEVALUATEWHENEVERTHEQUANTITIESANDHAVESIMPLEFORMSWEOBSERVEINTHISCASETHATANDTHEREFOREHENCEAPPLYINGEQBINOMCONSTLOWERYIELDSTHEDESIREDFORMULATHISDERIVATIONANDITSFINALRESULTAREANALOGOUSTOTHEEVALUATIONOFUSINGWHATCALCULUSBOOKSCALLINTEGRATIONBYPARTSWECONCLUDETHISSECTIONBYCONSIDERINGADIFFERENTKINDOFSUMWHICHWEWILLTEMPORARILYDENOTEBYFORBREVITYWEFINDTHATHENCEANDWEHAVETHISEQUATIONTOGETHERWITHTHEFACTTHATSHOWSUSTHATTHENEWSUMISPARTOFTHEINFINITESERIESLOGSERIESFORANDWHENTHESERIESISCONVERGENTTHEDIFFERENCEISTHISPROVESTHEFOLLOWINGTHEOREMAAPPROXHARMSUMTHEOREMAIFANDTHENWHEREEXERCISESWHATAREANDANDSHOWTHATTHESIMPLEARGUMENTUSEDINTHETEXTTOPROVETHATCANBESLIGHTLYMODIFIEDTOPROVETHATREPLACEEACHTERMBYTHEUPPERBOUNDMGENERALIZETHEARGUMENTUSEDINTHEPREVIOUSEXERCISETOSHOWTHATFORTHESUMREMAINSBOUNDEDFORALLFINDANUPPERBOUNDISANUPPERBOUNDDECIDEWHICHOFTHEFOLLOWINGSTATEMENTSARETRUEFORALLPOSITIVEINTEGERSABCBANDCGIVETHEVALUEOFTODECIMALPLACESUSINGTHETABLESINAPPENDIXAHARMASSTIRLMPROVETHATTHEHARMONICNUMBERSAREDIRECTLYRELATEDTOSTIRLINGSSTIRLINGNUMBERSNUMBERSWHICHWEREINTRODUCEDINTHEPREVIOUSSECTIONINFACTINDUCTIONANDEQSTIRLADDMLETASHOWTHATWHENORINCREASESNEVERINCREASESASSUMINGTHATANDAREPOSITIVEBCOMPUTETHEMINIMUMANDMAXIMUMVALUESOFFORTHEMAXIMUMVALUEOCCURSATANDTHEMINIMUMISAPPROACHEDWHENANDGETVERYLARGEBYEQTHEGREATESTLOWERBOUNDISWHICHISNEVERACTUALLYATTAINEDAGENERALIZATIONOFTHISRESULTAPPEARSINAMMCOMPAREEQWITHESTIMATETHEDIFFERENCEASAFUNCTIONOFBYSTIRLINGSAPPROXIMATIONISAPPROXIMATELYALSOISAPPROXIMATELYTHEDIFFERENCEISAPPROXIMATELYMTHEOREMAAPPLIESONLYWHENWHATISTHEVALUEOFTHESUMCONSIDEREDWHENGENSUMBYPARTSMSUMMATIONBYPARTSWEHAVEUSEDSPECIALCASESOFTHEGENERALMETHODOFSUMMATIONBYPARTSINEXERCISESUMBYPARTSANDINTHEDERIVATIONSUMMATIONBYPARTSOFEQPROVETHEGENERALFORMULABREAKTHELEFTSIDEINTOTWOSUMSCHANGETHESECONDSUMMUSINGSUMMATIONBYPARTSEVALUATEFORMEVALUATECORRECTTOATLEASTDECIMALPLACESISCORRECTTOMORETHANTHREEHUNDREDDECIMALPLACESBCHNIDMPROVETHEIDENTITYNOTEINPARTICULARTHESPECIALCASEWHICHGIVESUSANIDENTITYRELATEDTOEXERCISERECIPBINOMBINOMIALCOEFSINSUMSUSEINDUCTIONASINTHEPROOFOFTHEOREMAORUSECALCULUSDIFFERENTIATEWITHRESPECTTOALSOEVALUATEATSUMHARMOVERKMSHOWTHATANDEVALUATESEESECTIONEXAMPLESUMOVERHALFTHESECONDSUMISMEXPRESSINTERMSOFANDCANBESUMMEDBYFORMULASINTHETEXTTHEANSWERCOMESTOEXPRESSTHESUMINTERMSOFHARMONICNUMBERSMEWARINGLETBEANODDPRIMESHOWTHATTHENUMERATOROFISDIVISIBLEBYFIRSTSOLUTIONELEMENTARYTAKINGTHEDENOMINATORTOBEWHICHISAMULTIPLEOFTHETRUEDENOMINATORBUTNOTAMULTIPLEOFWEMUSTSHOWONLYTHATTHECORRESPONDINGNUMERATORISAMULTIPLEOFMODULOWHERECANBEDETERMINEDBYTHERELATIONTHESETISJUSTTHESETSOTHENUMERATORISCONGRUENTTOSECONDSOLUTIONADVANCEDBYEXERCISEFERMATTHMINGFPWEHAVEHENCEBYEXERCISESTIRLGFEXSTIRLINGNUMBERSMODNOWAPPLYEXERCISETHENUMERATOROFISINFACTKNOWNTOBEAMULTIPLEOFWHENSEEHARDYANDWRIGHTANINTRODUCTIONTOTHETHEORYOFNUMBERSSECTIONMJSELFRIDGEWHATISTHEHIGHESTPOWEROFTHATDIVIDESTHENUMERATOROFIFWHEREISODDTHESUMEQUALSWHEREANDAREBOTHODDAMMMLISTALLNONNEGATIVEINTEGERSFORWHICHISANINTEGERHINTIFHASODDNUMERATORANDEVENDENOMINATORITCANNOTBEANINTEGERONLYFORLETTHEREISPRECISELYONETERMWHOSEDENOMINATORISSOISASUMOFTERMSINVOLVINGONLYODDPRIMESINTHEDENOMINATORIFWEREANINTEGERWOULDHAVEADENOMINATOREQUALTOTHEREISANANALYTICWAYTOAPPROACHSUMMATIONPROBLEMSSUCHASTHEONELEADINGTOTHEOREMAINTHISSECTIONIFANDTHISSERIESCONVERGESFORPROVETHATEXPANDTHEINTEGRANDTERMBYTERMSEEALSOAMMANDANARTICLEBYHWGOULDMATHEMATICSMAGAZINEMEVALUATEMEVALUATEPSIFUNCBYCONSIDERINGTHEFUNCTIONGENERALIZETONONINTEGERVALUESOFYOUMAYUSETHEFACTTHATANTICIPATINGTHENEXTEXERCISESINCEHENCETHEFUNCTIONISCALLEDTHEPSIFUNCTIONORTHEDIGAMMAFUNCTIONSOMEVALUESFORRATIONALAPPEARINAPPENDIXAGAMMAINFPRODSHOWTHATCONSIDERTHEPARTIALPRODUCTSOFTHISINFINITEPRODUCTGAMMAFUNCTIONITISNOTETHEGENERALIZATIONOFCONSIDEREDINTHEPREVIOUSEXERCISEISTHEREFOREEQUALTOWHENTHESAMEIDEACANBEUSEDFORLARGERVALUESOFTHEINFINITEPRODUCTCONVERGESFORALLCOMPLEXMLETWHATAREANDPROVETHEGENERALIDENTITYANDSOTHEIDENTITYGENERALIZESSEELEULERNOVICOMMENTACADSCIPETHARMONICNUMBERSFIBONACCINUMBERSTHESEQUENCEFIBONACCINUMBERSINWHICHEACHNUMBERISTHESUMOFTHEPRECEDINGTWOPLAYSANIMPORTANTROLEINATLEASTADOZENSEEMINGLYUNRELATEDALGORITHMSTHATWEWILLSTUDYLATERTHENUMBERSINTHESEQUENCEAREDENOTEDBYANDWEFORMALLYDEFINETHEMASTHISFAMOUSSEQUENCEWASPUBLISHEDINBYLEONARDOPISANOLEONARDOOFPISAWHOISSOMETIMESCALLEDLEONARDOFIBONACCIFILIUSFIBONACCIBONACCIISONOFBONACCIOHISLIBERABACIBOOKOFCALCULATIONCONTAINSTHEFOLLOWINGEXERCISEHOWMANYPAIRSOFRABBITSCANBEPRODUCEDFROMASINGLEPAIRINAYEARSTIMETOSOLVETHISPROBLEMWEARETOLDTOASSUMETHATEACHPAIRPRODUCESANEWPAIROFOFFSPRINGEVERYMONTHANDTHATEACHNEWPAIRBECOMESFERTILEATTHEAGEOFONEMONTHFURTHERMORETHERABBITSNEVERDIEAFTERONEMONTHTHEREWILLBEPAIRSOFRABBITSAFTERTWOMONTHSTHEREWILLBETHEFOLLOWINGMONTHTHEORIGINALPAIRANDTHEPAIRBORNDURINGTHEFIRSTMONTHWILLBOTHUSHERINANEWPAIRANDTHEREWILLBEINALLANDSOONFIBONACCIWASBYFARTHEGREATESTEUROPEANMATHEMATICIANOFTHEMIDDLEAGESHESTUDIEDTHEWORKOFALKHWARIZMAFTERWHOMALGORITHMISNAMEDSEESECTIONANDHEADDEDNUMEROUSORIGINALCONTRIBUTIONSTOARITHMETICANDGEOMETRYTHEWRITINGSOFFIBONACCIWEREREPRINTEDINBBONCOMPAGNISCRITTIDILEONARDOPISANOROMEVOLSAPPEARSINVOLHISRABBITPROBLEMWASOFCOURSENOTPOSEDASAPRACTICALAPPLICATIONTOBIOLOGYANDTHEPOPULATIONEXPLOSIONITWASANEXERCISEINADDITIONINFACTITSTILLMAKESARATHERGOODCOMPUTEREXERCISEABOUTADDITIONSEEEXERCISEFIBONACCIWROTEITISPOSSIBLETODOTHEADDITIONINTHISORDERFORANINFINITENUMBEROFMONTHSBEFOREFIBONACCIWROTEHISWORKTHESEQUENCEHADALREADYBEENFIBONACCIDISCUSSEDBYINDIANSCHOLARSWHOHADLONGBEENINTERESTEDINRHYTHMICPATTERNSTHATAREFORMEDPROSODYFROMONEBEATANDTWOBEATNOTESORSYLLABLESTHENUMBEROFSUCHRHYTHMSHAVINGBEATSALTOGETHERISANDTHERULEFORCOMPUTINGTHOSENUMBERSWASSTATEDBYVIRAHANKACINHISWORKVRTTAJATISAMUCCAYASLOKATHEREFOREBOTHGOPALABEFOREANDHEMACANDRACMENTIONEDTHENUMBERSEXPLICITLYSEEPSINGHHISTORIAMATHSEEALSOEXERCISEMORSECODETHESAMESEQUENCEALSOAPPEARSINTHEWORKOFJOHANNESKEPLERWHOWASMUSINGABOUTTHENUMBERSHESAWAROUNDHIMJKEPLERTHESIXCORNEREDSNOWFLAKEOXFORDCLARENDONPRESSKEPLERWASPRESUMABLYUNAWAREOFFIBONACCISBRIEFMENTIONOFTHESEQUENCEFIBONACCINUMBERSHAVEOFTENBEENOBSERVEDINNATUREPROBABLYFORREASONSSIMILARTOTHEORIGINALASSUMPTIONSOFTHERABBITPROBLEMPHYLLOTAXISSEECONWAYANDGUYTHEBOOKOFNUMBERSNEWYORKCOPERNICUSFORANESPECIALLYLUCIDEXPLANATIONAFIRSTINDICATIONOFTHEINTIMATECONNECTIONSBETWEENANDALGORITHMSCAMETOLIGHTINWHENELEGERUSEDFIBONACCISSEQUENCETOSTUDYTHEEFFICIENCYOFEUCLIDSALGORITHMHEOBSERVEDTHATIFTHENUMBERSANDINALGORITHMEUCLIDSALGARENOTGREATERTHANANDSTEPEWILLBEEXECUTEDATMOSTTIMESTHISWASTHEFIRSTPRACTICALAPPLICATIONOFFIBONACCISSEQUENCESEETHEOREMEUCLIDANDFIBONACCIDURINGTHESTHEMATHEMATICIANELUCASOBTAINEDVERYPROFOUNDRESULTSABOUTTHEFIBONACCINUMBERSANDINPARTICULARHEUSEDTHEMTOPROVETHATTHEDIGITNUMBERISPRIMELUCASGAVETHENAMEFIBONACCINUMBERSTOTHESEQUENCEANDTHATNAMEHASBEENUSEDEVERSINCEWEALREADYHAVEEXAMINEDTHEFIBONACCISEQUENCEBRIEFLYINSECTIONEQFIBUPPERANDEXERCISEFIBLOWERWHEREWEFOUNDTHATIFISAPOSITIVEINTEGERANDIFGOLDENRATIOWEWILLSEESHORTLYTHATTHISQUANTITYISINTIMATELYCONNECTEDWITHTHEFIBONACCINUMBERSTHENUMBERITSELFHASAVERYINTERESTINGHISTORYEUCLIDCALLEDITTHEEXTREMEANDMEANRATIOTHERATIOOFTOISTHERATIOOFTOIFTHERATIOOFTOISRENAISSANCEWRITERSCALLEDITTHEDIVINEPROPORTIONANDINTHELASTCENTURYITHASCOMMONLYBEENCALLEDTHEGOLDENRATIOMANYARTISTSANDWRITERSHAVESAIDTHATTHERATIOOFTOISTHEMOSTAESTHETICALLYPLEASINGPROPORTIONANDTHEIROPINIONISCONFIRMEDFROMTHESTANDPOINTOFCOMPUTERPROGRAMMINGAESTHETICSASWELLFORTHESTORYOFSEETHEEXCELLENTARTICLETHEGOLDENSECTIONPHYLLOTAXISANDWYTHOFFSGAMEBYHSMCOXETERSCRIPTAMATHSEEALSOCHAPTEROFTHENDSCIENTIFICAMERICANBOOKOFMATHEMATICALPUZZLESANDDIVERSIONSBYMARTINGARDNERNEWYORKSIMONANDSCHUSTERSEVERALPOPULARMYTHSABOUTHAVEBEENDEBUNKEDBYGEORGEMARKOWSKYINCOLLEGEMATHJTHEFACTTHATTHERATIOAPPROACHESWASKNOWNTOTHEEARLYEUROPEANRECKONINGMASTERSIMONJACOBWHODIEDINSEEPSCHREIBERHISTORIAMATHTHENOTATIONSWEAREUSINGINTHISSECTIONAREALITTLEUNDIGNIFIEDINMUCHOFTHESOPHISTICATEDMATHEMATICALLITERATUREISCALLEDINSTEADPHIANDISCALLEDOURNOTATIONSAREALMOSTUNIVERSALLYUSEDINRECREATIONALMATHEMATICSANDSOMECRANKLITERATUREANDTHEYARERAPIDLYCOMINGINTOWIDERUSETHEDESIGNATIONCOMESFROMTHENAMEOFTHEGREEKARTISTPHIDIASWHOISSAIDTOHAVEUSEDTHEGOLDENRATIOINHISSCULPTURESEETACOOKTHECURVESOFLIFETHENOTATIONISINACCORDANCEWITHTHATUSEDINTHEFIBONACCIQUARTERLYWHERETHEREADERMAYFINDNUMEROUSFACTSABOUTTHEFIBONACCISEQUENCEAGOODREFERENCETOTHECLASSICALLITERATUREABOUTISCHAPTEROFLEDICKSONSHISTORYOFTHETHEORYOFNUMBERSCARNEGIEINSTOFWASHINGTONTHEFIBONACCINUMBERSSATISFYMANYINTERESTINGIDENTITIESSOMEOFWHICHAPPEARINTHEEXERCISESATTHEENDOFTHISSECTIONONEOFTHEMOSTCOMMONLYDISCOVEREDRELATIONSMENTIONEDBYKEPLERINALETTERHEWROTEINBUTFIRSTPUBLISHEDBYJDCASSINIHISTOIREACADROYPARISISWHICHISEASILYPROVEDBYINDUCTIONAMOREESOTERICWAYTOPROVETHESAMEFORMULASTARTSWITHASIMPLEINDUCTIVEPROOFOFTHEMATRIXIDENTITYWECANTHENTAKETHEDETERMINANTOFBOTHSIDESOFTHISEQUATIONRELATIONSHOWSTHATANDARERELATIVELYPRIMESINCEANYCOMMONDIVISORWOULDHAVETOBEADIVISOROFFROMTHEDEFINITIONWEFINDIMMEDIATELYTHATANDINGENERALBYINDUCTIONTHATFORANYPOSITIVEINTEGERIFWETAKETOBEAMULTIPLEOFINEQWEFINDINDUCTIVELYTHATTHUSEVERYTHIRDNUMBERISEVENEVERYFOURTHNUMBERISAMULTIPLEOFEVERYFIFTHISAMULTIPLEOFANDSOONINFACTMUCHMORETHANTHISISTRUEIFWEWRITETOSTANDFORTHEGREATESTCOMMONDIVISOROFANDARATHERSURPRISINGTHEOREMEMERGESGREATESTCOMMONDIVISORTHEOREMAELUCASANUMBERDIVIDESBOTHANDIFANDONLYIFITISADIVISOROFWHEREINPARTICULARTHISRESULTISPROVEDBYUSINGEUCLIDSALGORITHMWEOBSERVETHATBECAUSEOFEQANYCOMMONDIVISOROFANDISALSOADIVISOROFANDCONVERSELYANYCOMMONDIVISOROFANDISADIVISOROFSINCEISRELATIVELYPRIMETOACOMMONDIVISOROFANDALSODIVIDESTHUSWEHAVEPROVEDTHATFORANYNUMBERWEWILLNOWSHOWTHATANYSEQUENCEFORWHICHSTATEMENTHOLDSANDFORWHICHSATISFIESTHEOREMAFIRSTITISCLEARTHATSTATEMENTMAYBEEXTENDEDBYINDUCTIONONTOTHERULEWHEREISANYNONNEGATIVEINTEGERTHISRESULTMAYBESTATEDMORESUCCINCTLYNOWIFISTHEREMAINDERAFTERDIVISIONOFBYTHATISIFTHENTHECOMMONDIVISORSOFARETHECOMMONDIVISORSOFITFOLLOWSTHATTHROUGHOUTTHEMANIPULATIONSOFALGORITHMEUCLIDSALGTHESETOFCOMMONDIVISORSOFREMAINSUNCHANGEDASANDCHANGEFINALLYWHENTHECOMMONDIVISORSARESIMPLYTHEDIVISORSOFANDGREATESTCOMMONDIVISORMOSTOFTHEIMPORTANTRESULTSINVOLVINGFIBONACCINUMBERSCANBEDEDUCEDFROMTHEREPRESENTATIONOFINTERMSOFWHICHWENOWPROCEEDTODERIVETHEMETHODWESHALLUSEINTHEFOLLOWINGDERIVATIONISEXTREMELYIMPORTANTANDTHEMATHEMATICALLYORIENTEDREADERSHOULDSTUDYITCAREFULLYWEWILLSTUDYTHESAMEMETHODINDETAILINTHENEXTSECTIONGENERATINGFUNCTIONSFIBONACCIGFWESTARTBYSETTINGUPTHEINFINITESERIESWEHAVENOAPRIORIREASONTOEXPECTTHATTHISINFINITESUMEXISTSORTHATTHEFUNCTIONISATALLINTERESTINGBUTLETUSBEOPTIMISTICANDSEEWHATWECANCONCLUDEABOUTTHEFUNCTIONIFITDOESEXISTTHEADVANTAGEOFSUCHAPROCEDUREISTHATISASINGLEQUANTITYTHATREPRESENTSTHEENTIREFIBONACCISEQUENCEATONCEANDIFWEFINDOUTTHATISAKNOWNFUNCTIONITSCOEFFICIENTSCANBEDETERMINEDWECALLTHEGENERATINGFUNCTIONFORTHESEQUENCEWECANNOWPROCEEDTOINVESTIGATEASFOLLOWSBYSUBTRACTIONTHEREFOREALLTERMSBUTTHESECONDVANISHBECAUSEOFTHEDEFINITIONOFSOTHISEXPRESSIONEQUALSTHEREFOREWESEETHATIFEXISTSINFACTTHISFUNCTIONCANBEEXPANDEDINANINFINITESERIESINATAYLORSERIESWORKINGBACKWARDSWEFINDTHATTHECOEFFICIENTSOFTHEPOWERSERIESEXPANSIONOFEQMUSTBETHEFIBONACCINUMBERSWECANNOWMANIPULATEANDFINDOUTMOREABOUTTHEFIBONACCISEQUENCETHEDENOMINATORISAQUADRATICPOLYNOMIALWITHTHETWOROOTSAFTERALITTLECALCULATIONWEFINDTHATCANBEEXPANDEDBYTHEMETHODOFPARTIALFRACTIONSINTOTHEFORMWHERETHEQUANTITYISTHESUMOFTHEINFINITEGEOMETRICSERIESSOWEHAVEWENOWLOOKATTHECOEFFICIENTOFWHICHMUSTBEEQUALTOHENCEPHITHISISANIMPORTANTCLOSEDFORMEXPRESSIONFORTHEFIBONACCINUMBERSFIRSTDISCOVEREDEARLYINTHEEIGHTEENTHCENTURYSEEDBERNOULLIBERNOULLIDANIELCOMMENTACADSCIPETROPSEEALSOADEMOIVREPHILOSTRANSWHOSHOWEDHOWTOSOLVEGENERALLINEARRECURRENCESINESSENTIALLYTHEWAYWEHAVEDERIVEDFIBONACCIGFWECOULDHAVEMERELYSTATEDEQANDPROVEDITBYINDUCTIONHOWEVERTHEPOINTOFTHERATHERLONGDERIVATIONABOVEWASTOSHOWHOWITWOULDBEPOSSIBLETODISCOVERTHEEQUATIONINTHEFIRSTPLACEUSINGTHEIMPORTANTMETHODOFGENERATINGFUNCTIONSWHICHISAVALUABLETECHNIQUEFORSOLVINGAWIDEVARIETYOFPROBLEMSMANYTHINGSCANBEPROVEDFROMEQFIRSTWEOBSERVETHATISANEGATIVENUMBERWHOSEMAGNITUDEISLESSTHANUNITYSOGETSVERYSMALLASGETSLARGEINFACTTHEQUANTITYISALWAYSSMALLENOUGHSOTHATWEHAVEROUNDINGOTHERRESULTSCANBEOBTAINEDDIRECTLYFROMFOREXAMPLEANDTHECOEFFICIENTOFINISWEDEDUCETHEREFORETHATFIBCONVTHESECONDSTEPINTHISDERIVATIONFOLLOWSFROMTHERESULTOFEXERCISEEXERCISESWHATISTHEANSWERTOLEONARDOFIBONACCISORIGINALPROBLEMHOWMANYPAIRSOFRABBITSAREPRESENTAFTERAYEARAFTERMONTHSTHEREAREPAIRSSOTHEANSWERISPAIRSINVIEWOFEQWHATISTHEAPPROXIMATEVALUEOFUSELOGARITHMSFOUNDINAPPENDIXAISTIMESTHISORISTHEREFOREADIGITNUMBERWHOSELEADINGDIGITISWRITEACOMPUTERPROGRAMTHATCALCULATESANDPRINTSTHROUGHINDECIMALNOTATIONTHEPREVIOUSEXERCISEDETERMINESTHESIZEOFNUMBERSTHATMUSTBEHANDLEDFINDALLFORWHICHAFTERWARDSINCREASESTOOFASTFINDALLFORWHICHPROVEEQINDUCTIONTHEEQUATIONHOLDSFORNEGATIVEALSOSEEEXERCISEIFISNOTAPRIMENUMBERISNOTAPRIMENUMBERWITHONEEXCEPTIONPROVETHISANDFINDTHEEXCEPTIONPRIMENUMBERSIFISAPROPERDIVISOROFDIVIDESNOWISGREATERTHANONEANDLESSTHANPROVIDEDISGREATERTHANTHEONLYNONPRIMENUMBERGREATERTHANTHATHASNOPROPERFACTORGREATERTHANISISTHEONLYEXCEPTIONINMANYCASESITISCONVENIENTTODEFINEFORNEGATIVEBYASSUMINGTHATFORALLINTEGERSEXPLORETHISPOSSIBILITYWHATISWHATISCANBEEXPRESSEDINASIMPLEWAYINTERMSOFBYINDUCTIONONMUSINGTHECONVENTIONSOFEXERCISEDETERMINEWHETHEREQSANDSTILLHOLDWHENTHESUBSCRIPTSAREALLOWEDTOBEANYINTEGERSNOTTHEOTHERSAREVALIDBYANINDUCTIVEARGUMENTTHATPROVESSOMETHINGTRUEFORASSUMINGITTRUEFORANDGREATERISGREATERTHANORLESSTHANWHENISEVENITISGREATERWHENISODDITISLESSSEEEQFNPHIMSHOWTHATANDFORALLINTEGERSINDUCTIONSEEEXERCISETHISISASPECIALCASEOFEXERCISEASECONDORDERFIBMTHESECONDORDERFIBONACCISEQUENCEISDEFINEDBYTHERULEEXPRESSINTERMSOFANDHINTUSEGENERATINGFUNCTIONSGENERATINGFUNCTIONSIFHENCEFROMEQWEFINDMEXPRESSTHEFOLLOWINGSEQUENCESINTERMSOFTHEFIBONACCINUMBERSWHENANDAREGIVENCONSTANTSAFORBFORABSINCEWEMAYCONSIDERTHENEWSEQUENCEAPPLYINGPARTATOWEOBTAINTHEANSWERMLETBEAFIXEDPOSITIVEINTEGERFINDGIVENTHATMLETANDBEARBITRARYFUNCTIONSANDFORLETEXPRESSINTERMSOFANDFIBPASCALMFIBONACCINUMBERSAPPEARIMPLICITLYINPASCALSTRIANGLEIFSUMOFBINOMIALCOEFSITISVIEWEDFROMTHERIGHTANGLESHOWTHATTHEFOLLOWINGSUMOFBINOMIALCOEFFICIENTSISAFIBONACCINUMBERINDUCTIONANDMUSINGTHECONVENTIONSOFEXERCISEPROVETHEFOLLOWINGGENERALIZATIONOFEQINGENERALTHEQUANTITYISEQUALTOSETANDDIVIDEBYISALWAYSAFIBONACCINUMBERITISGOLDENANGLEMWHATISLETWEHAVEHENCEIEWECONCLUDETHATALSOANOTHERINTERESTINGANGLEISFORWHICHWEHAVEMEXPRESSINTERMSOFFIBONACCINUMBERSMWHATISMULTIPLYBYTHESOLUTIONISIFTHEDENOMINATORISZEROISORTHENTHESOLUTIONISMSHOWTHATISAFIBONACCINUMBERWHENSETINTHENEXTEXERCISEMGENERALIZINGTHEPRECEDINGEXERCISESHOWTHATISALWAYSAFIBONACCINUMBERWHENEVALUATETHEDETERMINANTEXPANDBYCOFACTORSINTHEFIRSTROWMSHOWTHATMUSINGTHEPREVIOUSEXERCISESHOWTHATIFISANODDPRIMEBYFERMATSTHEOREMNOWAPPLYTHEPREVIOUSEXERCISEANDEXERCISEBINOMMODPBMUSINGTHEPREVIOUSEXERCISESHOWTHATIFISAPRIMEDIFFERENTFROMTHENEITHERORNOTBOTHISAMULTIPLEOFPRIMENUMBERSTHESTATEMENTISTRUEIFOTHERWISEHENCEFROMTHEPREVIOUSEXERCISEANDFERMATSTHEOREMONLYONEOFTHESEFACTORSCANBEAMULTIPLEOFSINCEPHIFIBDIFFMWHATISNOTETHESOLUTIONTOTHERECURRENCEISMFIBONOMIALCOEFFICIENTSEDOUARDLUCASDEFINEDTHEBINOMIALCOEFSGENERALIZEDQUANTITIESINAMANNERANALOGOUSTOBINOMIALCOEFFICIENTSAMAKEATABLEOFFORBSHOWTHATISALWAYSANINTEGERBECAUSEWEHAVEAPARTBFOLLOWSFROMELUCASAMERJMATHFIBPOWERRECMDJARDENTMOTZKINTHESEQUENCEOFTHPOWERSOFFIBONACCINUMBERSSATISFIESARECURRENCERELATIONINWHICHEACHTERMDEPENDSONTHEPRECEDINGTERMSSHOWTHATFOREXAMPLEWHENWEGETTHEIDENTITYWEARGUEBYINDUCTIONONTHESTATEMENTBEINGOBVIOUSWHENABCSINCEANDWECONCLUDEFROMAANDBTHATDSINCETHERESULTFOLLOWSFROMAANDCTHISRESULTMAYALSOBEPROVEDINSLIGHTLYMOREGENERALFORMBYUSINGTHENOMIALTHEOREMOFEXERCISEQNOMIALTHMREFERENCESDOVJARDENRECURRINGSEQUENCESNDEDJERUSALEMJRIORDANDUKEMATHJSHOWTHATANDWHENUSEEXERCISESANDMTHEREMAINDEROFONEFIBONACCINUMBERDIVIDEDBYANOTHERISAFIBONACCINUMBERSHOWTHATMODULOMODULOTHEFIBONACCISEQUENCEISGIVENTHATSHOWTHATNOTETHATFORTHISPARTICULARTHENUSETHEFACTTHATFORALLFIBNOSYSTMTHEFIBONACCINUMBERSYSTEMLETTHENOTATIONMEANTHATSHOWTHATEVERYPOSITIVEINTEGERHASAUNIQUEREPRESENTATIONWHEREPROVETHATTHEONLYPOSSIBLEVALUEFORISTHELARGESTFIBONACCINUMBERLESSTHANOREQUALTOHENCEISLESSTHANANDBYINDUCTIONTHEREISAUNIQUEREPRESENTATIONOFTHEOUTLINEOFTHISPROOFISQUITESIMILARTOTHEPROOFOFTHEUNIQUEFACTORIZATIONTHEOREMTHEFIBONACCINUMBERSYSTEMISDUETOEZECKENDORFSEESIMONSTEVINBULLSOCROYALEDESSCIENCESDELIEGEBUTSECTIONPOINTSOUTTHATITWASIMPLICITLYKNOWNINTHCENTURYINDIAFORGENERALIZATIONSSEEEXERCISEOSTNOSYSTEXERCISEGENFIBNOSYSTANDSECTIONPHINOSYSTMAPHINUMBERSYSTEMCONSIDERREALNUMBERSWRITTENWITHTHEDIGITSANDUSINGBASETHUSSHOWTHATTHEREAREINFINITELYMANYWAYSTOREPRESENTTHENUMBERFOREXAMPLEBUTIFWEREQUIRETHATNOTWOADJACENTSOCCURANDTHATTHEREPRESENTATIONDOESNOTENDWITHTHEINFINITESEQUENCETHENEVERYNONNEGATIVENUMBERHASAUNIQUEREPRESENTATIONWHATARETHEREPRESENTATIONSOFINTEGERSSEEGMBERGMANMATHEMATICSMAGAZINETOREPRESENTFINDTHELARGESTWITHANDREPRESENTASPLUSTHEREPRESENTATIONOFTHEREPRESENTATIONOFNONNEGATIVEINTEGERSCANALSOBEOBTAINEDFROMTHEFOLLOWINGALLINTEGERRECURSIVERULESSTARTINGWITHTHETRIVIALREPRESENTATIONSOFANDLETLUCASNUMBERSTHEREPRESENTATIONOFFORANDISPLUSTHEREPRESENTATIONOFTHEREPRESENTATIONOFFORANDISPLUSTHEREPRESENTATIONOFWHERETHELATTERISOBTAINEDBYAPPLYINGTHERULEITTURNSOUTTHATALLSTRINGSOFSANDSSUCHTHATBEGINSWITHANDHASNOADJACENTSOCCURTOTHELEFTOFTHERADIXPOINTINTHEREPRESENTATIONOFEXACTLYONEPOSITIVEINTEGEREXCEPTFORTHESTRINGSTHATENDWITHTHELATTERSTRINGSNEVEROCCURINSUCHREPRESENTATIONSFIBSTRINGMFIBONACCISTRINGSLETANDINOTHERWORDSSTRINGSISFORMEDBYPLACINGATTHERIGHTOFWEHAVEETCCLEARLYHASLETTERSEXPLORETHEPROPERTIESOFWHEREDODOUBLELETTERSOCCURCANYOUPREDICTTHEVALUEOFTHETHLETTEROFWHATISTHEDENSITYOFTHESANDSOONWEMAYCONSIDERTHEINFINITESTRINGSINCEFORCONSISTSOFTHEFIRSTLETTERSOFTHEREARENODOUBLESNOTRIPLESTHESTRINGCONTAINSSANDSIFWEEXPRESSINTHEFIBONACCINUMBERSYSTEMASINEXERCISETHETHLETTEROFISIFANDONLYIFTHETHLETTEROFISIFANDONLYIFTHENUMBEROFSINTHEFIRSTLETTERSISTHEREFOREALSOTHETHLETTERISIFANDONLYIFFORSOMEPOSITIVEINTEGERTHISSEQUENCEWASSTUDIEDBYJOHNBERNOULLIIIIINTHETHCENTURYBYAAMARKOVINTHETHANDBYMANYOTHERMATHEMATICIANSSINCETHENSEEKBSTOLARSKYCANADIANMATHBULLMREGASKELLMJWHINIHANTWOPLAYERSCOMPETEINTHEFOLLOWINGGAMETHEREISAPILECONTAININGCHIPSTHEFIRSTPLAYERREMOVESANYNUMBEROFCHIPSEXCEPTTHATHECANNOTTAKETHEWHOLEPILEFROMTHENONTHEPLAYERSALTERNATEMOVESEACHPERSONREMOVINGONEORMORECHIPSBUTNOTMORETHANTWICEASMANYCHIPSASTHEPRECEDINGPLAYERHASTAKENTHEPLAYERWHOREMOVESTHELASTCHIPWINSFOREXAMPLESUPPOSETHATPLAYERREMOVESCHIPSPLAYERMAYREMOVEUPTOCHIPSANDHETAKESTHEREREMAINCHIPSPLAYERMAYTAKEORCHIPSANDHETAKESPLAYERMAYREMOVEUPTOANDHEPICKSUPTHEREREMAINCHIPSPLAYERNOWTAKESPLAYERMUSTTAKEATLEASTONECHIPANDPLAYERWINSINTHEFOLLOWINGTURNWHATISTHEBESTMOVEFORTHEFIRSTPLAYERTOMAKEIFTHEREAREINITIALLYCHIPSFIBONACCIQUARTERLYDECEMBERCONSIDERTHEFIBONACCINUMBERSYSTEMOFEXERCISEIFINTHATSYSTEMLETALSOLETWEFINDTHATAIFPROOFSINCEBIFPROOFLETCIFPROOFTHISFOLLOWSFROMBDIFPROOFSETINCNOWWEWILLPROVETHATIFTHEREARECHIPSANDIFATMOSTMAYBETAKENINTHENEXTTURNTHEREISAWINNINGMOVEIFANDONLYIFPROOFAIFALLMOVESLEAVEAPOSITIONWITHTHISFOLLOWSFROMDABOVEBIFWECANEITHERWINONTHISMOVEIFORWECANMAKEAMOVETHATLEAVESAPOSITIONWITHTHISFOLLOWSFROMAABOVEOURMOVEISTOTAKECHIPSITCANBESEENTHATTHESETOFALLWINNINGMOVESIFISTOREMOVEFORSOMEWITHPROVIDEDTHATORTHEFIBONACCIREPRESENTATIONOFISTHEONLYLUCKYMOVETOFORCEAVICTORYISTOTAKECHIPSTHEFIRSTPLAYERCANALWAYSWINUNLESSISAFIBONACCINUMBERTHESOLUTIONTOCONSIDERABLYMOREGENERALGAMESOFTHISTYPEHASBEENOBTAINEDBYASCHWENKFIBONACCIQUARTERLYWRITEACOMPUTERPROGRAMTHATPLAYSTHEGAMEDESCRIBEDINTHEPREVIOUSEXERCISEANDPLAYSITOPTIMALLYMFINDACLOSEDFORMEXPRESSIONFORGIVENTHATANDFORMSOLVETHERECURRENCEWEPROVEBYINDUCTIONONTHATFORFIRSTSECONDIFTHEREISSOMEWITHHENCEANDHENCEBUTTHENTHUSTHEFIBONACCITREESDEFINEDINSECTIONMINIMIZETHEMAXIMUMROOTTOLEAFCOSTWHENARIGHTBRANCHCOSTSTWICEASMUCHASALEFTBRANCHMYURIMATIYASEVICHLETPROVETHATIFISTHEREPRESENTATIONOFINTHEFIBONACCINUMBERSYSTEMOFEXERCISETHENFINDASIMILARFORMULAFORISANINTEGERANDTHEPARENTHESIZEDQUANTITYLIESBETWEENANDSIMILARLYSUCHFIBONACCISHIFTINGISACONVENIENTWAYTOCONVERTMENTALLYBETWEENMILESANDKILOMETERSSEECMATHMDAKLARNERSHOWTHATIFANDARENONNEGATIVEINTEGERSTHEREISAUNIQUESEQUENCEOFINDICESSUCHTHATSEEEXERCISETHESMAYBENEGATIVEANDMAYBEZEROFIBONACCIQUARTERLYIFSUCHAREPRESENTATIONEXISTSWEHAVEFORALLINTEGERSHENCETWODIFFERENTREPRESENTATIONSWOULDCONTRADICTEXERCISECONVERSELYWECANPROVETHEEXISTENCEOFSUCHJOINTREPRESENTATIONSFORALLNONNEGATIVEANDBYINDUCTIONBUTITISMOREINTERESTINGTOUSETHEPREVIOUSEXERCISEANDTOPROVETHATSUCHJOINTREPRESENTATIONSEXISTFORPOSSIBLYNEGATIVEINTEGERSANDIFANDONLYIFLETBELARGEENOUGHSOTHATANDREPRESENTASINTHENANDITFOLLOWSTHATHOLDSFORALLNOWSETANDPHIFIBONACCINUMBERSGENERATINGFUNCTIONSWHENEVERWEWANTTOOBTAININFORMATIONABOUTASEQUENCEOFNUMBERSGENERATINGFUNCTIONSWECANSETUPANINFINITESUMINTERMSOFAPARAMETERWECANTHENTRYTOOBTAININFORMATIONABOUTTHEFUNCTIONTHISFUNCTIONISASINGLEQUANTITYTHATREPRESENTSTHEWHOLESEQUENCEIFTHESEQUENCEHASBEENDEFINEDINDUCTIVELYTHATISIFHASBEENDEFINEDINTERMSOFTHISISANIMPORTANTADVANTAGEFURTHERMOREWECANRECOVERTHEINDIVIDUALVALUESOFFROMTHEFUNCTIONASSUMINGTHATTHEINFINITESUMINEQEXISTSFORSOMENONZEROVALUEOFBYUSINGTECHNIQUESOFDIFFERENTIALCALCULUSWECALLTHEGENERATINGFUNCTIONFORTHESEQUENCETHEUSEOFGENERATINGFUNCTIONSOPENSUPAWHOLENEWRANGEOFTECHNIQUESANDITBROADLYINCREASESOURCAPACITYFORPROBLEMSOLVINGASMENTIONEDINTHEPREVIOUSSECTIONADEMOIVREINTRODUCEDGENERATINGFUNCTIONSINORDERTOSOLVETHEGENERALLINEARRECURRENCEPROBLEMDEMOIVRESTHEORYWASEXTENDEDTOSLIGHTLYMORECOMPLICATEDRECURRENCESBYRECURRENCESJAMESSTIRLINGWHOSHOWEDHOWTOAPPLYDIFFERENTIATIONANDINTEGRATIONASWELLASARITHMETICOPERATIONSMETHODUSDIFFERENTIALISLONDONPROPOSITIONAFEWYEARSLATERLEULERBEGANTOUSEGENERATINGFUNCTIONSINSEVERALNEWWAYSFOREXAMPLEINHISPAPERSONPARTITIONSCOMMENTARIIACADSCIPETNOVICOMMENTACADSCIPETPIERRESLAPLACEDEVELOPEDTHETECHNIQUESFURTHERINHISCLASSICWORKTHEORIEANALYTIQUEDESPROBABILITESPARISTHEQUESTIONOFCONVERGENCEOFTHEINFINITESUMISOFSOMECONVERGENCEOFPOWERSERIESIMPORTANCEANYTEXTBOOKABOUTTHETHEORYOFINFINITESERIESWILLPROVETHATAIFTHESERIESCONVERGESFORAPARTICULARVALUEOFTHENITCONVERGESFORALLVALUESOFWITHBTHESERIESCONVERGESFORSOMEIFANDONLYIFTHESEQUENCEISBOUNDEDIFTHISCONDITIONISNOTSATISFIEDWEMAYBEABLETOGETACONVERGENTSERIESFORTHESEQUENCEORFORSOMEOTHERRELATEDSEQUENCEONTHEOTHERHANDITOFTENDOESNOTPAYTOWORRYABOUTCONVERGENCEOFTHESERIESWHENWEWORKWITHGENERATINGFUNCTIONSSINCEWEAREONLYEXPLORINGPOSSIBLEAPPROACHESTOTHESOLUTIONOFSOMEPROBLEMWHENWEDISCOVERTHESOLUTIONBYANYMEANSHOWEVERSLOPPYWEMAYBEABLETOJUSTIFYTHESOLUTIONINDEPENDENTLYFOREXAMPLEINTHEPREVIOUSSECTIONWEUSEDAGENERATINGFUNCTIONTODEDUCEEQDEMOIVREFIBYETONCESUCHANEQUATIONHASBEENFOUNDITISASIMPLEMATTERTOPROVEITBYINDUCTIONANDWENEEDNOTEVENMENTIONTHATWEUSEDGENERATINGFUNCTIONSTODISCOVERITFURTHERMOREONECANSHOWTHATMOSTIFNOTALLOFTHEOPERATIONSWEDOWITHGENERATINGFUNCTIONSCANBERIGOROUSLYJUSTIFIEDWITHOUTREGARDTOTHECONVERGENCEOFTHESERIESSEEFOREXAMPLEETBELLTRANSAMERMATHSOCIVANNIVENAMMPETERHENRICIAPPLIEDANDCOMPUTATIONALCOMPLEXANALYSISWILEYCHAPTERLETUSNOWSTUDYTHEPRINCIPALTECHNIQUESUSEDWITHGENERATINGFUNCTIONSAADDITIONIFISTHEGENERATINGFUNCTIONFORANDISTHEGENERATINGFUNCTIONFORTHENISTHEGENERATINGFUNCTIONFORBSHIFTINGIFISTHEGENERATINGFUNCTIONFORTHENISTHEGENERATINGFUNCTIONFORTHELASTSUMMATIONMAYBEEXTENDEDOVERALLIFWEREGARDFORANYNEGATIVEVALUEOFSIMILARLYISTHEGENERATINGFUNCTIONFORWECOMBINEDOPERATIONSAANDBTOSOLVETHEFIBONACCIPROBLEMINTHEPREVIOUSSECTIONWASTHEGENERATINGFUNCTIONFORFORFORANDFORTHENSINCEISZEROWHENWEFOUNDTHATISAPOLYNOMIALSIMILARLYGIVENANYLINEARLYRECURRENTLINEARRECURRENCESEQUENCETHATISASEQUENCEWHERETHEGENERATINGFUNCTIONWILLBEAPOLYNOMIALDIVIDEDBYLETUSCONSIDERTHESIMPLESTNONTRIVIALEXAMPLEOFALLIFISTHEGENERATINGFUNCTIONFORTHECONSTANTSEQUENCETHENGENERATESTHESEQUENCESOTHISGIVESUSTHESIMPLEBUTVERYGEOMETRICPROGRESSIONIMPORTANTFORMULACMULTIPLICATIONIFISTHEGENERATINGFUNCTIONFORANDISTHEGENERATINGFUNCTIONFORTHENTHUSISTHEGENERATINGFUNCTIONFORTHESEQUENCEWHEREEQUATIONISAVERYSPECIALCASEOFTHISANOTHERIMPORTANTSPECIALCASEOCCURSWHENEACHISEQUALTOUNITYHEREWEHAVETHEGENERATINGFUNCTIONFORTHESUMSOFTHEORIGINALSEQUENCETHERULEFORAPRODUCTOFTHREEFUNCTIONSFOLLOWSFROMGENERATESWHERETHEGENERALRULEFORPRODUCTSOFANYNUMBEROFFUNCTIONSWHENEVERTHISISMEANINGFULISWHENTHERECURRENCERELATIONFORSOMESEQUENCEINVOLVESBINOMIALCOEFFICIENTSRECURRENCESEXPONENTIALGENERATINGFUNCTIONWEOFTENWANTTOGETAGENERATINGFUNCTIONFORASEQUENCEDEFINEDBYINTHISCASEITISUSUALLYBETTERTOUSEGENERATINGFUNCTIONSFORTHESEQUENCESSINCEWEHAVEWHEREISGIVENBYEQDCHANGEOFZCLEARLYISTHEGENERATINGFUNCTIONFORTHESEQUENCEASAPARTICULARCASETHEGENERATINGFUNCTIONFORISTHEREISAFAMILIARTRICKFOREXTRACTINGALTERNATETERMSOFASERIESUSINGCOMPLEXROOTSOFUNITYWECANEXTENDTHISIDEAANDEXTRACTEVERYTHTERMLETWEHAVESEEEXERCISEFOREXAMPLEIFANDWEHAVEACOMPLEXCUBEROOTOFUNITYITFOLLOWSTHATEDIFFERENTIATIONANDINTEGRATIONTHETECHNIQUESOFCALCULUSGIVEUSFURTHEROPERATIONSIFISGIVENBYEQTHEDERIVATIVEISTHEGENERATINGFUNCTIONFORTHESEQUENCEISHENCEWECANCOMBINETHETHTERMOFASEQUENCEWITHPOLYNOMIALSINBYMANIPULATINGTHEGENERATINGFUNCTIONREVERSINGTHEPROCESSINTEGRATIONGIVESANOTHERUSEFULOPERATIONLOGSERIESASSPECIALCASESWEHAVETHEDERIVATIVEANDINTEGRALOFWECANCOMBINETHESECONDFORMULAWITHEQTOGETTHEGENERATINGFUNCTIONFORTHEHARMONICNUMBERSHARMONICNUMBERSGFFKNOWNGENERATINGFUNCTIONSWHENEVERITISPOSSIBLETODETERMINETHEPOWERSERIESEXPANSIONOFAFUNCTIONWEHAVEIMPLICITLYFOUNDTHEGENERATINGFUNCTIONFORAPARTICULARSEQUENCETHESESPECIALFUNCTIONSCANBEQUITEUSEFULINCONJUNCTIONWITHTHEOPERATIONSDESCRIBEDABOVETHEMOSTIMPORTANTPOWERSERIESEXPANSIONSAREGIVENINTHEFOLLOWINGLISTIBINOMIALTHEOREMWHENISANEGATIVEINTEGERWEGETASPECIALCASEALREADYREFLECTEDINEQSANDBINOMIALCOEFSGFTHEREISALSOAGENERALIZATIONWHICHWASPROVEDINEXERCISEGENBINOMBINOMIALTHEOREMGENERALIZEDIFISTHECONTINUOUSFUNCTIONOFTHATSOLVESTHEEQUATIONWHEREWHENIIEXPONENTIALSERIESINGENERALWEHAVETHEFOLLOWINGFORMULAINVOLVINGSTIRLINGNUMBERSSTIRLINGNUMBERSGFIIILOGARITHMSERIESSEEANDLOGARITHMPOWERSERIESSTIRLINGNUMBERSASINGIVEUSAMOREGENERALEQUATIONFURTHERGENERALIZATIONSINCLUDINGMANYSUMSOFHARMONICNUMBERSAPPEARINPAPERSBYDAZAVEINFPROCLETTERSJSPIESMATHCOMPIVMISCELLANEOUSSTIRLGFSTIRLGFTHECOEFFICIENTSTHATAPPEARINTHELASTFORMULAARETHEBERNOULLINUMBERSTHEYWILLBEEXAMINEDFURTHERINSECTIONATABLEOFBERNOULLINUMBERSAPPEARSINAPPENDIXATHENEXTIDENTITYANALOGOUSTOWILLBEPROVEDINEXERCISEABELANDTREESIFISTHECONTINUOUSFUNCTIONOFTHATSOLVESTHEEQUATIONWHEREWHENSIGNIFICANTGENERALIZATIONSOFANDAREDISCUSSEDINEXERCISEINDUCEDFUNCGEXTRACTINGACOEFFICIENTBRACKETNOTATIONFORCOEFFICIENTSCOEFFICIENTEXTRACTIONITISOFTENCONVENIENTTOUSETHENOTATIONFORTHECOEFFICIENTOFINFOREXAMPLEIFISTHEGENERATINGFUNCTIONINWEHAVEANDONEOFTHEMOSTFUNDAMENTALRESULTSINTHETHEORYOFCOMPLEXVARIABLESISAFORMULAOFALCAUCHYEXERCICESDEMATHOEUVRESEQBYWHICHWECANEXTRACTANYDESIREDCOEFFICIENTWITHTHEHELPOFACONTOURINTEGRALIFCONVERGESFORANDTHEBASICIDEAISTHATISZEROFORALLINTEGERSEXCEPTWHENTHEINTEGRALISEQUATIONISOFIMPORTANCEPRIMARILYWHENWEWANTTOSTUDYTHEAPPROXIMATEVALUEOFACOEFFICIENTWECONCLUDETHISSECTIONBYRETURNINGTOAPROBLEMTHATWASONLYPARTIALLYSYMMETRICFUNCTIONSSOLVEDINSECTIONWESAWINEQSUMHANDEXERCISESUMHTHATINGENERALSUPPOSETHATWEHAVENUMBERSANDWEWANTTHESUMIFPOSSIBLETHISSUMSHOULDBEEXPRESSEDINTERMSOFWHERETHESUMOFTHPOWERSUSINGTHISMORECOMPACTNOTATIONTHEFORMULASABOVEBECOMEWECANATTACKTHISPROBLEMBYSETTINGUPTHEGENERATINGFUNCTIONBYOURRULESFORMULTIPLYINGSERIESWEFINDTHATSOISTHERECIPROCALOFAPOLYNOMIALITOFTENHELPSTOTAKETHELOGARITHMOFAPRODUCTANDWEFINDFROMTHATNOWHASBEENEXPRESSEDINTERMSOFTHESSOALLWEMUSTDOTOOBTAINTHEANSWERTOOURPROBLEMISTOCOMPUTETHEPOWERSERIESEXPANSIONOFAGAINWITHTHEHELPOFANDSYMHTHEPARENTHESIZEDQUANTITYISTHISRATHERIMPOSINGSUMISREALLYNOTCOMPLICATEDWHENITISEXAMINEDCAREFULLYTHENUMBEROFTERMSFORAPARTICULARVALUEOFISTHENUMBEROFPARTITIONSOFSECTIONFOREXAMPLEONEPARTITIONOFISTHISCORRESPONDSTOASOLUTIONOFTHEEQUATIONWHEREISTHENUMBEROFSINTHEPARTITIONINOUREXAMPLEANDTHEOTHERSAREZEROSOWEGETTHETERMASPARTOFTHEEXPRESSIONFORBYDIFFERENTIATINGITISNOTDIFFICULTTODERIVETHERECURRENCEANENJOYABLEINTRODUCTIONTOTHEAPPLICATIONSOFGENERATINGFUNCTIONSHASBEENGIVENBYGPOLYAONPICTUREWRITINGAMMHISAPPROACHISCONTINUEDINCMATHCHAPTERSEEALSOTHEBOOKGENERATINGFUNCTIONOLOGYBYHSWILFSECONDEDITIONACADEMICPRESSAGENERATINGFUNCTIONISACLOTHESLINEONWHICHWEHANGUPASEQUENCEOFNUMBERSFORDISPLAYHSWILFEXERCISESMWHATISTHEGENERATINGFUNCTIONFORTHESEQUENCEMPROVEEQITFOLLOWSFROMSINCEDIFFERENTIATETHEGENERATINGFUNCTIONFORANDCOMPARETHISWITHTHEGENERATINGFUNCTIONFORWHATRELATIONCANYOUDEDUCEFROMTHISANDTHESIGNIFICANCEOFWEHAVETHISAGREESWITHEQSUMHARMMEXPLAINWHYEQISASPECIALCASEOFEQPUTMPROVEEQBYINDUCTIONONTHECOEFFICIENTOFISBYANDNOWAPPLYEQSSTIRLADDANDSTIRLEXPANDORDIFFERENTIATEANDUSESTIRLADDFINDTHEGENERATINGFUNCTIONFORDIFFERENTIATEITANDEXPRESSTHECOEFFICIENTSINTERMSOFHARMONICNUMBERSTHEDERIVATIVEISTWICETHEGENERATINGFUNCTIONFORTHEHARMONICNUMBERSTHESUMISTHEREFOREMVERIFYALLTHESTEPSLEADINGTOEQMFINDTHEGENERATINGFUNCTIONFORTHENUMBEROFPARTITIONSOFPARTITIONSGFTHISISHISTORICALLYONEOFTHEFIRSTAPPLICATIONSOFGENERATINGFUNCTIONSFORANINTERESTINGACCOUNTOFLEULERSEIGHTEENTHCENTURYRESEARCHESCONCERNINGTHISGENERATINGFUNCTIONSEEGPOLYAINDUCTIONANDANALOGYINMATHEMATICSPRINCETONPRINCETONUNIVERSITYPRESSCHAPTERMINTHENOTATIONOFEQSANDWHATISINTERMSOFANDELEMSYMMANELEMENTARYSYMMETRICFUNCTIONISDEFINEDBYTHEFORMULATHISISTHESAMEASOFEQEXCEPTTHATEQUALSUBSCRIPTSARENOTALLOWEDFINDTHEGENERATINGFUNCTIONFORANDEXPRESSINTERMSOFTHEINEQWRITEOUTTHEFORMULASFORANDTAKINGLOGARITHMSASINTHEDERIVATIONOFEQWEHAVETHESAMEFORMULASEXCEPTTHATREPLACESANDTHEANSWERISEXACTLYTHESAMEEXCEPTTHATAREREPLACEDBYWEHAVESEEEXERCISETHERECURRENCEANALOGOUSTOISNOTETHEEQUATIONSINTHISRECURRENCEARECALLEDNEWTONSIDENTITIESSINCETHEYWEREFIRSTPUBLISHEDINISAACNEWTONSARITHMETICAUNIVERSALISSEEDJSTRUIKSSOURCEBOOKINMATHEMATICSHARVARDUNIVERSITYPRESSHSYMMEQUATIONCANALSOBEUSEDTOEXPRESSTHESINTERMSOFTHESWEFINDETCWHATISTHECOEFFICIENTOFINTHISREPRESENTATIONOFWHENSYMMETRICFUNCTIONSSINCETHEDESIREDCOEFFICIENTISMULTIPLYBYTOGETTHECOEFFICIENTOFWHENISEXPRESSEDINTERMSOFTHESOFEXERCISEALBERTGIRARDSTATEDTHEFORMULASFORANDINTERMSOFANDNEARTHEENDOFHISELEMENTARYSYMMETRICFUNCTIONSINVENTIONNOUVELLEENALGEBREAMSTERDAMTHISWASTHEBIRTHOFTHETHEORYOFSYMMETRICFUNCTIONSMSUPPOSEWEHAVEADOUBLYSUBSCRIPTEDSEQUENCEFORBINOMIALCOEFSGFDOUBLEGENERATINGFUNCTIONSHOWHOWTHISDOUBLESEQUENCECANBEREPRESENTEDBYASINGLEGENERATINGFUNCTIONOFTWOVARIABLESANDDETERMINETHEGENERATINGFUNCTIONFORTHELAPLACETRANSFORMOFAFUNCTIONISTHEFUNCTIONGIVENTHATISANINFINITESEQUENCEHAVINGACONVERGENTGENERATINGFUNCTIONLETBETHESTEPFUNCTIONEXPRESSTHELAPLACETRANSFORMOFINTERMSOFTHEGENERATINGFUNCTIONFORTHISSEQUENCEADDINGTHESEEXPRESSIONSTOGETHERFORALLWEFINDPROVEEQSEEEXERCISERAMUSSUMDISGUISEDCHEBPOLYMBYCONSIDERINGFINDACLOSEDFORMFORTHEGENERATINGFUNCTIONSOWEFINDHENCEULTIMATELYWEFINDFORMGIVEASIMPLEFORMULAFORTHEGENERATINGFUNCTIONWHEREISTHENUMBEROFWAYSTOCHOOSEOUTOFOBJECTSSUBJECTTOTHECONDITIONTHATEACHOBJECTMAYBECHOSENATMOSTTIMESIFWEHAVEWAYSCOMBINATIONSWITHRESTRICTEDREPETITIONSANDIFWEHAVETHENUMBEROFCOMBINATIONSWITHREPETITIONSASINEXERCISECOMBWITHREPNOTETHECASEMWHATARETHECOEFFICIENTSOFIFTHISFUNCTIONISEXPANDEDINTOADOUBLEPOWERSERIESINTERMSOFBOTHANDALTERNATIVELYWRITEITASANDEXPANDFIRSTBYPOWERSOFMGIVENPOSITIVEINTEGERSANDFINDASIMPLEFORMULAFORTHEVALUEOFTHEFOLLOWINGSUMSABFOREXAMPLEWHENANDTHESUMSARERESPECTIVELYANDAFORFIXEDANDVARYINGTHEGENERATINGFUNCTIONISBYEQHENCETHEANSWERISBSIMILARLYTHEGENERATINGFUNCTIONISBYEQSOTHEANSWERISRATHARMCFGAUSSTHESUMSOFTHEFOLLOWINGINFINITESERIESAREWELLKNOWNUSINGTHEDEFINITIONFOUNDINTHEANSWERTOEXERCISEGAMMAINFPRODTHESESERIESMAYBEWRITTENRESPECTIVELYASPROVETHATINGENERALHASTHEVALUEWHENANDAREINTEGERSWITHHINTBYABELSLIMITTHEOREMTHESUMISUSEEQTOEXPRESSTHISPOWERSERIESINSUCHAWAYTHATTHELIMITCANBEEVALUATEDWHEREANDNOWFROMTHEIDENTITYWEMAYWRITEWHEREFINALLYGAUSSDERIVEDTHESERESULTSINOFHISMONOGRAPHONHYPERGEOMETRICSERIESEQBUTWITHINSUFFICIENTPROOFABELPROVIDEDAJUSTIFICATIONINCRELLEMFORWHATCOEFFICIENTSISBYEQSTIRLSUMSETUPTHEGENERATINGFUNCTIONFORTHESEQUENCEANDSTUDYPROPERTIESOFTHISFUNCTIONWEFINDTHESOLUTIONTOTHISDIFFERENTIALEQUATIONISWHEREEXPONENTIALINTEGRALANDISACONSTANTTHISFUNCTIONISVERYILLBEHAVEDINTHENEIGHBORHOODOFANDHASNOPOWERSERIESEXPANSIONINDEEDSINCEISNOTBOUNDEDTHEGENERATINGFUNCTIONDOESNOTCONVERGEINTHISCASEITISHOWEVERANASYMPTOTICEXPANSIONFORTHESTATEDFUNCTIONWHENSEEKKNOPPINFINITESEQUENCESANDSERIESSECONDEDITIONBLACKIESECTIONMFINDAGENERATINGFUNCTIONFORWHICHITFOLLOWSTHATTHESTATEDSUMISMLCARLITZAPROVETHATFORALLINTEGERSTHEREAREPOLYNOMIALSANDSUCHTHATTHEFORMULAISANIDENTITYFORALLINTEGERSBGENERALIZINGEXERCISEFINDACLOSEDFORMFORTHESUMINTERMSOFTHEFUNCTIONSANDINPARTACFINDASIMPLEEXPRESSIONFORWHENAWHENTHISISTHEBINOMIALTHEOREMWITHANDWHENWECANINCREASEBYIFWEREPLACEBYANDLETTHUSANDCONTINUEDFRACTIONSBOTHPOLYNOMIALSANDSATISFYTHESAMERECURRENCEWITHTHEINITIALCONDITIONSITFOLLOWSTHATISTHESUMOFALLTERMSOBTAINABLEBYSTARTINGWITHANDSTRIKINGOUTZEROORMORENONADJACENTFACTORSTHEREAREWAYSTODOTHISASIMILARINTERPRETATIONAPPLIESTOEXCEPTTHATMUSTREMAININPARTBWEWILLENCOUNTERTHEPOLYNOMIALTHISISTHESUMOFALLTERMSOBTAINEDFROMBYSTRIKINGOUTFACTORSTHATARENOTCYCLICALLYADJACENTFOREXAMPLEBBYPARTAHENCEWHEREMULTIPLYINGTHISEQUATIONBYANDSUMMINGFIRSTONTHENONTHENONYIELDSTHECLOSEDFORMWHEREHEREANDSIMPLIFIESTOWEHAVEINCIDENTALLYESTABLISHEDTHERECURRENCEARELATIONTHATISNOTEASYTODERIVEWITHOUTTHEHELPOFGENERATINGFUNCTIONSCLETANDBETHEROOTSWHENTHENANDCARLITZUSEDTHISRESULTTODEDUCEASURPRISINGFACTTHECHARACTERISTICPOLYNOMIALDETOFTHEMATRIXPASCALSTRIANGLEOFRIGHTJUSTIFIEDBINOMIALCOEFFICIENTSISWITHFIBONOMIALCOEFFICIENTSSEEEXERCISEFIBPOWERRECHEALSOSHOWEDUSINGSIMILARMETHODSTHATCOLLECTANEAMATHEMATICAMPROVETHATIFISANYGENERATINGFUNCTIONWEHAVEEVALUATEBOTHSIDESOFTHISIDENTITYWHENISABBOTHSIDESAREEQUALTOWHENTHEIDENTITYBECOMESACASEOFVANDERMONDECONWHENITBECOMESEQSTIRLSUMMEVALUATETHESUMBYBINOMIALCOEFSSUMSSIMPLIFYINGTHEEQUIVALENTFORMULAWHICHEQUALSSIMILARLYWEFINDMANYEXAMPLESOFTHISSUMMATIONTECHNIQUECANBEFOUNDINGPEGORYCHEVSBOOKINTEGRALREPRESENTATIONANDTHECOMPUTATIONOFCOMBINATORIALSUMSAMERMATHSOCTRANSLATEDFROMTHERUSSIANEDITIONOFMEXPLOREAGENERALIZATIONOFTHENOTATIONACCORDINGTOWHICHWEMIGHTWRITEFOREXAMPLEWHENISGIVENBYDENOTESTHECONSTANTTERMOFSEETHEDISCUSSIONBYDEKNUTHINACLASSICALMINDPRENTICEHALLGENERATINGFUNCTIONSMIXINMANYPLACESTHROUGHOUTTHISBOOKWEWILLHAVEMIXOCCASIONTOREFERTOACOMPUTERSINTERNALMACHINELANGUAGETHEMACHINEWEUSEISAMYTHICALCOMPUTERCALLEDISVERYMUCHLIKENEARLYEVERYCOMPUTEROFTHESANDSEXCEPTTHATITISPERHAPSNICERTHELANGUAGEOFHASBEENDESIGNEDTOBEPOWERFULENOUGHTOALLOWBRIEFPROGRAMSTOBEWRITTENFORMOSTALGORITHMSYETSIMPLEENOUGHSOTHATITSOPERATIONSAREEASILYLEARNEDTHEREADERISURGEDTOSTUDYTHISSECTIONCAREFULLYSINCELANGUAGEAPPEARSINSOMANYPARTSOFTHISBOOKTHERESHOULDBENOHESITATIONABOUTLEARNINGAMACHINELANGUAGEINDEEDTHEAUTHORONCEFOUNDITNOTUNCOMMONTOBEWRITINGPROGRAMSINAHALFDOZENDIFFERENTMACHINELANGUAGESDURINGTHESAMEWEEKEVERYONEWITHMORETHANACASUALINTERESTINCOMPUTERSWILLPROBABLYGETTOKNOWATLEASTONEMACHINELANGUAGESOONERORLATERHASBEENSPECIALLYDESIGNEDTOPRESERVETHESIMPLESTASPECTSOFHISTORICCOMPUTERSSOTHATITSCHARACTERISTICSAREEASYTOASSIMILATEHOWEVERITMUSTBEADMITTEDTHATISNOWQUITEOBSOLETETHEREFOREWILLBEREPLACEDINSUBSEQUENTEDITIONSOFTHISBOOKBYANEWMACHINECALLEDTHEWILLBEASOCALLEDREDUCEDINSTRUCTIONSETCOMPUTERRISCWHICHWILLDOARITHMETICONBITWORDSITWILLBEEVENNICERTHANANDITWILLBESIMILARTOMACHINESTHATHAVEBECOMEDOMINANTDURINGTHESTHETASKOFCONVERTINGEVERYTHINGINTHISBOOKFROMTOWILLTAKEALONGTIMEVOLUNTEERSARESOLICITEDTOHELPWITHTHATCONVERSIONPROCESSMEANWHILETHEAUTHORHOPESTHATPEOPLEWILLBECONTENTTOLIVEMMIXFORAFEWMOREYEARSWITHTHEOLDFASHIONEDARCHITECTUREWHICHISSTILLWORTHKNOWINGBECAUSEITHELPSTOPROVIDEACONTEXTFORSUBSEQUENTDEVELOPMENTSDESCRIPTIONOFISTHEWORLDSFIRSTPOLYUNSATURATEDCOMPUTERLIKEMOSTMACHINESITHASANIDENTIFYINGNUMBERTHETHISNUMBERWASFOUNDBYTAKINGACTUALCOMPUTERSVERYSIMILARTOANDONWHICHCOULDEASILYBESIMULATEDTHENAVERAGINGTHEIRNUMBERSWITHEQUALWEIGHTSYSTEMIBMIBMIBMUNIVACIIIUNIVACSSUNIVACCDCBENDIXGBURROUGHSBPHILCOSXDSRCAHONEYWELLHPDPRECOMPIITHESAMENUMBERMAYALSOBEOBTAINEDINASIMPLERWAYBYTAKINGROMANNUMERALSHASAPECULIARPROPERTYINTHATITISBOTHBINARYANDDECIMALATTHESAMETIMEPROGRAMMERSDONTACTUALLYKNOWWHETHERTHEYAREPROGRAMMINGAMACHINEWITHBASEORBASEARITHMETICTHEREFOREALGORITHMSWRITTENINCANBEUSEDONEITHERTYPEOFMACHINEWITHLITTLEBYTEINMIXCHANGEANDCANBESIMULATEDEASILYONEITHERTYPEOFMACHINEPROGRAMMERSWHOAREACCUSTOMEDTOABINARYMACHINECANTHINKOFASBINARYTHOSEACCUSTOMEDTODECIMALMAYREGARDASDECIMALPROGRAMMERSFROMANOTHERPLANETMIGHTCHOOSETOTHINKOFASATERNARYCOMPUTERWORDSTHEBASICUNITOFDATAISABYTEEACHBYTECONTAINSANUNSPECIFIEDAMOUNTOFINFORMATIONBUTITMUSTBECAPABLEOFHOLDINGATLEASTDISTINCTVALUESTHATISWEKNOWTHATANYNUMBERBETWEENANDINCLUSIVECANBECONTAINEDINONEBYTEFURTHERMOREEACHBYTECONTAINSATMOSTDISTINCTVALUESONABINARYCOMPUTERABYTEMUSTTHEREFOREBECOMPOSEDOFSIXBITSONADECIMALCOMPUTERWEHAVEBYTETWODIGITSPERBYTESINCEORSOTHEWORDBYTEHASCOMETOMEANASEQUENCEOFPRECISELYEIGHTBINARYDIGITSCAPABLEOFREPRESENTINGTHENUMBERSTOREALWORLDBYTESARETHEREFORELARGERTHANTHEBYTESOFTHEHYPOTHETICALMACHINEINDEEDSOLDSTYLEBYTESAREJUSTBARELYBIGGERTHANNYBBLESWHENWESPEAKOFBYTESINCONNECTIONWITHWESHALLCONFINEOURSELVESTOTHEFORMERSENSEOFTHEWORDHARKINGBACKTOTHEDAYSWHENBYTESWERENOTYETSTANDARDIZEDPROGRAMSEXPRESSEDINSLANGUAGESHOULDBEWRITTENSOTHATNOMORETHANSIXTYFOURVALUESAREEVERASSUMEDFORABYTEIFWEWISHTOTREATTHENUMBERWESHOULDALWAYSLEAVETWOADJACENTBYTESFOREXPRESSINGITEVENTHOUGHONEBYTEISSUFFICIENTONADECIMALCOMPUTERANALGORITHMINSHOULDWORKPROPERLYREGARDLESSOFHOWBIGABYTEISALTHOUGHITISQUITEPOSSIBLETOWRITEPROGRAMSTHATDEPENDONTHEBYTESIZESUCHACTIONSAREANATHEMATOTHESPIRITOFTHISBOOKTHEONLYLEGITIMATEPROGRAMSARETHOSETHATWOULDGIVECORRECTRESULTSWITHALLBYTESIZESITISUSUALLYNOTHARDTOABIDEBYTHISGROUNDRULEANDWEWILLTHEREBYFINDTHATPROGRAMMINGADECIMALCOMPUTERISNTSODIFFERENTFROMPROGRAMMINGABINARYONEAFTERALLTWOADJACENTBYTESCANEXPRESSTHENUMBERSTHROUGHTHREEADJACENTBYTESCANEXPRESSTHENUMBERSTHROUGHFOURADJACENTBYTESCANEXPRESSTHENUMBERSTHROUGHFIVEADJACENTBYTESCANEXPRESSTHENUMBERSTHROUGHACOMPUTERWORDCONSISTSOFFIVEBYTESANDASIGNTHESIGNPORTIONHASONLYTWOPOSSIBLEVALUESANDBYTEINMIXWORDFIGMIXFIGTHECOMPUTERREGISTERSTHEREARENINEREGISTERSINSEEFIGFIGAREGISTEROFMIXXREGISTEROFMIXJREGISTEROFMIXIREGISTEROFMIXINDEXREGISTERSTHEAREGISTERACCUMULATORCONSISTSOFFIVEBYTESANDASIGNTHEXREGISTEREXTENSIONLIKEWISECOMPRISESFIVEBYTESANDASIGNTHEIREGISTERSINDEXREGISTERSIIIIIANDIEACHHOLDTWOBYTESTOGETHERWITHASIGNTHEJREGISTERJUMPADDRESSHOLDSTWOBYTESITBEHAVESASIFITSSIGNISALWAYSWESHALLUSEASMALLLETTERRPREFIXEDTOTHENAMETOIDENTIFYAREGISTERTHUSRAMEANSREGISTERATHEAREGISTERHASMANYUSESESPECIALLYFORARITHMETICANDFOROPERATINGONDATATHEXREGISTERISANEXTENSIONONTHERIGHTHANDSIDEOFRAANDITISUSEDINCONNECTIONWITHRATOHOLDTENBYTESOFAPRODUCTORDIVIDENDORITCANBEUSEDTOHOLDINFORMATIONSHIFTEDTOTHERIGHTOUTOFRATHEINDEXREGISTERSRIRIRIRIRIANDRIAREUSEDPRIMARILYFORCOUNTINGANDFORREFERENCINGVARIABLEMEMORYADDRESSESTHEJREGISTERALWAYSHOLDSTHEADDRESSOFTHEINSTRUCTIONFOLLOWINGTHEMOSTRECENTJUMPOPERATIONANDITISPRIMARILYUSEDINCONNECTIONWITHSUBROUTINESBESIDESITSREGISTERSCONTAINSGOBUTTONANOVERFLOWTOGGLEASINGLEBITTHATISEITHERONOROFFACOMPARISONINDICATORHAVINGTHREEVALUESLESSEQUALORGREATERMEMORYWORDSOFSTORAGEEACHWORDWITHFIVEBYTESANDASIGNANDINPUTOUTPUTDEVICESCARDSTAPESDISKSETCPARTIALFIELDSOFWORDSTHEFIVEBYTESANDSIGNOFACOMPUTERFIELDPARTIALWORDARENUMBEREDASFOLLOWSMOSTOFTHEINSTRUCTIONSALLOWAPROGRAMMERTOUSEONLYPARTOFAWORDIFDESIREDINSUCHCASESANONSTANDARDFIELDSPECIFICATIONCANBEGIVENTHEALLOWABLEFIELDSARETHOSETHATAREADJACENTINACOMPUTERWORDANDTHEYAREREPRESENTEDBYWHEREISTHENUMBEROFTHELEFTHANDPARTANDISTHENUMBEROFTHERIGHTHANDPARTOFTHEFIELDEXAMPLESOFFIELDSPECIFICATIONSARETHESIGNONLYTHESIGNANDTHEFIRSTTWOBYTESTHEWHOLEWORDTHISISTHEMOSTCOMMONFIELDSPECIFICATIONTHEWHOLEWORDEXCEPTFORTHESIGNTHEFOURTHBYTEONLYTHETWOLEASTSIGNIFICANTBYTESTHEUSEOFFIELDSPECIFICATIONSVARIESSLIGHTLYFROMINSTRUCTIONTOINSTRUCTIONANDITWILLBEEXPLAINEDINDETAILFOREACHINSTRUCTIONWHEREITAPPLIESEACHFIELDSPECIFICATIONISACTUALLYREPRESENTEDINSIDETHEMACHINEBYTHESINGLENUMBERNOTICETHATTHISNUMBERFITSEASILYINONEBYTEWORDINSTRUCTIONFORMATINSTRUCTIONSINMIXCOMPUTERWORDSUSEDFORINSTRUCTIONSHAVETHEFOLLOWINGFORMTHERIGHTMOSTBYTEISTHEOPERATIONCODETELLINGWHATOPERATIONISTOBEPERFORMEDFOREXAMPLESPECIFIESTHEOPERATIONLDALOADTHEAREGISTERTHEFBYTEHOLDSAMODIFICATIONOFTHEOPERATIONCODEITISUSUALLYAFIELDSPECIFICATIONFOREXAMPLEIFANDTHEOPERATIONISLOADTHEAREGISTERWITHTHEFIELDSOMETIMESFISUSEDFOROTHERPURPOSESONINPUTOUTPUTINSTRUCTIONSFOREXAMPLEFISTHENUMBEROFTHERELEVANTINPUTOROUTPUTUNITTHELEFTHANDPORTIONOFTHEINSTRUCTIONISTHEADDRESSPORTIONOFMIXINSTRUCTIONADDRESSNOTICETHATTHESIGNISPARTOFTHEADDRESSTHEIFIELDWHICHCOMESNEXTTOTHEADDRESSISTHEINDEXSPECIFICATIONWHICHMAYBEUSEDTOMODIFYTHEEFFECTIVEADDRESSIFTHEADDRESSISUSEDWITHOUTCHANGEOTHERWISEISHOULDCONTAINANUMBERBETWEENANDANDTHECONTENTSOFINDEXREGISTERAREADDEDALGEBRAICALLYTOBEFORETHEINSTRUCTIONISCARRIEDOUTTHERESULTISUSEDASTHEADDRESSTHISINDEXINGPROCESSTAKESPLACEONEVERYINSTRUCTIONWEWILLUSETHELETTERMTOINDICATETHEADDRESSAFTERANYSPECIFIEDINDEXINGHASOCCURREDIFTHEADDITIONOFTHEINDEXREGISTERTOTHEADDRESSYIELDSARESULTTHATDOESNOTFITINTWOBYTESTHEVALUEOFMISUNDEFINEDINMOSTINSTRUCTIONSMWILLREFERTOAMEMORYCELLTHETERMSMEMORYCELLANDMEMORYLOCATIONAREUSEDALMOSTINTERCHANGEABLYINTHISBOOKWEASSUMETHATTHEREAREMEMORYCELLSNUMBEREDFROMTOHENCEEVERYMEMORYLOCATIONCANBEADDRESSEDWITHTWOBYTESFOREVERYINSTRUCTIONINWHICHMREFERSTOAMEMORYCELLWEMUSTHAVEANDINCONTENTSTHISCASEWEWILLWRITECONTENTSMTODENOTETHEVALUESTOREDINMEMORYLOCATIONMONCERTAININSTRUCTIONSTHEADDRESSMHASANOTHERSIGNIFICANCEANDITMAYEVENBENEGATIVETHUSONEINSTRUCTIONADDSMTOANINDEXREGISTERANDSUCHANOPERATIONTAKESACCOUNTOFTHESIGNOFMNOTATIONTODISCUSSINSTRUCTIONSINAREADABLEMANNERWEINSTRUCTIONSINMIXSYMBOLICWILLUSETHENOTATIONTODENOTEANINSTRUCTIONLIKEHEREOPISASYMBOLICNAMEGIVENTOTHEOPERATIONCODETHECPARTOFTHEINSTRUCTIONADDRESSISTHEPORTIONIANDFREPRESENTTHEIANDFFIELDSRESPECTIVELYIFIISZEROTHEIISOMITTEDIFFISTHENORMALFSPECIFICATIONFORTHISPARTICULAROPERATORTHEFNEEDNOTBEWRITTENTHENORMALFSPECIFICATIONFORALMOSTALLOPERATORSISREPRESENTINGAWHOLEWORDIFADIFFERENTFISNORMALITWILLBEMENTIONEDEXPLICITLYWHENWEDISCUSSAPARTICULAROPERATORFIELDPARTIALFOREXAMPLETHEINSTRUCTIONTOLOADANUMBERINTOTHEACCUMULATORISCALLEDLDAANDITISOPERATIONCODENUMBERWEHAVETHEINSTRUCTIONLDAMAYBEREADLOADAWITHTHECONTENTSOFLOCATIONINDEXEDBYTHEZEROTHREEFIELDTOREPRESENTTHENUMERICALCONTENTSOFAWORDWEWILLALWAYSUSEABOXPACKEDDATANOTATIONLIKETHATABOVENOTICETHATINTHEWORDTHENUMBERISSHOWNFILLINGTWOADJACENTBYTESANDSIGNTHEACTUALCONTENTSOFBYTEANDOFBYTEWILLVARYFROMONECOMPUTERTOANOTHERSINCEBYTESIZEISVARIABLEASAFURTHEREXAMPLEOFTHISNOTATIONFORWORDSTHEDIAGRAMREPRESENTSAWORDWITHTWOFIELDSATHREEBYTEPLUSSIGNFIELDCONTAININGANDATWOBYTEFIELDCONTAININGWHENAWORDISSPLITINTOMORETHANONEFIELDITISSAIDTOBEPACKEDRULESFOREACHINSTRUCTIONTHEREMARKSFOLLOWINGABOVEHAVEDEFINEDTHEQUANTITIESMFANDCFOREVERYWORDUSEDASANINSTRUCTIONWEWILLNOWDEFINETHEACTIONSCORRESPONDINGTOEACHINSTRUCTIONLOADINGOPERATORSLOADINGOPERATORSOFMIXLDALOADACFFIELDLDATHESPECIFIEDFIELDOFCONTENTSMREPLACESTHEPREVIOUSCONTENTSOFREGISTERAONALLOPERATIONSWHEREAPARTIALFIELDISUSEDASANINPUTTHESIGNISUSEDIFITISAPARTOFTHEFIELDOTHERWISETHESIGNISUNDERSTOODTHEFIELDISSHIFTEDOVERTOTHERIGHTHANDPARTOFTHEREGISTERASITISLOADEDEXAMPLESIFFISTHENORMALFIELDSPECIFICATIONEVERYTHINGINLOCATIONMISCOPIEDINTORAIFFISTHEABSOLUTEVALUEOFCONTENTSMISLOADEDWITHAPLUSSIGNIFMCONTAINSANINSTRUCTIONWORDANDIFFISTHEFIELDISLOADEDASSUPPOSELOCATIONCONTAINSTHEWORDTHENWEGETTHEFOLLOWINGRESULTSFROMLOADINGVARIOUSPARTIALFIELDSTHELASTEXAMPLEHASAPARTIALLYUNKNOWNEFFECTSINCEBYTESIZEISVARIABLELDXLOADXCFFIELDLDXTHISINSTRUCTIONISTHESAMEASLDAEXCEPTTHATRXISLOADEDINSTEADOFRALDLOADFFIELDLDTHESEINSTRUCTIONSARETHESAMEASLDAEXCEPTTHATRIISLOADEDINSTEADOFRAANINDEXREGISTERCONTAINSONLYTWOBYTESNOTFIVEANDASIGNBYTESAREALWAYSASSUMEDTOBEZEROTHELDINSTRUCTIONISUNDEFINEDIFITWOULDRESULTINSETTINGBYTESORTOANYTHINGBUTZEROINTHEDESCRIPTIONOFALLINSTRUCTIONSSTANDSFORANINTEGERTHUSLDSTANDSFORSIXDIFFERENTINSTRUCTIONSLDLDLDLDANLOADANEGATIVECFFIELDLDANLDXNLOADXNEGATIVECFFIELDLDXNLDNLOADNEGATIVEFFIELDLDNTHESEEIGHTINSTRUCTIONSARETHESAMEASLDALDXLDRESPECTIVELYEXCEPTTHATTHEOPPOSITESIGNISLOADEDSTORINGOPERATORSSTORINGOPERATORSOFMIXSTASTOREACFFIELDSTAAPORTIONOFTHECONTENTSOFRAREPLACESTHEFIELDOFCONTENTSMSPECIFIEDBYFTHEOTHERPARTSOFCONTENTSMAREUNCHANGEDONASTOREOPERATIONTHEFIELDFHASTHEOPPOSITESIGNIFICANCEFROMTHELOADOPERATIONTHENUMBEROFBYTESINTHEFIELDISTAKENFROMTHERIGHTHANDPORTIONOFTHEREGISTERANDSHIFTEDLEFTIFNECESSARYTOBEINSERTEDINTHEPROPERFIELDOFCONTENTSMTHESIGNISNOTALTEREDUNLESSITISPARTOFTHEFIELDTHECONTENTSOFTHEREGISTERARENOTAFFECTEDEXAMPLESSUPPOSETHATLOCATIONCONTAINSANDREGISTERACONTAINSTHENSTXSTOREXFFIELDSTXSAMEASSTAEXCEPTTHATRXISSTOREDRATHERTHANRASTSTOREFFIELDSTSAMEASSTAEXCEPTTHATRIISSTOREDRATHERTHANRABYTESOFANINDEXREGISTERAREZEROTHUSIFRICONTAINSITBEHAVESASTHOUGHITWERESTJSTOREJCFFIELDSTJSAMEASSTEXCEPTTHATRJISSTOREDANDITSSIGNISALWAYSWITHSTJTHENORMALFIELDSPECIFICATIONFORFISNOTTHISISNATURALSINCESTJISALMOSTALWAYSDONEINTOTHEADDRESSFIELDOFANINSTRUCTIONSTZSTOREZEROCFFIELDSTZSAMEASSTAEXCEPTTHATPLUSZEROISSTOREDINOTHERWORDSTHESPECIFIEDFIELDOFCONTENTSMISCLEAREDTOZEROARITHMETICOPERATORSARITHMETICOPERATORSOFMIXONTHEADDSUBTRACTMULTIPLYANDDIVIDEOPERATIONSAFIELDSPECIFICATIONISALLOWEDAFIELDSPECIFICATIONOFCANBEUSEDTOINDICATEAFLOATINGPOINTOPERATIONSEESECTIONBUTFEWOFTHEPROGRAMSWEWILLWRITEFORWILLUSETHISFEATURESINCEWEWILLPRIMARILYBECONCERNEDWITHALGORITHMSONINTEGERSTHESTANDARDFIELDSPECIFICATIONISASUSUALOTHERFIELDSARETREATEDASINLDAWEWILLUSETHELETTERVTOINDICATETHESPECIFIEDFIELDOFCONTENTSMTHUSVISTHEVALUETHATWOULDHAVEBEENLOADEDINTOREGISTERAIFTHEOPERATIONCODEWERELDAADDCFFIELDADDVISADDEDTORAIFTHEMAGNITUDEOFTHERESULTISTOOLARGEFORREGISTERATHEOVERFLOWTOGGLEISSETONANDTHEREMAINDEROFTHEADDITIONAPPEARINGINRAISASTHOUGHAHADBEENCARRIEDINTOANOTHERREGISTERTOTHELEFTOFRAOTHERWISETHESETTINGOFTHEOVERFLOWTOGGLEISUNCHANGEDIFTHERESULTISZEROTHESIGNOFRAISUNCHANGEDEXAMPLETHESEQUENCEOFINSTRUCTIONSBELOWCOMPUTESTHESUMOFTHEFIVEBYTESOFREGISTERATHISISSOMETIMESCALLEDSIDEWAYSADDITIONOVERFLOWWILLOCCURINSOMECOMPUTERSWHENITWOULDNOTOCCURINOTHERSBECAUSEOFTHEVARIABLEDEFINITIONOFBYTESIZEWEHAVENOTSAIDTHATOVERFLOWWILLOCCURDEFINITELYIFTHEVALUEISGREATERTHANOVERFLOWOCCURSWHENTHEMAGNITUDEOFTHERESULTISGREATERTHANTHECONTENTSOFFIVEBYTESDEPENDINGONTHEBYTESIZEONECANSTILLWRITEPROGRAMSTHATWORKPROPERLYANDTHATGIVETHESAMEFINALANSWERSREGARDLESSOFTHEBYTESIZESUBSUBTRACTCFFIELDSUBVISSUBTRACTEDFROMRAEQUIVALENTTOADDBUTWITHVINPLACEOFVMULMULTIPLYCFFIELDMULTHEBYTEPRODUCTVTIMESRAREPLACESREGISTERSAANDXTHESIGNSOFRAANDRXAREBOTHSETTOTHEALGEBRAICSIGNOFTHEPRODUCTNAMELYIFTHESIGNSOFVANDRAWERETHESAMEIFTHEYWEREDIFFERENTDIVDIVIDECFFIELDDIVTHEVALUEOFRAANDRXTREATEDASABYTENUMBERRAXWITHTHESIGNOFRAISDIVIDEDBYTHEVALUEVIFVORIFTHEQUOTIENTISMORETHANFIVEBYTESINMAGNITUDETHISISEQUIVALENTTOTHECONDITIONTHATREGISTERSAANDXAREFILLEDWITHUNDEFINEDINFORMATIONANDTHEOVERFLOWTOGGLEISSETONOTHERWISETHEQUOTIENTISPLACEDINRAANDTHEREMAINDERISPLACEDINRXTHESIGNOFRAAFTERWARDSISTHEALGEBRAICSIGNOFTHEQUOTIENTNAMELYIFTHESIGNSOFVANDRAWERETHESAMEIFTHEYWEREDIFFERENTTHESIGNOFRXAFTERWARDSISTHEPREVIOUSSIGNOFRAEXAMPLESOFARITHMETICINSTRUCTIONSINMOSTCASESARITHMETICISDONEONLYWITHWORDSTHATARESINGLEFIVEBYTENUMBERSNOTPACKEDWITHSEVERALFIELDSITISHOWEVERPOSSIBLETOOPERATEARITHMETICALLYONPACKEDWORDSIFSOMECAUTIONISUSEDTHEFOLLOWINGEXAMPLESSHOULDBESTUDIEDCAREFULLYASBEFOREDESIGNATESANUNKNOWNVALUEMULADDSUBTHESEEXAMPLESHAVEBEENPREPAREDWITHTHEPHILOSOPHYTHATITISBETTERTOGIVEACOMPLETEBAFFLINGDESCRIPTIONTHANANINCOMPLETESTRAIGHTFORWARDONEDIVARITHMETICOPERATORSOFMIXADDRESSTRANSFEROPERATORSINTHEFOLLOWINGOPERATIONSTHEPOSSIBLYINDEXEDADDRESSMISUSEDASASIGNEDNUMBERNOTASTHEADDRESSOFACELLINMEMORYENTAENTERACFENTATHEQUANTITYMISLOADEDINTORATHEACTIONISEQUIVALENTTOLDAFROMAMEMORYWORDCONTAININGTHESIGNEDVALUEOFMIFMTHESIGNOFTHEINSTRUCTIONISLOADEDEXAMPLESENTASETSRATOZEROSWITHASIGNENTASETSRATOTHECURRENTCONTENTSOFINDEXREGISTEREXCEPTTHATISCHANGEDTOENTAISSIMILAREXCEPTTHATISCHANGEDTOENTXENTERXCFENTXENTENTERFENTANALOGOUSTOENTALOADINGTHEAPPROPRIATEREGISTERENNAENTERNEGATIVEACFENNAENNXENTERNEGATIVEXCFENNXENNENTERNEGATIVEFENNSAMEASENTAENTXANDENTEXCEPTTHATTHEOPPOSITESIGNISLOADEDEXAMPLEENNREPLACESRIBYITSNEGATIVEALTHOUGHREMAINSINCAINCREASEACFINCATHEQUANTITYMISADDEDTORATHEACTIONISEQUIVALENTTOADDFROMAMEMORYWORDCONTAININGTHEVALUEOFMOVERFLOWISPOSSIBLEANDITISTREATEDJUSTASINADDEXAMPLEINCAINCREASESTHEVALUEOFRABYONEINCXINCREASEXCFINCXTHEQUANTITYMISADDEDTORXIFOVERFLOWOCCURSTHEACTIONISEQUIVALENTTOADDEXCEPTTHATRXISUSEDINSTEADOFRAREGISTERAISNEVERAFFECTEDBYTHISINSTRUCTIONINCINCREASEFINCADDMTORIOVERFLOWMUSTNOTOCCURIFDOESNTFITINTWOBYTESTHERESULTOFTHISINSTRUCTIONISUNDEFINEDDECADECREASEACFDECADECXDECREASEXCFDECXDECDECREASEFDECTHESEEIGHTINSTRUCTIONSARETHESAMEASINCAINCXANDINCRESPECTIVELYEXCEPTTHATMISSUBTRACTEDFROMTHEREGISTERRATHERTHANADDEDNOTICETHATTHEOPERATIONCODECISTHESAMEFORENTAENNAINCAANDDECATHEFFIELDISUSEDTODISTINGUISHTHEVARIOUSOPERATIONSFROMEACHOTHERCOMPARISONOPERATORSCOMPARISONOPERATORSOFMIXSCOMPARISONOPERATORSALLCOMPARETHEVALUECONTAINEDINAREGISTERWITHAVALUECONTAINEDINMEMORYTHECOMPARISONINDICATORISTHENSETTOLESSEQUALORGREATERACCORDINGTOWHETHERTHEVALUEOFTHEREGISTERISLESSTHANEQUALTOORGREATERTHANTHEVALUEOFTHEMEMORYCELLAMINUSZEROISEQUALTOAPLUSZEROCMPACOMPAREACFFIELDCMPATHESPECIFIEDFIELDOFRAISCOMPAREDWITHTHESAMEFIELDOFCONTENTSMIFFDOESNOTINCLUDETHESIGNPOSITIONTHEFIELDSAREBOTHCONSIDEREDNONNEGATIVEOTHERWISETHESIGNISTAKENINTOACCOUNTINTHECOMPARISONANEQUALCOMPARISONALWAYSOCCURSWHENFISSINCEMINUSZEROEQUALSPLUSZEROCMPXCOMPAREXCFFIELDCMPXTHISINSTRUCTIONISANALOGOUSTOCMPACMPCOMPAREFFIELDCMPANALOGOUSTOCMPABYTESANDOFTHEINDEXREGISTERARETREATEDASZEROINTHECOMPARISONTHUSIFTHERESULTCANNOTBEGREATERJUMPOPERATORSJUMPOPERATORSOFMIXINSTRUCTIONSAREORDINARILYEXECUTEDINSEQUENTIALORDERINOTHERWORDSTHECOMMANDTHATISPERFORMEDAFTERTHECOMMANDINLOCATIONPISUSUALLYTHEONEFOUNDINLOCATIONBUTSEVERALJUMPINSTRUCTIONSALLOWTHISSEQUENCETOBEINTERRUPTEDWHENATYPICALJUMPTAKESPLACETHEJREGISTERISSETTOTHEADDRESSOFTHENEXTINSTRUCTIONTHATISTOTHEADDRESSOFTHEINSTRUCTIONTHATWOULDHAVEBEENNEXTIFWEHADNTJUMPEDASTOREJINSTRUCTIONTHENCANBEUSEDBYTHEPROGRAMMERIFDESIREDTOSETTHEADDRESSFIELDOFANOTHERCOMMANDTHATWILLLATERBEUSEDTORETURNTOTHEORIGINALPLACEINTHEPROGRAMTHEJREGISTERISCHANGEDWHENEVERAJUMPACTUALLYOCCURSINAPROGRAMEXCEPTWHENTHEJUMPOPERATORISJSJANDITISNEVERCHANGEDBYNONJUMPSJMPJUMPCFJMPUNCONDITIONALJUMPTHENEXTINSTRUCTIONISTAKENFROMLOCATIONMJSJJUMPSAVEJCFJSJSAMEASJMPEXCEPTTHATTHECONTENTSOFRJAREUNCHANGEDJOVJUMPONOVERFLOWCFJOVIFTHEOVERFLOWTOGGLEISONITISTURNEDOFFANDAJMPOCCURSOTHERWISENOTHINGHAPPENSJNOVJUMPONNOOVERFLOWCFJNOVIFTHEOVERFLOWTOGGLEISOFFAJMPOCCURSOTHERWISEITISTURNEDOFFJLJEJGJGEJNEJLEJLJEJGJGEJNEJLEJUMPONLESSEQUALGREATERGREATEROREQUALUNEQUALLESSOREQUALCFRESPECTIVELYJUMPIFTHECOMPARISONINDICATORISSETTOTHECONDITIONINDICATEDFOREXAMPLEJNEWILLJUMPIFTHECOMPARISONINDICATORISLESSORGREATERTHECOMPARISONINDICATORISNOTCHANGEDBYTHESEINSTRUCTIONSJANJAZJAPJANNJANZJANPJANJAZJAPJANNJANZJANPJUMPANEGATIVEZEROPOSITIVENONNEGATIVENONZERONONPOSITIVECFRESPECTIVELYIFTHECONTENTSOFRASATISFYTHESTATEDCONDITIONAJMPOCCURSOTHERWISENOTHINGHAPPENSPOSITIVEMEANSGREATERTHANZERONOTZERONONPOSITIVEMEANSTHEOPPOSITENAMELYZEROORNEGATIVEJXNJXZJXPJXNNJXNZJXNPJXNJXZJXPJXNNJXNZJXNPJUMPXNEGATIVEZEROPOSITIVENONNEGATIVENONZERONONPOSITIVECFRESPECTIVELYJNJZJPJNNJNZJNJZJPJNNJNZJNPJNPJUMPNEGATIVEZEROPOSITIVENONNEGATIVENONZERONONPOSITIVEFRESPECTIVELYTHESEINSTRUCTIONSAREANALOGOUSTOTHECORRESPONDINGOPERATIONSFORRAJUMPOPERATORSOFMIXMISCELLANEOUSOPERATORSSLASRASLAXSRAXSLCSRCSHIFTSHIFTOPERATORSOFMIXSRASLASLAXSRAXSLCSRCLEFTASHIFTRIGHTASHIFTLEFTAXSHIFTRIGHTAXSHIFTLEFTAXCIRCULARLYSHIFTRIGHTAXCIRCULARLYCFRESPECTIVELYTHESESIXARETHESHIFTCOMMANDSINWHICHMSPECIFIESANUMBEROFBYTESTOBESHIFTEDLEFTORRIGHTMMUSTBENONNEGATIVESLAANDSRADONOTAFFECTRXTHEOTHERSHIFTSAFFECTBOTHREGISTERSAANDXASTHOUGHTHEYWEREASINGLEBYTEREGISTERWITHSLASRASLAXANDSRAXZEROSARESHIFTEDINTOTHEREGISTERATONESIDEANDBYTESDISAPPEARATTHEOTHERSIDETHEINSTRUCTIONSSLCANDSRCCALLFORACIRCULATINGSHIFTINWHICHTHEBYTESTHATLEAVEONEENDENTERINATTHEOTHERENDBOTHRAANDRXPARTICIPATEINACIRCULATINGSHIFTTHESIGNSOFREGISTERSAANDXARENOTAFFECTEDINANYWAYBYANYOFTHESHIFTCOMMANDSMOVECFNUMBERNORMALLYMOVETHENUMBEROFWORDSSPECIFIEDBYFISMOVEDSTARTINGFROMLOCATIONMTOTHELOCATIONSPECIFIEDBYTHECONTENTSOFINDEXREGISTERTHETRANSFEROCCURSONEWORDATATIMEANDRIISINCREASEDBYTHEVALUEOFFATTHEENDOFTHEOPERATIONIFFNOTHINGHAPPENSCAREMUSTBETAKENWHENTHERESOVERLAPBETWEENTHELOCATIONSINVOLVEDFOREXAMPLESUPPOSETHATFANDMTHENIFWETRANSFERCONTENTSTOCONTENTSCONTENTSTOCONTENTSANDCONTENTSTOCONTENTSNOTHINGUNUSUALOCCURREDHEREBUTIFRIWEREINSTEADWEWOULDMOVECONTENTSTOCONTENTSTHENCONTENTSTOCONTENTSTHENCONTENTSTOCONTENTSSOWEWOULDHAVEMOVEDTHESAMEWORDCONTENTSINTOTHREEPLACESNOPNOOPERATIONCNOPNOOPERATIONOCCURSANDTHISINSTRUCTIONISBYPASSEDFANDMAREIGNOREDHLTHALTCFHLTTHEMACHINESTOPSWHENTHECOMPUTEROPERATORRESTARTSITTHENETEFFECTISEQUIVALENTTONOPINPUTOUTPUTOPERATORSHASAFAIRAMOUNTOFINPUTOPERATORSOFMIXOUTPUTOPERATORSOFMIXDISKDRUMMAGNETICTAPELINEPRINTERTYPEWRITERPAPERTAPECARDSPUNCHEDPERIPHERALDEVICESINPUTOUTPUTEQUIPMENTALLOFWHICHISOPTIONALATEXTRACOSTEACHDEVICEISGIVENANUMBERASFOLLOWSNOTEVERYINSTALLATIONWILLHAVEALLOFTHISEQUIPMENTAVAILABLEWEWILLOCCASIONALLYMAKEAPPROPRIATEASSUMPTIONSABOUTTHEPRESENCEOFCERTAINDEVICESSOMEDEVICESMAYNOTBEUSEDBOTHFORINPUTANDFOROUTPUTTHENUMBEROFWORDSBLOCKMENTIONEDINTHETABLEABOVEISAFIXEDBLOCKSIZEASSOCIATEDWITHEACHUNITINPUTOROUTPUTWITHMAGNETICTAPEDISKORDRUMUNITSREADSORWRITESFULLWORDSFIVEBYTESANDASIGNINPUTOROUTPUTWITHUNITSTHROUGHHOWEVERISALWAYSDONEINACHARACTERCODEWHEREEACHBYTEREPRESENTSONEALPHAMERICCHARACTERTHUSFIVECHARACTERSPERWORDARETRANSMITTEDTHECHARACTERCODEISGIVENATTHETOPOFTABLEMIXCHARTWHICHAPPEARSATTHECLOSEOFTHISSECTIONANDONTHEENDPAPERSOFTHISBOOKTHECODECORRESPONDSTOWHICHDENOTESABLANKSPACECODESAREFORTHELETTERSATHROUGHZWITHAFEWGREEKLETTERSTHROWNINCODESREPRESENTTHEDIGITSANDFURTHERCODESALPHAMERICCODESFORMIXREPRESENTPUNCTUATIONMARKSANDOTHERSPECIALCHARACTERSSCHARACTERSETHARKSBACKTOTHEDAYSBEFORECOMPUTERSCOULDCOPEWITHLOWERCASELETTERSWECANNOTUSECHARACTERCODETOREADINORWRITEOUTALLPOSSIBLEVALUESTHATABYTEMAYHAVESINCECERTAINCOMBINATIONSAREUNDEFINEDMOREOVERSOMEINPUTOUTPUTDEVICESMAYBEUNABLETOHANDLEALLTHESYMBOLSINTHECHARACTERSETFOREXAMPLETHESYMBOLSANDTHATAPPEARAMIDTHELETTERSWILLPERHAPSNOTBEACCEPTABLETOTHECARDREADERWHENCHARACTERCODEINPUTISBEINGDONETHESIGNSOFALLWORDSARESETTOONOUTPUTSIGNSAREIGNOREDIFATYPEWRITERISUSEDFORINPUTTHECARRIAGERETURNTHATISTYPEDATTHEENDOFEACHLINECAUSESTHEREMAINDEROFTHATLINETOBEFILLEDWITHBLANKSTHEDISKANDDRUMUNITSAREEXTERNALMEMORYDEVICESEACHCONTAININGWORDBLOCKSONEVERYINOUTORIOCINSTRUCTIONASDEFINEDBELOWTHEPARTICULARWORDBLOCKREFERREDTOBYTHEINSTRUCTIONISSPECIFIEDBYTHECURRENTCONTENTSOFRXWHICHSHOULDNOTEXCEEDTHECAPACITYOFTHEDISKORDRUMINVOLVEDININPUTCFUNITINTHISINSTRUCTIONINITIATESTHETRANSFEROFINFORMATIONFROMTHEINPUTUNITSPECIFIEDINTOCONSECUTIVELOCATIONSSTARTINGWITHMTHENUMBEROFLOCATIONSTRANSFERREDISTHEBLOCKSIZEFORTHISUNITSEETHETABLEABOVETHEMACHINEWILLWAITATTHISPOINTIFAPRECEDINGOPERATIONFORTHESAMEUNITISNOTYETCOMPLETETHETRANSFEROFINFORMATIONTHATSTARTSWITHTHISINSTRUCTIONWILLNOTBECOMPLETEUNTILANUNKNOWNFUTURETIMEDEPENDINGONTHESPEEDOFTHEINPUTDEVICESOAPROGRAMMUSTNOTREFERTOTHEINFORMATIONINMEMORYUNTILTHENITISIMPROPERTOATTEMPTTOREADANYBLOCKFROMMAGNETICTAPETHATFOLLOWSTHELATESTBLOCKWRITTENONTHATTAPEOUTOUTPUTCFUNITOUTTHISINSTRUCTIONSTARTSTHETRANSFEROFINFORMATIONFROMMEMORYLOCATIONSSTARTINGATMTOTHEOUTPUTUNITSPECIFIEDTHEMACHINEWAITSUNTILTHEUNITISREADYIFITISNOTINITIALLYREADYTHETRANSFERWILLNOTBECOMPLETEUNTILANUNKNOWNFUTURETIMEDEPENDINGONTHESPEEDOFTHEOUTPUTDEVICESOAPROGRAMMUSTNOTALTERTHEINFORMATIONINMEMORYUNTILTHENIOCINPUTOUTPUTCONTROLCFUNITIOCTHEMACHINEWAITSIFNECESSARYUNTILTHESPECIFIEDUNITISNOTBUSYTHENACONTROLOPERATIONISPERFORMEDDEPENDINGONTHEPARTICULARDEVICEBEINGUSEDTHEFOLLOWINGEXAMPLESAREUSEDINVARIOUSPARTSOFTHISBOOKMAGNETICTAPEIFMTHETAPEISREWOUNDIFMTHETAPEISSKIPPEDBACKWARDMBLOCKSORTOTHEBEGINNINGOFTHETAPEWHICHEVERCOMESFIRSTIFMTHETAPEISSKIPPEDFORWARDITISIMPROPERTOSKIPFORWARDOVERANYBLOCKSFOLLOWINGTHEONELASTWRITTENONTHATTAPEBLOCKFOREXAMPLETHESEQUENCEOUTIOCINWRITESOUTONEHUNDREDWORDSONTOTAPETHENREADSITBACKINAGAINUNLESSTHETAPERELIABILITYISQUESTIONEDTHELASTTWOINSTRUCTIONSOFTHATSEQUENCEAREONLYASLOWWAYTOMOVEWORDSTOLOCATIONSTHESEQUENCEOUTIOCISIMPROPERDISKORDRUMMSHOULDBEZEROTHEEFFECTISTOPOSITIONTHEDEVICEACCORDINGTORXSOTHATTHENEXTINOROUTOPERATIONONTHISUNITWILLTAKELESSTIMEIFITUSESTHESAMERXSETTINGLINEPRINTERMSHOULDBEZEROIOCSKIPSTHEPRINTERTOTHETOPOFTHEFOLLOWINGPAGEPAPERTAPEMSHOULDBEZEROIOCREWINDSTHETAPECARDSPUNCHEDPAPERTAPETYPEWRITERLINEPRINTERMAGNETICTAPEDRUMDISKJREDJUMPREADYCFUNITJREDAJUMPOCCURSIFTHESPECIFIEDUNITISREADYTHATISFINISHEDWITHTHEPRECEDINGOPERATIONINITIATEDBYINOUTORIOCJBUSJUMPBUSYCFUNITJBUSANALOGOUSTOJREDBUTTHEJUMPOCCURSWHENTHESPECIFIEDUNITISNOTREADYEXAMPLEINLOCATIONTHEINSTRUCTIONJBUSWILLBEEXECUTEDREPEATEDLYUNTILUNITISREADYTHESIMPLEOPERATIONSABOVECOMPLETESREPERTOIREOFINPUTOUTPUTINSTRUCTIONSTHEREISNOTAPECHECKINDICATORETCTOCOVEREXCEPTIONALCONDITIONSONTHEPERIPHERALDEVICESANYSUCHCONDITIONEGPAPERJAMUNITTURNEDOFFOUTOFTAPEETCCAUSESTHEUNITTOREMAINBUSYABELLRINGSANDTHESKILLEDCOMPUTEROPERATORFIXESTHINGSMANUALLYUSINGORDINARYMAINTENANCEPROCEDURESSOMEMORECOMPLICATEDPERIPHERALUNITSWHICHAREMOREEXPENSIVEANDMOREREPRESENTATIVEOFCONTEMPORARYEQUIPMENTTHANTHEFIXEDBLOCKSIZETAPESDRUMSANDDISKSDESCRIBEDHEREAREDISCUSSEDINSECTIONSANDOUTPUTOPERATORSOFMIXINPUTOPERATORSOFMIXCHAPMIXCHARTCONVERSIONOPERATORSNUMCONVERTTONUMERICCFNUMCONVERSIONOPERATORSOFMIXTHISOPERATIONISUSEDTOCHANGETHECHARACTERCODEINTONUMERICCODEMISIGNOREDREGISTERSAANDXAREASSUMEDTOCONTAINABYTENUMBERINCHARACTERALPHAMERICCODESOFMIXCODETHENUMINSTRUCTIONSETSTHEMAGNITUDEOFRAEQUALTOTHENUMERICALVALUEOFTHISNUMBERTREATEDASADECIMALNUMBERTHEVALUEOFRXANDTHESIGNOFRAAREUNCHANGEDBYTESCONVERTTOTHEDIGITZEROBYTESCONVERTTOTHEDIGITONEETCOVERFLOWISPOSSIBLEANDINTHISCASETHEREMAINDERMODULOISRETAINEDWHEREISTHEBYTESIZECHARCONVERTTOCHARACTERSCFCHARTHISOPERATIONISUSEDTOCHANGENUMERICCODEINTOCHARACTERCODESUITABLEFOROUTPUTTOPUNCHEDCARDSORTAPEORTHELINEPRINTERTHEVALUEINRAISCONVERTEDINTOABYTEDECIMALNUMBERTHATISPUTINTOREGISTERSAANDXINCHARACTERCODETHESIGNSOFRAANDRXAREUNCHANGEDMISIGNOREDTIMINGTOGIVEQUANTITATIVEINFORMATIONABOUTTHEEFFICIENCYOFPROGRAMSEACHOFSOPERATIONSISASSIGNEDANEXECUTIONTIMEEXECUTIONTIMEFORMIXINSTRUCTIONSTYPICALOFVINTAGECOMPUTERSSUBALLLOADOPERATIONSALLSTOREOPERATIONSINCLUDINGSTZALLSHIFTCOMMANDSANDALLCOMPARISONOPERATIONSTAKETWOUNITSOFTIMEMOVEREQUIRESONEUNITPLUSTWOFOREACHWORDMOVEDMULNUMCHAREACHREQUIREUNITSANDDIVREQUIRESTHEEXECUTIONTIMEFORFLOATINGPOINTOPERATIONSISSPECIFIEDINSECTIONALLREMAININGOPERATIONSTAKEONEUNITOFTIMEPLUSTHETIMETHECOMPUTERMAYBEIDLEONTHEINOUTIOCORHLTINSTRUCTIONSNOTICEINPARTICULARTHATENTATAKESONEUNITOFTIMEWHILELDATAKESTWOUNITSTHETIMINGRULESAREEASILYREMEMBEREDBECAUSEOFTHEFACTTHATEXCEPTFORSHIFTSCONVERSIONSMULANDDIVTHENUMBEROFTIMEUNITSEQUALSTHENUMBEROFREFERENCESTOMEMORYINCLUDINGTHEREFERENCETOTHEINSTRUCTIONITSELFSBASICUNITOFTIMEISARELATIVEMEASURETHATWEWILLDENOTESIMPLYBYITMAYBEREGARDEDASSAYMICROSECONDSFORARELATIVELYINEXPENSIVECOMPUTERORASNANOSECONDSFORARELATIVELYHIGHPRICEDMACHINEEXAMPLETHESEQUENCELDAINCASTATAKESEXACTLYANDNOWISEEWITHEYESERENETHEVERYPULSEOFTHEMACHINEWILLIAMWORDSWORTHSHEWASAPHANTOMOFDELIGHTALPHAMERICCODESTABLEMIXINSTRUCTIONSSUMMARYTABLEEXECUTIONTIMETABLEMIXCHARTTABLESCALETOSCALESUMMARYWEHAVENOWDISCUSSEDALLTHEFEATURESOFEXCEPTFORITSGOBUTTONGOBUTTONWHICHISDISCUSSEDINEXERCISEALTHOUGHHASNEARLYDIFFERENTOPERATIONSTHEYFITINTOAFEWSIMPLEPATTERNSSOTHATTHEYCANEASILYBEREMEMBEREDTABLEMIXCHARTSUMMARIZESTHEOPERATIONSFOREACHCSETTINGTHENAMEOFEACHOPERATORISFOLLOWEDINPARENTHESESBYITSDEFAULTFFIELDTHEFOLLOWINGEXERCISESGIVEAQUICKREVIEWOFTHEMATERIALINTHISSECTIONTHEYAREMOSTLYQUITESIMPLEANDTHEREADERSHOULDTRYTODONEARLYALLOFTHEMEXERCISESIFWEREATERNARYBASECOMPUTERHOWMANYTRITSWOULDTHEREBEPERBYTEFOUREACHBYTEWOULDTHENCONTAINDIFFERENTVALUESIFAVALUETOBEREPRESENTEDWITHINMAYGETASLARGEASHOWMANYADJACENTBYTESSHOULDBEUSEDTOCONTAINTHISQUANTITYBYTEINMIXFIVESINCEFIVEBYTESISALWAYSADEQUATEBUTFOURISNOTGIVETHEPARTIALFIELDSPECIFICATIONSFORTHEAADDRESSFIELDBINDEXFIELDCFIELDFIELDANDDOPERATIONCODEFIELDOFAINSTRUCTIONFIELDPARTIALTHELASTEXAMPLEINISLDAHOWCANTHISBELEGITIMATEINVIEWOFTHEFACTTHATMEMORYADDRESSESSHOULDNOTBENEGATIVEPRESUMABLYINDEXREGISTERCONTAINSAVALUEGREATERTHANOREQUALTOSOTHATAVALIDMEMORYADDRESSRESULTSAFTERINDEXINGWHATSYMBOLICNOTATIONANALOGOUSTOCORRESPONDSTOIFISREGARDEDASAINSTRUCTIONDIVORSIMPLYDIVASSUMETHATLOCATIONCONTAINSWHATISTHERESULTOFTHEFOLLOWINGINSTRUCTIONSSTATEIFANYOFTHEMAREUNDEFINEDORONLYPARTIALLYDEFINEDALDANBLDNCLDXDLDELDXNLOADINGOPERATORSOFMIXABCDUNDEFINEDWECANTLOADSUCHABIGVALUEINTOANINDEXREGISTEREMGIVEAPRECISEDEFINITIONOFTHERESULTSOFTHEDIVINSTRUCTIONDIVFORALLCASESINWHICHOVERFLOWDOESNOTOCCURUSINGTHEALGEBRAICOPERATIONSANDLETBETHEMAGNITUDEOFREGISTERSAANDXBEFORETHEOPERATIONANDLETBETHEMAGNITUDEOFTHEDIVISORAFTERTHEOPERATIONTHEMAGNITUDEOFRAISANDTHEMAGNITUDEOFRXISTHESIGNOFRXAFTERWARDSISTHEPREVIOUSSIGNOFRATHESIGNOFRAAFTERWARDSISIFTHEPREVIOUSSIGNSOFRAANDVWERETHESAMEOTHERWISEITISSTATINGTHISANOTHERWAYIFTHESIGNSOFRAANDVARETHESAMEANDOTHERWISEANDTHELASTEXAMPLEOFTHEDIVINSTRUCTIONTHATAPPEARSONPAGEDIVEXAMPLEPAGEHASRXBEFOREEQUALIFTHISWEREINSTEADBUTOTHERPARTSOFTHATEXAMPLEWEREUNCHANGEDWHATWOULDREGISTERSAANDXCONTAINAFTERTHEDIVINSTRUCTIONLISTALLTHEOPERATORSTHATCANPOSSIBLYAFFECTTHESETTINGOFTHEOVERFLOWTOGGLEDONOTINCLUDEFLOATINGPOINTOPERATORSADDSUBDIVNUMJOVJNOVINCADECAINCXDECXLISTALLTHEOPERATORSTHATCANPOSSIBLYAFFECTTHESETTINGOFTHECOMPARISONINDICATORCMPACMPCMPCMPCMPCMPCMPCMPXALSOFCMPFORFLOATINGPOINTFCMPLISTALLTHEOPERATORSTHATCANPOSSIBLYAFFECTTHESETTINGOFRIIREGISTEROFMIXMOVELDLDNINCDECENTENNFINDASINGLEINSTRUCTIONTHATHASTHEEFFECTOFMULTIPLYINGTHECURRENTCONTENTSOFRIBYTWOANDLEAVINGTHERESULTINRIINCSUPPOSELOCATIONCONTAINSTHEINSTRUCTIONJOVTHISINSTRUCTIONTURNSOFFTHEOVERFLOWTOGGLEIFITISONJOVJNOVANDTHENEXTINSTRUCTIONEXECUTEDWILLBEINLOCATIONINANYCASEIFTHISINSTRUCTIONWERECHANGEDTOJNOVWOULDTHEREBEANYDIFFERENCEWHATIFITWERECHANGEDTOJOVORJNOVJOVMAKESNODIFFERENCEEXCEPTTIMEJNOVMAKESADIFFERENTSETTINGOFRJINMOSTCASESJNOVMAKESANEXTRAORDINARYDIFFERENCESINCEITMAYLOCKTHECOMPUTERINANINFINITELOOPFOREACHOPERATIONCONSIDERWHETHERTHEREISAWAYTOSETTHEIANDFPORTIONSSOTHATTHERESULTOFTHEINSTRUCTIONISPRECISELYEQUIVALENTTONOPEXCEPTTHATTHEEXECUTIONTIMEMAYBELONGERASSUMETHATNOTHINGISKNOWNABOUTTHECONTENTSOFANYREGISTERSORANYMEMORYLOCATIONSWHENEVERITISPOSSIBLETOPRODUCEANOPSTATEHOWITCANBEDONEEXAMPLESINCAISANOOPIFTHEADDRESSANDINDEXPARTSAREZEROJMPCANNEVERBEANOOPSINCEITAFFECTSRJNOPWITHANYTHINGADDSUBWITHFORWITHADDRESSEQUALTOTHELOCATIONOFTHEINSTRUCTIONANDFHLTDEPENDINGONHOWYOUINTERPRETTHESTATEMENTOFTHEEXERCISEANYSHIFTWITHADDRESSANDINDEXZEROSLCORSRCWITHINDEXANDADDRESSAMULTIPLEOFMOVEWITHFSTJSTZANDSTZJSJANYOFTHEINCORDECINSTRUCTIONSWITHADDRESSANDINDEXZEROBUTENTISNOTALWAYSANOOPBECAUSEITMIGHTCHANGERIFROMTOHOWMANYALPHAMERICCHARACTERSARETHEREINATYPEWRITERORPAPERTAPEBLOCKINACARDREADERORCARDPUNCHBLOCKINALINEPRINTERBLOCKTHEBLOCKSIZETIMESWRITEAPROGRAMTHATSETSMEMORYCELLSALLTOZEROANDISAASSHORTAPROGRAMASPOSSIBLEBASFASTAPROGRAMASPOSSIBLEHINTCONSIDERUSINGTHEMOVECOMMANDMOVEASTZENTMOVEMOVEIFTHEBYTESIZEWEREKNOWNTOEQUALONLYONEMOVEINSTRUCTIONWOULDHAVEBEENNECESSARYBUTWEARENOTALLOWEDTOMAKEASSUMPTIONSABOUTTHEBYTESIZEBUSESTZSTHISISTHESAMEASTHEPREVIOUSEXERCISEEXCEPTTHATLOCATIONSTHROUGHINCLUSIVEARETOBESETTOZEROWHEREISTHECURRENTCONTENTSOFRIYOURPROGRAMSAANDBSHOULDWORKFORANYVALUETHEYSHOULDSTARTINLOCATIONASTZDECJNNBASLIGHTLYFASTERBUTQUITEPREPOSTEROUSPROGRAMUSESSTZSJMPSTZSTZSTZJNDECJNNENNJMPAFTERTHEFOLLOWINGNUMBERONEPROGRAMHASBEENEXECUTEDWHATCHANGESTOREGISTERSTOGGLESANDMEMORYHAVETAKENPLACEFOREXAMPLEWHATISTHEFINALSETTINGOFRIOFRXOFTHEOVERFLOWANDCOMPARISONINDICATORSIFYOUHAVECORRECTLYFOLLOWEDTHEINSTRUCTIONSANOVERFLOWWILLOCCURONTHEADDWITHMINUSZEROINREGISTERAAFTERWARDSANSWEROVERFLOWISSETONCOMPARISONISSETEQUALRAISSETTORXISSETRIISSETTOANDMEMORYLOCATIONSARESETTOUNLESSTHEPROGRAMITSELFBEGINSINLOCATIONWHATISTHEEXECUTIONTIMEOFTHEPROGRAMINTHEPRECEDINGEXERCISENOTCOUNTINGTHEHLTINSTRUCTIONWRITEAPROGRAMTHATSETSALLMEMORYCELLSEQUALTOAHLTINSTRUCTIONANDTHENSTOPSHLTSOLUTIONBYHFUKUOKAACANTHEJREGISTEREVERBEZEROBWRITEAPROGRAMTHATJREGISTEROFMIXGIVENANUMBERINRISETSREGISTERJEQUALTOASSUMINGTHATYOURPROGRAMSHOULDSTARTINLOCATIONWHENYOURPROGRAMHASFINISHEDITSEXECUTIONTHECONTENTSOFALLMEMORYCELLSMUSTBEUNCHANGEDANOTUNLESSITCANBESETTOZEROBYEXTERNALMEANSSEETHEGOBUTTONEXERCISESINCEAPROGRAMCANSETONLYBYJUMPINGFROMLOCATIONBLOCATIONCONTAINSANINTEGERNUMBERWRITETWOPROGRAMSTHATCOMPUTEANDHALTWITHTHERESULTINREGISTERAONEPROGRAMSHOULDUSETHEMINIMUMNUMBEROFMEMORYLOCATIONSTHEOTHERSHOULDREQUIRETHEMINIMUMEXECUTIONTIMEPOSSIBLEASSUMETHATFITSINTOASINGLEWORDMINIMUMTIMEIFISTHEBYTESIZETHEASSUMPTIONTHATIMPLIESTHATSOCANBECONTAINEDINONEBYTETHEFOLLOWINGINGENIOUSSOLUTIONDUETOYNPATTMAKESUSEOFTHISFACTTHESIGNOFRAISTHESIGNOFSPACETIMENOTCOUNTINGTHEHLTATLEASTFIVEMULTIPLICATIONSARENECESSARYACCORDINGTOTHETHEORYDEVELOPEDINSECTIONYETTHISPROGRAMUSESONLYFOURANDINFACTTHEREISANEVENBETTERSOLUTIONBELOWMINIMUMSPACETRUEMINIMUMTIMEASRWFLOYDPOINTSOUTTHECONDITIONSIMPLYTHATSOTHEMINIMUMEXECUTIONTIMEISPOWEROFNUMBEREVALUATIONEVALUATIONOFPOWERSACHIEVEDBYREFERRINGTOATABLELOCATIONCONTAINSAWORDWRITETWOPROGRAMSTHATCOMPUTETHEREFLECTEDWORDANDHALTWITHTHERESULTINREGISTERAONEPROGRAMSHOULDDOTHISWITHOUTUSINGSABILITYTOLOADANDSTOREPARTIALFIELDSOFWORDSFIELDPARTIALBOTHPROGRAMSSHOULDTAKETHEMINIMUMPOSSIBLENUMBEROFMEMORYLOCATIONSUNDERTHESTATEDCONDITIONSINCLUDINGALLLOCATIONSUSEDFORTHEPROGRAMANDFORTEMPORARYSTORAGEOFINTERMEDIATERESULTSFIRSTBYRDDIXONSECONDBYGEORGEWAHIDIFASSUMINGTHATREGISTERSAANDXCONTAINRESPECTIVELYWRITETWOPROGRAMSTHATCHANGETHECONTENTSOFTHESEREGISTERSTORESPECTIVELYUSINGAMINIMUMMEMORYSPACEANDBMINIMUMEXECUTIONTIMEADIVWHEREBSRCSRASLCSUPPOSETHATTHEMANUFACTUREROFWISHESTOCOMEOUTWITHAMOREPOWERFULCOMPUTERMIXMASTERANDHEWANTSTOCONVINCEASMANYASPOSSIBLEOFTHOSEPEOPLENOWOWNINGACOMPUTERTOINVESTINTHEMOREEXPENSIVEMACHINEHEWANTSTODESIGNTHISNEWHARDWARETOBEANEXTENSIONMIXEXTENSIONSOFINTHESENSETHATALLPROGRAMSCORRECTLYWRITTENFORWILLWORKONTHENEWMACHINESWITHOUTCHANGESUGGESTDESIRABLETHINGSTHATCOULDBEINCORPORATEDINTHISEXTENSIONFOREXAMPLECANYOUMAKEBETTERUSEOFTHEIFIELDOFANINSTRUCTIONSOMEIDEASAOBVIOUSTHINGSLIKEFASTERMEMORYMOREINPUTOUTPUTDEVICESBTHEIFIELDCOULDBEUSEDFORJREGISTERINDEXINGANDORMULTIPLEINDEXINGTOSPECIFYTWODIFFERENTINDEXREGISTERSANDORINDIRECTADDRESSINGEXERCISESINDIRECTADINDIRECTADINDIRECTADCINDEXREGISTERSANDJREGISTERCOULDBEEXTENDEDTOAFULLFIVEBYTESTHEREFORELOCATIONSWITHHIGHERADDRESSESCOULDBEREFERREDTOONLYBYINDEXINGBUTTHATWOULDNOTBESOINTOLERABLEIFMULTIPLEINDEXINGWEREAVAILABLEASINBDANINTERRUPTCAPABILITYCOULDBEADDEDUSINGNEGATIVEMEMORYADDRESSESASINEXERCISEINTERRUPTEAREALTIMECLOCKCOULDBEADDEDINANEGATIVEMEMORYADDRESSFBITWISEOPERATIONSJUMPSONREGISTEREVENORODDANDBINARYSHIFTSCOULDBEADDEDTOBINARYVERSIONSOFSEEFOREXAMPLEEXERCISESMIXXORMIXSRBANDMIXSLBALSOPROGRAMBINARYGCDMIXORANDSECTIONGANEXECUTECOMMANDMEANINGTOPERFORMTHEINSTRUCTIONATLOCATIONMCOULDBEANOTHERVARIANTOFHANOTHERVARIANTOFCOULDSETCIREGISTERMGOBUTTONTHISPROBLEMISTOWRITEACARDLOADINGROUTINEEVERYCOMPUTERHASITSOWNPECULIARBOOTSTRAPPINGPROBLEMSFORGETTINGINFORMATIONINITIALLYINTOTHEMACHINEANDFORSTARTINGAJOBCORRECTLYINSCASETHECONTENTSOFACARDCANBEREADONLYINCHARACTERCODEANDTHECARDSTHATCONTAINTHELOADINGPROGRAMITSELFMUSTMEETTHISRESTRICTIONNOTALLPOSSIBLEBYTEVALUESCANBEREADFROMACARDANDEACHWORDREADINFROMCARDSISPOSITIVEHASONEFEATURETHATHASNOTBEENEXPLAINEDINTHETEXTTHEREISAGOBUTTONWHICHISUSEDTOGETTHECOMPUTERSTARTEDFROMSCRATCHWHENGOBUTTONITSMEMORYCONTAINSARBITRARYINFORMATIONWHENTHISBUTTONISPUSHEDBYTHECOMPUTEROPERATORTHEFOLLOWINGACTIONSTAKEPLACEASINGLECARDISREADINTOLOCATIONSTHISISESSENTIALLYEQUIVALENTTOTHEINSTRUCTIONINWHENTHECARDHASBEENCOMPLETELYREADANDTHECARDREADERISNOLONGERBUSYAJMPTOLOCATIONOCCURSTHEJREGISTERISALSOSETTOZEROANDTHEOVERFLOWTOGGLEISCLEAREDTHEMACHINENOWBEGINSTOEXECUTETHEPROGRAMITHASREADFROMTHECARDNOTECOMPUTERSWITHOUTCARDREADERSHAVETHEIRGOBUTTONATTACHEDTOANOTHERINPUTDEVICEBUTINTHISPROBLEMWEWILLASSUMETHEPRESENCEOFACARDREADERUNITTHELOADINGROUTINETOBEWRITTENMUSTSATISFYTHEFOLLOWINGCONDITIONSITHEINPUTDECKSHOULDBEGINWITHTHELOADINGROUTINEFOLLOWEDBYINFORMATIONCARDSCONTAININGTHENUMBERSTOBELOADEDFOLLOWEDBYATRANSFERCARDTHATSHUTSDOWNTHELOADINGROUTINEANDJUMPSTOTHEBEGINNINGOFTHEPROGRAMTHELOADINGROUTINESHOULDFITONTOTWOCARDSIITHEINFORMATIONCARDSHAVETHEFOLLOWINGFORMATCOLUMNSIGNOREDBYTHELOADINGROUTINECOLUMNTHENUMBEROFCONSECUTIVEWORDSTOBELOADEDONTHISCARDANUMBERBETWEENANDINCLUSIVECOLUMNSTHELOCATIONOFWORDWHICHISALWAYSORMORESOTHATITDOESNOTOVERLAYTHELOADINGROUTINECOLUMNSWORDCOLUMNSWORDIFCOLUMNCOLUMNSWORDIFCOLUMNTHECONTENTSOFWORDSAREPUNCHEDNUMERICALLYASDECIMALNUMBERSIFAWORDISTOBENEGATIVEAMINUSPUNCHISOVERPUNCHEDOVERTHELEASTSIGNIFICANTDIGITEGINCOLUMNASSUMETHATTHISCAUSESTHECHARACTERCODEINPUTTOBERATHERTHANFOREXAMPLEACARDTHATHASPUNCHEDINCOLUMNSSHOULDCAUSETHEFOLLOWINGDATATOBELOADEDIIITHETRANSFERCARDHASTHEFORMATTRANSNNNNINCOLUMNSWHERENNNNISTHEPLACEWHEREEXECUTIONSHOULDSTARTIVTHELOADINGROUTINESHOULDWORKFORALLBYTESIZESWITHOUTANYCHANGESTOTHECARDSBEARINGTHELOADINGROUTINENOCARDSHOULDCONTAINANYOFTHECHARACTERSCORRESPONDINGTOBYTESNAMELYTHECHARACTERSSINCETHESECHARACTERSCANNOTBEREADBYALLCARDREADERSINPARTICULARTHEENTINCANDCMPINSTRUCTIONSCANNOTBEUSEDTHEYCANTNECESSARILYBEPUNCHEDONACARDITISTEMPTINGTOUSEAFIELDTOGETATCOLUMNSOFTHECARDBUTTHISCANNOTBEDONESINCETOMAKETHEPROGRAMEASIERTOFOLLOWITISPRESENTEDHEREINSYMBOLICLANGUAGEANTICIPATINGSECTIONMIXINSTRUCTIONSINMIXANSTHEASSEMBLYLANGUAGEMIXALASSEMBLYLANGUAGEFORMIXINSTRUCTIONINMIXSYMBOLICASYMBOLICLANGUAGEISUSEDTOMAKEPROGRAMSCONSIDERABLYEASIERTOREADANDTOWRITEANDTOSAVETHEPROGRAMMERFROMWORRYINGABOUTTEDIOUSCLERICALDETAILSTHATOFTENLEADTOUNNECESSARYERRORSTHISLANGUAGEMIXALASSEMBLYLANGUAGEISANEXTENSIONOFTHENOTATIONUSEDFORINSTRUCTIONSINTHEPREVIOUSSECTIONITSMAINFEATURESARETHEOPTIONALUSEOFALPHABETICNAMESTOSTANDFORNUMBERSANDALOCATIONFIELDTOASSOCIATENAMESWITHMEMORYLOCATIONSCANREADILYBECOMPREHENDEDIFWECONSIDERFIRSTASIMPLEEXAMPLETHEFOLLOWINGCODEISPARTOFALARGERPROGRAMITISASUBROUTINETOFINDTHEMAXIMUMOFELEMENTSACCORDINGTOALGORITHMFINDTHEMAXMAXIMUMALGORITHMPROGRAMTHISPROGRAMISANEXAMPLEOFSEVERALTHINGSSIMULTANEOUSLYATHECOLUMNSHEADEDLOCOPANDADDRESSAREOFPRINCIPALINTERESTLOCATIONFIELDOFMIXALLINEOPCODEFIELDOFMIXALLINEADDRESSFIELDOFMIXALLINETHEYCONTAINAPROGRAMINTHEMIXALSYMBOLICMACHINELANGUAGEANDWESHALLEXPLAINTHEDETAILSOFTHISPROGRAMBELOWBTHECOLUMNHEADEDASSEMBLEDINSTRUCTIONSSHOWSTHEACTUALNUMERICMACHINELANGUAGETHATCORRESPONDSTOTHEMIXALPROGRAMMIXALHASBEENDESIGNEDSOTHATANYMIXALPROGRAMCANEASILYBETRANSLATEDINTONUMERICMACHINELANGUAGETHETRANSLATIONISUSUALLYCARRIEDOUTBYANOTHERCOMPUTERPROGRAMCALLEDANASSEMBLYPROGRAMORASSEMBLERTHUSPROGRAMMERSMAYDOALLOFTHEIRMACHINELANGUAGEPROGRAMMINGINMIXALNEVERBOTHERINGTODETERMINETHEEQUIVALENTNUMERICCODESBYHANDVIRTUALLYALLPROGRAMSINTHISBOOKAREWRITTENINMIXALCTHECOLUMNHEADEDLINENOISNOTANESSENTIALPARTOFTHEMIXALPROGRAMITISMERELYINCLUDEDWITHMIXALEXAMPLESINTHISBOOKSOTHATWECANREADILYREFERTOPARTSOFTHEPROGRAMDTHECOLUMNHEADEDREMARKSGIVESEXPLANATORYINFORMATIONABOUTTHECOMMENTSPROGRAMANDITISCROSSREFERENCEDTOTHESTEPSOFALGORITHMFINDTHEMAXTHEREADERSHOULDCOMPARETHATALGORITHMPAGEALGMPAGEWITHTHEPROGRAMABOVENOTICETHATALITTLEPROGRAMMERSLICENSEWASUSEDDURINGTHETRANSCRIPTIONINTOCODEFOREXAMPLESTEPMHASBEENPUTLASTTHEREGISTERASSIGNMENTSSTATEDATTHEBEGINNINGOFPROGRAMMSHOWWHATCOMPONENTSOFCORRESPONDTOTHEVARIABLESINTHEALGORITHMETHECOLUMNHEADEDTIMESWILLBEINSTRUCTIVEINMANYOFTHEPROGRAMSWEWILLBESTUDYINGINTHISBOOKITREPRESENTSTHEPROFILETHENUMBEROFTIMESTHEINSTRUCTIONONTHATLINEWILLBEEXECUTEDDURINGTHECOURSEOFTHEPROGRAMTHUSLINEWILLBEPERFORMEDTIMESETCFROMTHISINFORMATIONWECANDETERMINETHELENGTHOFTIMEREQUIREDTOPERFORMTHESUBROUTINEITISWHEREISTHEQUANTITYTHATWASCAREFULLYANALYZEDINSECTIONNOWLETSDISCUSSTHEMIXALPARTOFPROGRAMMLINESAYSTHATSYMBOLXISTOBEEQUIVALENTTOTHENUMBERTHEEFFECTOFTHISMAYBESEENONLINEWHERETHENUMERICEQUIVALENTOFTHEINSTRUCTIONCMPAXAPPEARSASTHATISCMPALINESAYSTHATTHELOCATIONSFORSUCCEEDINGLINESSHOULDBECHOSENSEQUENTIALLYORIGINATINGWITHTHEREFORETHESYMBOLMAXIMUMTHATAPPEARSINTHELOCFIELDOFLINEBECOMESEQUIVALENTTOTHENUMBERINITISEQUIVALENTTOLOOPISEQUIVALENTTOETCONLINESTHROUGHTHEOPFIELDCONTAINSTHESYMBOLICNAMESOFINSTRUCTIONSSTJENTETCBUTTHESYMBOLICNAMESEQUANDORIGWHICHAPPEARINTHEOPCOLUMNOFLINESANDEQUORIGARESOMEWHATDIFFERENTEQUANDORIGARECALLEDPSEUDOOPERATIONSBECAUSETHEYAREOPERATORSOFMIXALBUTNOTOFPSEUDOOPERATIONSPROVIDESPECIALINFORMATIONABOUTASYMBOLICPROGRAMWITHOUTBEINGINSTRUCTIONSOFTHEPROGRAMITSELFTHUSTHELINEONLYTALKSABOUTPROGRAMMITDOESNOTSIGNIFYTHATANYVARIABLEISTOBESETEQUALTOWHENTHEPROGRAMISRUNNOTICETHATNOINSTRUCTIONSAREASSEMBLEDFORLINESANDLINEISASTOREJINSTRUCTIONTHATSTORESTHECONTENTSOFREGISTERJINTOTHEFIELDOFLOCATIONEXITINOTHERWORDSITSTORESRJINTOTHEADDRESSPARTOFTHEINSTRUCTIONFOUNDONLINEASMENTIONEDEARLIERPROGRAMMISINTENDEDTOBEPARTOFALARGERPROGRAMELSEWHERETHESEQUENCEWOULDFOREXAMPLEJUMPTOPROGRAMMWITHSETTOPROGRAMMWOULDTHENFINDTHELARGESTOFTHEELEMENTSANDWOULDRETURNTOTHEINSTRUCTIONSTAMAXWITHTHEMAXIMUMVALUEINRAANDWITHITSPOSITIONINRISEEEXERCISELINEJUMPSTHECONTROLTOLINELINESNEEDNOFURTHEREXPLANATIONLINEINTRODUCESANEWNOTATIONANASTERISKREADSELFREFERSTOTHELOCATIONOFTHELINEONWHICHITAPPEARSSELFPLUSTHREETHEREFOREREFERSTOTHREELOCATIONSPASTTHECURRENTLINESINCELINEISANINSTRUCTIONTHATCORRESPONDSTOLOCATIONTHEAPPEARINGTHEREREFERSTOLOCATIONTHERESTOFTHESYMBOLICCODEISSELFEXPLANATORYNOTICETHEAPPEARANCEOFANASTERISKAGAINONLINESEEEXERCISEOURNEXTEXAMPLEINTRODUCESAFEWMOREFEATURESOFTHEASSEMBLYLANGUAGETHEOBJECTISTOCOMPUTEANDPRINTATABLEOFTHEFIRSTPRIMENUMBERSWITHCOLUMNSOFNUMBERSEACHTHETABLESHOULDAPPEARASFOLLOWSONTHELINEPRINTERPRIMENUMBERSALGORITHMTOCOMPUTEWEWILLUSETHEFOLLOWINGMETHODPPRIMETABLEPPBUFSWAPSTEPSALGORITHMPPRINTTABLEOFPRIMESTHISALGORITHMHASTWODISTINCTPARTSSTEPSPPPREPAREANINTERNALTABLEOFPRIMESANDSTEPSPPPRINTTHEANSWERINTHEFORMSHOWNABOVETHELATTERPARTUSESTWOBUFFERSINWHICHLINEIMAGESAREFORMEDWHILEONEBUFFERISBEINGPRINTEDTHEOTHERONEISBEINGFILLEDBUFFERSWAPPINGPPSTARTTABLESETINTHEFOLLOWINGSTEPSNWILLRUNTHROUGHTHEODDNUMBERSTHATARECANDIDATESFORPRIMESJWILLKEEPTRACKOFHOWMANYPRIMESHAVEBEENFOUNDSOFARPNISPRIMESETPFOUNDIFGOTOSTEPPPADVANCENSETPSETPRIMEKWILLRUNTHROUGHTHEPOSSIBLEPRIMEDIVISORSOFNPDIVIDENBYPRIMEKLETQBETHEQUOTIENTANDRTHEREMAINDERIFHENCENISNOTPRIMEGOTOPPPRIMEKLARGEIFGOTOPINSUCHACASENMUSTBEPRIMETHEPROOFOFTHISFACTISINTERESTINGANDALITTLEUNUSUALSEEEXERCISEPADVANCEKINCREASEKBYANDGOTOPPPRINTTITLENOWWEAREREADYTOPRINTTHETABLEADVANCETHEPRINTERTOTHENEXTPAGESETBUFFERTOTHETITLELINEANDPRINTTHISLINESETPSETUPLINEPUTPRIMEMPRIMEPRIMEINTOBUFFERBINTHEPROPERFORMATPPRINTLINEPRINTBUFFERBSETTHEREBYSWITCHINGTOTHEOTHERBUFFERANDINCREASEMBYIFRETURNTOPOTHERWISETHEALGORITHMTERMINATESFIGFIGALGORITHMPTHEFOLLOWINGPOINTSOFINTERESTSHOULDBENOTEDABOUTTHISPROGRAMPRIMENUMBERSPROGRAMTOCOMPUTELINESANDBEGINWITHANASTERISKTHISSIGNIFIESACOMMENTLINETHATISMERELYEXPLANATORYHAVINGNOACTUALEFFECTONTHEASSEMBLEDPROGRAMASINPROGRAMMTHEPSEUDOOPERATIONEQUINLINESETSTHEEQUIVALENTOFAEQUSYMBOLINTHISCASETHEEQUIVALENTOFLISSETTHEPROGRAMOFLINESLREPRESENTSTHENUMBEROFPRIMESTOBECOMPUTEDNOTICETHATINLINETHESYMBOLPRIMEGETSANEGATIVEEQUIVALENTTHEEQUIVALENTOFASYMBOLMAYBEANYSIGNEDFIVEBYTENUMBERINLINETHEEQUIVALENTOFBUFISCALCULATEDASBUFNAMELYMIXALPROVIDESALIMITEDAMOUNTOFARITHMETICONNUMBERSANOTHEREXAMPLEAPPEARSONLINEWHERETHEVALUEOFPRIMELINTHISCASEISCALCULATEDBYTHEASSEMBLYPROGRAMTHESYMBOLPRINTERHASBEENUSEDINTHEFPARTONLINESANDTHEFPARTWHICHISALWAYSENCLOSEDINPARENTHESESMAYBENUMERICORSYMBOLICJUSTASTHEOTHERPORTIONSOFTHEADDRESSFIELDARELINEILLUSTRATESTHEPARTIALFIELDSPECIFICATIONUSINGACOLONMIXALPROVIDESSEVERALWAYSTOSPECIFYNONINSTRUCTIONWORDSCONLINEUSESTHEPSEUDOOPERATIONCONTOSPECIFYANORDINARYCONSTANTTHERESULTOFLINEISTOASSEMBLETHEWORDLINESHOWSASLIGHTLYMORECOMPLICATEDCONSTANTBUFWHICHCONSTANTSINASSEMBLYLANGUAGEASSEMBLESASTHEWORDACONSTANTMAYBEENCLOSEDINEQUALSIGNSINWHICHCASEWECALLITALITERALCONSTANTSEELINESANDTHEASSEMBLERAUTOMATICALLYCREATESINTERNALNAMESANDINSERTSCONLINESFORLITERALCONSTANTSFOREXAMPLELINESANDOFPROGRAMPAREEFFECTIVELYCHANGEDTOAREEFFECTIVELYINSERTEDASPARTOFTHEASSEMBLYPROCEDUREPOSSIBLYWITHCONFIRSTLINEAWILLASSEMBLEINTOTHEWORDTHEUSEOFLITERALCONSTANTSISADECIDEDCONVENIENCEBECAUSEITMEANSTHATCONPROGRAMMERSDONOTHAVETOINVENTSYMBOLICNAMESFORTRIVIALCONSTANTSNORDOTHEYHAVETOREMEMBERTOINSERTCONSTANTSATTHEENDOFEACHPROGRAMPROGRAMMERSCANKEEPTHEIRMINDSONTHECENTRALPROBLEMSANDNOTWORRYABOUTSUCHROUTINEDETAILSHOWEVERTHELITERALCONSTANTSINPROGRAMPARENTESPECIALLYGOODEXAMPLESBECAUSEWEWOULDHAVEHADASLIGHTLYBETTERPROGRAMIFWEHADREPLACEDLINESANDBYTHEMOREEFFICIENTCOMMANDSENTLANDENTAGOODASSEMBLYLANGUAGESHOULDMIMICTHEWAYAPROGRAMMERTHINKSABOUTMACHINEPROGRAMSONEEXAMPLEOFTHISPHILOSOPHYISTHEUSEOFLITERALCONSTANTSASWEHAVEJUSTMENTIONEDANOTHEREXAMPLEISTHEUSEOFWHICHWASEXPLAINEDINPROGRAMMATHIRDEXAMPLEISTHEIDEAOFLOCALSYMBOLSLOCALSYMBOLSSUCHASTHESYMBOLHWHICHAPPEARSINTHELOCATIONFIELDOFLINESANDLOCALSYMBOLSARESPECIALSYMBOLSWHOSEEQUIVALENTSCANBEREDEFINEDASMANYTIMESASDESIREDAGLOBALSYMBOLLIKEPRIMEHASBUTONESIGNIFICANCETHROUGHOUTAPROGRAMANDIFITWERETOAPPEARINTHELOCATIONFIELDOFMORETHANONELINEANERRORWOULDBEINDICATEDBYTHEASSEMBLERBUTLOCALSYMBOLSHAVEADIFFERENTNATUREWEWRITEFOREXAMPLEHHEREINTHELOCATIONFIELDANDFFORWARDORBBACKWARDINTHEADDRESSFIELDOFAMIXALLINETHUSTHEFINLINEREFERSTOLINETHEBINLINEREFERSBACKTOLINEANDTHEBINLINEREFERSTOLINEANADDRESSOFFORBNEVERREFERSTOITSOWNLINEFOREXAMPLETHETHREELINESOFMIXALCODEAREVIRTUALLYEQUIVALENTTOTHESINGLELINETHESYMBOLSFANDBSHOULDNEVERBEUSEDINTHELOCATIONFIELDTHESYMBOLHSHOULDNEVERBEUSEDINTHEADDRESSFIELDTHEREARETENLOCALSYMBOLSWHICHCANBEOBTAINEDBYREPLACINGINTHESEEXAMPLESBYANYDIGITFROMTOTHEIDEAOFLOCALSYMBOLSWASINTRODUCEDBYMECONWAYININLOCALSYMBOLSCONNECTIONWITHANASSEMBLYPROGRAMFORTHEUNIVACILOCALSYMBOLSRELIEVEPROGRAMMERSFROMTHENECESSITYOFCHOOSINGSYMBOLICNAMESFOREVERYADDRESSWHENALLTHEYWANTTODOISREFERTOANINSTRUCTIONAFEWLINESAWAYTHEREOFTENISNOAPPROPRIATENAMEFORNEARBYLOCATIONSSOPROGRAMMERSHAVETENDEDTOINTRODUCEMEANINGLESSSYMBOLSLIKEXXXETCWITHTHEPOTENTIALDANGEROFDUPLICATIONLOCALSYMBOLSARETHEREFOREQUITEUSEFULANDNATURALINANASSEMBLYLANGUAGETHEADDRESSPARTOFLINESANDISBLANKTHISMEANSTHATTHEADDRESSFIELDOFMIXALLINEASSEMBLEDADDRESSWILLBEZEROWECOULDHAVELEFTTHEADDRESSBLANKINLINEASWELLBUTTHEPROGRAMWOULDHAVEBEENLESSREADABLEWITHOUTTHEREDUNDANTLINESUSETHEPSEUDOOPERATIONALFWHICHCREATESAALFFIVEBYTECONSTANTINALPHAMERICCHARACTERCODEFOREXAMPLELINECAUSESTHEWORDTOBEASSEMBLEDREPRESENTINGHUNDPARTOFTHETITLELINEINPROGRAMPSOUTPUTALLLOCATIONSWHOSECONTENTSARENOTSPECIFIEDINTHEMIXALPROGRAMAREORDINARILYSETTOPOSITIVEZEROEXCEPTTHELOCATIONSTHATAREUSEDBYTHELOADINGROUTINEUSUALLYTHUSTHEREISNONEEDTOSETTHEOTHERWORDSOFTHETITLELINETOBLANKSAFTERLINEARITHMETICMAYBEUSEDTOGETHERWITHORIGSEELINESORIGANDTHELASTLINEOFACOMPLETEMIXALPROGRAMALWAYSHASTHEENDOPCODEENDTHEADDRESSONTHISLINEISTHELOCATIONATWHICHTHEPROGRAMISTOBEGINONCEITHASBEENLOADEDINTOMEMORYASAFINALNOTEABOUTPROGRAMPWECANOBSERVETHATTHEINSTRUCTIONSHAVEBEENORGANIZEDSOTHATINDEXREGISTERSARECOUNTEDTOWARDSZEROANDTESTEDAGAINSTZEROWHENEVERPOSSIBLEFOREXAMPLETHEQUANTITYJNOTJISKEPTINRILINESAREPARTICULARLYNOTEWORTHYALTHOUGHPERHAPSABITTRICKYITMAYBEOFINTERESTTONOTEAFEWOFTHESTATISTICSOBSERVEDWHENPROGRAMPWASACTUALLYRUNTHEDIVISIONINSTRUCTIONINLINEWASEXECUTEDTIMESTHETIMETOPERFORMLINESWASPRIMEPROGRAMPROGRAMSCANBEPUNCHEDONTOCARDSORTYPEDONACOMPUTERCARDSPUNCHEDTERMINALASSHOWNINFIGFIGTHEFOLLOWINGFORMATISUSEDINTHECASEOFPUNCHEDCARDSHOWEVERIFCOLUMNCONTAINSANASTERISKTHEENTIRECARDISTREATEDASALOCATIONFIELDOFMIXALLINECOMMENTTHEADDRESSFIELDENDSWITHTHEFIRSTBLANKCOLUMNFOLLOWINGCOLUMNANYEXPLANATORYINFORMATIONMAYBEPUNCHEDTOTHERIGHTOFTHISFIRSTBLANKCOLUMNWITHNOEFFECTONTHEASSEMBLEDPROGRAMEXCEPTIONWHENTHEOPFIELDISALFTHEREMARKSALWAYSSTARTINCOLUMNALFFIGPUNCHEDCARDSFIGTHEFIRSTLINESOFPROGRAMPPUNCHEDONTOCARDSORTYPEDONATERMINALWHENTHEINPUTCOMESFROMATERMINALALESSRESTRICTIVEFORMATISUSEDTHELOCFIELDENDSWITHTHEFIRSTBLANKSPACEWHILETHEOPANDADDRESSFIELDSIFPRESENTBEGINWITHANONBLANKCHARACTERANDCONTINUETOTHENEXTBLANKTHESPECIALOPCODEALFISHOWEVERFOLLOWEDEITHERBYTWOBLANKSPACESANDFIVECHARACTERSOFALPHAMERICDATAORBYASINGLEBLANKSPACEANDFIVEALPHAMERICCHARACTERSTHEFIRSTOFWHICHISNONBLANKTHEREMAINDEROFEACHLINECONTAINSOPTIONALREMARKSADDRESSFIELDOFMIXALLINETHEASSEMBLYPROGRAMACCEPTSINPUTFILESPREPAREDINTHISMANNERANDCONVERTSTHEMTOMACHINELANGUAGEPROGRAMSINLOADABLEFORMUNDERFAVORABLECIRCUMSTANCESTHEREADERWILLHAVEACCESSTOAASSEMBLERANDSIMULATORONWHICHVARIOUSEXERCISESINTHISBOOKCANBEWORKEDOUTNOWWEHAVESEENWHATCANBEDONEINMIXALWECONCLUDETHISSECTIONBYDESCRIBINGTHERULESMORECAREFULLYANDINPARTICULARWESHALLOBSERVEWHATISNOTALLOWEDINMIXALTHEFOLLOWINGCOMPARATIVELYFEWRULESDEFINETHELANGUAGEASYMBOLISASTRINGOFONETOTENLETTERSANDORDIGITSCONTAININGATLEASTONELETTEREXAMPLESPRIMETEMPBYTHESPECIALSYMBOLSHFANDBWHEREISASINGLEDIGITWILLFORTHEPURPOSESOFTHISDEFINITIONBEREPLACEDBYOTHERUNIQUESYMBOLSACCORDINGTOTHELOCALSYMBOLCONVENTIONDESCRIBEDEARLIERANUMBERISASTRINGOFONETOTENDIGITSEXAMPLEEACHAPPEARANCEOFASYMBOLINAMIXALPROGRAMISSAIDTOBEEITHERADEFINEDSYMBOLORAFUTUREREFERENCEADEFINEDSYMBOLISASYMBOLTHATHASAPPEAREDINTHELOCFIELDOFAPRECEDINGLINEOFTHISMIXALPROGRAMAFUTUREREFERENCEISASYMBOLTHATHASNOTYETBEENDEFINEDINTHISWAYANATOMICEXPRESSIONISEITHERAANUMBERORBADEFINEDSYMBOLDENOTINGTHENUMERICALEQUIVALENTOFTHATSYMBOLSEERULEORCANASTERISKDENOTINGTHEVALUEOFSEERULESANDANEXPRESSIONISEITHERAANATOMICEXPRESSIONORBAPLUSORMINUSSIGNFOLLOWEDBYANATOMICEXPRESSIONORCANEXPRESSIONFOLLOWEDBYABINARYOPERATIONFOLLOWEDBYANATOMICEXPRESSIONTHESIXADMISSIBLEBINARYOPERATIONSAREASTERISKANDTHEYAREDEFINEDONNUMERICWORDSASFOLLOWSHEREAABBANDCCDENOTELOCATIONSCONTAININGTHERESPECTIVEVALUESOFTHESYMBOLSABANDCOPERATIONSWITHINANEXPRESSIONARECARRIEDOUTFROMLEFTTORIGHTEXAMPLESANAPARTWHICHISUSEDTODESCRIBETHEADDRESSFIELDOFAINSTRUCTIONISEITHERAVACUOUSDENOTINGTHEVALUEZEROORBANEXPRESSIONORCAFUTUREREFERENCEDENOTINGTHEEVENTUALEQUIVALENTOFTHESYMBOLSEERULEORDALITERALCONSTANTDENOTINGAREFERENCETOANINTERNALLYCREATEDSYMBOLSEERULEANINDEXPARTWHICHISUSEDTODESCRIBETHEINDEXFIELDOFAINSTRUCTIONISEITHERAVACUOUSDENOTINGTHEVALUEZEROORBACOMMAFOLLOWEDBYANEXPRESSIONDENOTINGTHEVALUEOFTHATEXPRESSIONANFPARTWHICHISUSEDTODESCRIBETHEFFIELDOFAINSTRUCTIONISEITHERAVACUOUSDENOTINGTHENORMALFSETTINGBASEDONTHEOPFIELDASSHOWNINTABLEMIXCHARTORBALEFTPARENTHESISFOLLOWEDBYANEXPRESSIONFOLLOWEDBYARIGHTPARENTHESISDENOTINGTHEVALUEOFTHEEXPRESSIONAWVALUEWHICHISUSEDTODESCRIBEAFULLWORDWVALUEMIXCONSTANTISEITHERAANEXPRESSIONFOLLOWEDBYANFPARTINWHICHCASEAVACUOUSFPARTDENOTESORBAWVALUEFOLLOWEDBYACOMMAFOLLOWEDBYAWVALUEOFTHEFORMAAWVALUEDENOTESTHEVALUEOFANUMERICWORDDETERMINEDASFOLLOWSLETTHEWVALUEHAVETHEFORMEFEFEFWHERETHEESAREEXPRESSIONSANDTHEFSAREFIELDSTHEDESIREDRESULTISTHEFINALVALUETHATWOULDAPPEARINMEMORYLOCATIONWVALIFTHEFOLLOWINGHYPOTHETICALPROGRAMWEREEXECUTEDHERECCDENOTELOCATIONSCONTAININGTHEVALUESOFEXPRESSIONSEEEACHFMUSTHAVETHEFORMLWHEREEXAMPLESWVALUETHEASSEMBLYPROCESSMAKESUSEOFAVALUEDENOTEDBYCALLEDTHELOCATIONCOUNTERWHICHISINITIALLYZEROTHEVALUEOFSHOULDALWAYSBEANONNEGATIVENUMBERTHATCANFITINTWOBYTESWHENTHELOCATIONFIELDOFALINEISNOTBLANKITMUSTCONTAINASYMBOLTHATHASNOTBEENPREVIOUSLYDEFINEDTHEEQUIVALENTOFTHATSYMBOLISTHENDEFINEDTOBETHECURRENTVALUEOFAFTERPROCESSINGTHELOCFIELDASDESCRIBEDINRULETHEASSEMBLYPROCESSDEPENDSONTHEVALUEOFTHEOPFIELDTHEREARESIXPOSSIBILITIESFOROPAOPISASYMBOLICOPERATOROPCODEFIELDOFMIXALLINESEETABLEMIXCHARTATTHEENDOFTHEPREVIOUSSECTIONTHECHARTDEFINESTHENORMALCANDFVALUESFOREACHOPERATORINTHISCASETHEADDRESSSHOULDBEANAPARTRULEFOLLOWEDBYANINDEXPARTRULEFOLLOWEDBYANFPARTRULEWETHEREBYOBTAINFOURVALUESCFAANDITHEEFFECTISTOASSEMBLETHEWORDDETERMINEDBYTHESEQUENCELDACSTAWORDLDAFSTAWORDLDAISTAWORDLDAASTAWORDINTOTHELOCATIONSPECIFIEDBYANDTOADVANCEBYBOPISEQUTHEADDRESSSHOULDBEAEQUWVALUESEERULEIFTHELOCFIELDISNONBLANKTHEEQUIVALENTOFTHESYMBOLAPPEARINGTHEREISSETEQUALTOTHEVALUESPECIFIEDINADDRESSTHISRULETAKESPRECEDENCEOVERRULETHEVALUEOFISUNCHANGEDASANONTRIVIALEXAMPLECONSIDERTHELINEWHICHALLOWSTHEPROGRAMMERTOHAVEASYMBOLWHOSEVALUEDEPENDSONTHEBYTESIZETHISISANACCEPTABLESITUATIONSOLONGASTHERESULTINGPROGRAMISMEANINGFULWITHEACHPOSSIBLEBYTESIZECOPISORIGTHEADDRESSSHOULDBEAORIGWVALUESEERULETHELOCATIONCOUNTERISSETTOTHISVALUENOTICETHATBECAUSEOFRULEASYMBOLAPPEARINGINTHELOCFIELDOFANORIGLINEGETSASITSEQUIVALENTTHEVALUEOFBEFOREITHASCHANGEDFOREXAMPLESETSTHEEQUIVALENTOFTABLETOTHEFIRSTOFLOCATIONSDOPISCONTHEADDRESSSHOULDBEACONWVALUETHEEFFECTISTOASSEMBLEAWORDHAVINGTHISVALUEINTOTHELOCATIONSPECIFIEDBYANDTOADVANCEBYEOPISALFTHEEFFECTISTOASSEMBLETHEWORDALFOFCHARACTERCODESFORMEDBYTHEFIRSTFIVECHARACTERSOFTHEADDRESSFIELDOTHERWISEBEHAVINGLIKECONFOPISENDTHEADDRESSSHOULDBEAWVALUEENDWHICHSPECIFIESINITSFIELDTHELOCATIONOFTHEINSTRUCTIONATWHICHTHEPROGRAMBEGINSTHEENDLINESIGNALSTHEENDOFAMIXALPROGRAMTHEASSEMBLEREFFECTIVELYINSERTSADDITIONALLINESJUSTBEFORETHEENDLINEINARBITRARYORDERCORRESPONDINGTOALLUNDEFINEDSYMBOLSANDLITERALCONSTANTSSEERULESANDTHUSASYMBOLINTHELOCFIELDOFTHEENDLINEWILLDENOTETHEFIRSTLOCATIONFOLLOWINGTHEINSERTEDWORDSLITERALCONSTANTSAWVALUETHATISLESSTHANCHARACTERSLONGMAYBEENCLOSEDBETWEENSIGNSANDUSEDASAFUTUREREFERENCETHEEFFECTISTOCREATEANEWSYMBOLINTERNALLYANDTOINSERTACONLINEDEFININGTHATSYMBOLJUSTBEFORETHEENDLINESEEREMARKFOLLOWINGPROGRAMPEVERYSYMBOLHASONEANDONLYONEEQUIVALENTVALUETHISISAEQUIVALENTOFMIXALSYMBOLFULLWORDNUMBERTHATISNORMALLYDETERMINEDBYTHESYMBOLSAPPEARANCEINLOCACCORDINGTORULEORRULEBIFTHESYMBOLNEVERAPPEARSINLOCANEWLINEISEFFECTIVELYINSERTEDBEFORETHEENDLINEHAVINGCONANDANDTHENAMEOFTHESYMBOLINLOCNOTETHEMOSTSIGNIFICANTCONSEQUENCEOFTHERULESABOVEISTHERESTRICTIONONFUTUREREFERENCESASYMBOLTHATHASNOTYETBEENDEFINEDFUTUREREFERENCERESTRICTIONSINTHELOCFIELDOFAPREVIOUSLINEMAYNOTBEUSEDEXCEPTASTHEAPARTOFANINSTRUCTIONINPARTICULARITMAYNOTBEUSEDAINCONNECTIONWITHARITHMETICOPERATIONSORBINTHEADDRESSFIELDOFEQUORIGORCONFOREXAMPLEANDAREBOTHILLEGALTHISRESTRICTIONHASBEENIMPOSEDINORDERTOALLOWMOREEFFICIENTASSEMBLYOFPROGRAMSANDTHEEXPERIENCEGAINEDINWRITINGTHISSETOFBOOKSHASSHOWNTHATITISAMILDLIMITATIONTHATRARELYMAKESMUCHDIFFERENCEACTUALLYHASTWOSYMBOLICLANGUAGESFORLOWLEVELPROGRAMMINGMIXALTHEAUTHORWASASTONISHEDTOLEARNINTHATMIXALISALSOTHENAMEOFALAUNDRYDETERGENTINYUGOSLAVIADEVELOPEDFORUSEWITHAVTOMATEAUTOMATICSAMACHINEORIENTEDLANGUAGETHATISDESIGNEDTOFACILITATEONEPASSTRANSLATIONBYAVERYSIMPLEASSEMBLYPROGRAMANDPLMIXWHICHMOREADEQUATELYPLMIXREFLECTSDATAANDCONTROLSTRUCTURESANDWHICHLOOKSRATHERLIKETHEREMARKSFIELDOFMIXALPROGRAMSEXERCISESFIRSTSETTHETEXTREMARKEDTHATXEQUDOESNOTASSEMBLEANYINSTRUCTIONTHATSETSTHEVALUEOFAVARIABLESUPPOSETHATYOUAREWRITINGAPROGRAMINWHICHTHEALGORITHMISSUPPOSEDTOSETTHEVALUECONTAINEDINACERTAINMEMORYCELLWHOSESYMBOLICNAMEISXEQUALTOHOWCOULDYOUEXPRESSTHISINMIXALENTXSTXXLINEOFPROGRAMMSAYSJMPWHEREDENOTESTHELOCATIONOFTHATLINEWHYDOESNTTHEPROGRAMGOINTOANINFINITELOOPENDLESSLYREPEATINGTHISINSTRUCTIONTHESTJINSTRUCTIONINLINERESETSTHISADDRESSITISCONVENTIONALTODENOTETHEADDRESSOFSUCHINSTRUCTIONSBYBOTHBECAUSEITISSIMPLETOWRITEANDBECAUSEITPROVIDESARECOGNIZABLETESTOFANERRORCONDITIONINAPROGRAMINCASEASUBROUTINEHASNOTBEENENTEREDPROPERLYBECAUSEOFSOMEOVERSIGHTSOMEPEOPLEPREFERWHATISTHEEFFECTOFTHEFOLLOWINGPROGRAMIFITISUSEDINCONJUNCTIONWITHPROGRAMMREADINWORDSFROMTAPEUNITZEROEXCHANGETHEIRMAXIMUMWITHTHELASTOFTHEMEXCHANGETHEMAXIMUMOFTHEREMAININGWITHTHELASTOFTHOSEETCEVENTUALLYTHEWORDSWILLBECOMECOMPLETELYSORTEDINTONONDECREASINGORDERTHERESULTISTHENWRITTENONTOTAPEUNITONECOMPAREWITHALGORITHMSTRAIGHTSELECTIONASSEMBLEPROGRAMPBYHANDITWONTTAKEASLONGASYOUTHINKWHATARETHEACTUALNUMERICALCONTENTSOFMEMORYCORRESPONDINGTOTHATSYMBOLICPROGRAMNONZEROLOCATIONSWHYDOESNTPROGRAMPNEEDAJBUSINSTRUCTIONTODETERMINEWHENTHELINEPRINTERISREADYJBUSEACHOUTWAITSFORTHEPREVIOUSPRINTEROPERATIONTOFINISHFROMTHEOTHERBUFFERASHOWTHATIFISNOTPRIMEHASADIVISORWITHBUSETHISFACTTOSHOWTHATTHETESTINSTEPPOFALGORITHMPPROVESTHATNISPRIMEAIFISNOTPRIMEBYDEFINITIONHASADIVISORWITHIFTHENISADIVISORWITHBIFNISNOTPRIMENHASAPRIMEDIVISORWITHTHEALGORITHMHASVERIFIEDTHATNHASNOPRIMEDIVISORSALSOANYPRIMEDIVISOROFNISTHEREFOREGREATERTHANWEMUSTALSOPROVETHATTHEREWILLBEASUFFICIENTLYLARGEPRIMELESSTHANNWHENNISPRIMENAMELYTHATTHESTPRIMEISLESSTHANOTHERWISEKWOULDEXCEEDJANDPRIMEKWOULDBEZEROWHENWENEEDEDITTOBELARGETHENECESSARYPROOFFOLLOWSFROMBERTRANDSPOSTULATEIFISPRIMETHEREISALARGERPRIMELESSTHANAWHATISTHEMEANINGOFBINLINEOFPROGRAMPBWHATEFFECTIFANYWOULDBECAUSEDIFTHELOCATIONOFLINEWERECHANGEDTOHANDTHEADDRESSOFLINEWERECHANGEDTOBLOCALSYMBOLSAITREFERSTOTHELOCATIONOFLINEBTHEPROGRAMWOULDTHENFAILLINEWOULDREFERTOLINEINSTEADOFLINELINEWOULDREFERTOLINEINSTEADOFLINEWHATDOESTHEFOLLOWINGPROGRAMDODONOTRUNITONACOMPUTERFIGUREITOUTBYHANDMIXALASSEMBLYLANGUAGEFORMIXITPRINTSLINESIFTHECHARACTERSONTHESELINESWEREARRANGEDENDTOENDTHEYWOULDREACHQUITEFARANDWOULDCONSISTOFFIVEBLANKSFOLLOWEDBYFIVEASFOLLOWEDBYTENBLANKSFOLLOWEDBYFIVEASFOLLOWEDBYFIFTEENBLANKSFOLLOWEDBYBLANKSFOLLOWEDBYFIVEASFOLLOWEDBYBLANKSUNTILCHARACTERSHAVEBEENPRINTEDTHETHIRDFROMLASTLINEENDSWITHAAAAAANDBLANKSTHEFINALTWOLINESAREENTIRELYBLANKTHETOTALEFFECTISONEOFOPARTEXERCISESSECONDSETTHESEEXERCISESARESHORTPROGRAMMINGPROBLEMSREPRESENTINGTYPICALCOMPUTERAPPLICATIONSANDCOVERINGAWIDERANGEOFTECHNIQUESEVERYREADERISENCOURAGEDTOCHOOSEAFEWOFTHESEPROBLEMSINORDERTOGETSOMEEXPERIENCEUSINGASWELLASAGOODREVIEWOFBASICPROGRAMMINGSKILLSIFDESIREDTHESEEXERCISESMAYBEWORKEDCONCURRENTLYASTHERESTOFCHAPTERISBEINGREADTHEFOLLOWINGLISTINDICATESTHETYPESOFPROGRAMMINGTECHNIQUESTHATAREINVOLVEDTHEUSEOFSWITCHINGTABLESFORMULTIWAYDECISIONSEXERCISESANDTHEUSEOFINDEXREGISTERSWITHTWODIMENSIONALARRAYSEXERCISESANDMATRIXREPRESENTATIONSEQUENTIALARRAYSUNPACKINGCHARACTERSEXERCISESANDPACKEDDATAINTEGERANDSCALEDDECIMALARITHMETICEXERCISESANDFIXEDPOINTARITHMETICTHEUSEOFSUBROUTINESEXERCISESANDSUBROUTINESINPUTBUFFERINGEXERCISEBUFFERINGOFIOOUTPUTBUFFERINGEXERCISESANDLISTPROCESSINGEXERCISEREALTIMECONTROLEXERCISEGRAPHICALDISPLAYEXERCISEWHENEVERANEXERCISEINTHISBOOKSAYSWRITEAPROGRAMORWRITEASUBROUTINEYOUNEEDONLYWRITESYMBOLICMIXALCODEFORWHATISASKEDTHISCODEWILLNOTBECOMPLETEINITSELFITWILLMERELYBEAFRAGMENTOFAHYPOTHETICALCOMPLETEPROGRAMNOINPUTOROUTPUTNEEDBEDONEINACODEFRAGMENTIFTHEDATAISTOBESUPPLIEDEXTERNALLYONENEEDWRITEONLYLOCOPANDADDRESSFIELDSOFMIXALLINESTOGETHERWITHAPPROPRIATEREMARKSTHENUMERICMACHINELANGUAGELINENUMBERANDTIMESCOLUMNSSEEPROGRAMMARENOTREQUIREDUNLESSSPECIFICALLYREQUESTEDNORWILLTHEREBEANENDLINEONTHEOTHERHANDIFANEXERCISESAYSWRITEACOMPLETEPROGRAMITIMPLIESTHATANEXECUTABLEPROGRAMSHOULDBEWRITTENINMIXALINCLUDINGINPARTICULARTHEFINALENDLINEASSEMBLERSANDSIMULATORSONWHICHSUCHCOMPLETEPROGRAMSCANBETESTEDAREWIDELYAVAILABLEVALIDINSTLOCATIONINSTCONTAINSAWORDTHATPURPORTEDLYISAINSTRUCTIONWRITEAPROGRAMTHATJUMPSTOLOCATIONGOODIFTHEWORDHASAVALIDCFIELDVALIDFIELDVALIDIFIELDANDVALIDFFIELDACCORDINGTOTABLEMIXCHARTYOURPROGRAMSHOULDJUMPTOLOCATIONBADOTHERWISEREMEMBERTHATTHETESTFORAVALIDFFIELDDEPENDSONTHECFIELDFOREXAMPLEIFMOVEANYFFIELDISACCEPTABLEBUTIFCLDATHEFFIELDMUSTHAVETHEFORMWHERETHEFIELDISTOBECONSIDEREDVALIDUNLESSCSPECIFIESANINSTRUCTIONREQUIRINGAMEMORYADDRESSANDANDISNOTAVALIDMEMORYADDRESSNOTEINEXPERIENCEDPROGRAMMERSTENDTOTACKLEAPROBLEMLIKETHISBYWRITINGALONGSERIESOFTESTSONTHECFIELDSUCHASLDACJAZFDECAJANFJAZFDECAJANFTHISISNOTGOODPRACTICETHEBESTWAYTOMAKEMULTIWAYDECISIONSISTOPREPAREANAUXILIARYTABLECONTAININGINFORMATIONTHATENCAPSULATESTHEDESIREDLOGICIFTHEREWEREFOREXAMPLEATABLEOFENTRIESWECOULDWRITELDCLDTABLEJMPTHEREBYJUMPINGVERYSPEEDILYTOTHEDESIREDROUTINEOTHERUSEFULINFORMATIONCANALSOBEKEPTINSUCHATABLEATABULARAPPROACHTOTHEPRESENTPROBLEMMAKESTHEPROGRAMONLYALITTLEBITLONGERINCLUDINGTHETABLEANDGREATLYINCREASESITSSPEEDANDFLEXIBILITYTHEFIELDOFEACHENTRYINTHEFOLLOWINGTABLEHOLDSTHEMAXIMUMFSETTINGTHEFIELDISTHELOCATIONOFANAPPROPRIATEVALIDITYCHECKROUTINEEQUBEGINLDAINSTBMAXEQUCMPAVALIDUMAXEQUJGBADIFIELDTABLENOPGOODBMAXLDINSTADDFLOATDECSUBFLOATJNNBADCFIELDMULFLOATCMPATABLEDIVFLOATJGBADFFIELDFMAXHLTGOODLDTABLEJUMPTOSPECIALSRCGOODJMPROUTINEMOVEMEMORYBMAXFLOATCMPAVALIDFALLOWEDONLDAFIELDJEMEMORYARITHMETICOPFIELDENTASTZFIELDLDXINSTTHISISATRICKYJBUSMEMORYUMAXDIVWAYTOCHECKIOCGOODUMAXSTXFORAVALIDINMEMORYUMAXINCAPARTIALFIELDOUTMEMORYUMAXDECAJREDMEMORYUMAXJAPBADJLEMEMORYMEMORYLDXINSTJANPMEMORYJXNZGOODIFILDXINSTENSURETHEJXNPMEMORYJXNBADADDRESSISAENNAGOODDECXVALIDMEMORYJXNPGOODLOCATIONENNXGOODJMPBADCMPAFLOATVALIDCMPXCMPFIELDCMPXFIELDSADDLEMTXASSUMETHATWEHAVEAMATRIXSTOREDINMEMORYSOTHATISINLOCATIONINMEMORYTHEMATRIXTHEREFOREAPPEARSASFOLLOWSROWMAJORORDERSEQUENTIALARRAYSMATRIXREPRESENTATIONAMATRIXISSAIDTOHAVEASADDLEPOINTIFSOMEPOSITIONISTHESMALLESTVALUEINITSROWANDTHELARGESTVALUEINITSCOLUMNINSYMBOLSISASADDLEPOINTIFWRITEAPROGRAMTHATCOMPUTESTHELOCATIONOFASADDLEPOINTIFTHEREISATLEASTONEORZEROIFTHEREISNOSADDLEPOINTANDSTOPSWITHTHISVALUEINRITHECATCHTOTHISPROBLEMISTHATTHEREMAYBESEVERALPLACESINAROWANSWERPAGEORCOLUMNWHERETHEMINIMUMORMAXIMUMOCCURSANDEACHISAPOTENTIALSADDLEPOINTSOLUTIONINTHISSOLUTIONWERUNTHROUGHEACHROWINTURNMAKINGALISTOFALLCOLUMNSINWHICHTHEROWMINIMUMOCCURSANDTHENCHECKINGEACHCOLUMNONTHELISTTOSEEIFTHEROWMINIMUMISALSOACOLUMNMAXIMUMCURRENTMINRITRACESTHROUGHTHEMATRIXGOINGFROMDOWNTOZEROUNLESSASADDLEPOINTISFOUNDCOLUMNINDEXOFRISIZEOFLISTOFMINIMANOTICETHATINALLCASESTHETERMINATINGCONDITIONFORALOOPISTHATANINDEXREGISTERISSOLUTIONANINFUSIONOFMATHEMATICSGIVESADIFFERENTALGORITHMTHEOREMLETTHEELEMENTISASADDLEPOINTIFANDONLYIFIFISASADDLEPOINTTHENFORANYFIXEDSOSIMILARLYCONVERSELYWEHAVEFORALLANDHENCEIMPLIESTHATISASADDLEPOINTTHISPROOFSHOWSTHATWEALWAYSHAVESOTHEREISNOSADDLEPOINTIFANDONLYIFALLTHESARELESSTHANALLTHESACCORDINGTOTHETHEOREMITSUFFICESTOFINDTHESMALLESTCOLUMNMAXIMUMTHENTOSEARCHFORANEQUALROWMINIMUMDURINGPHASECOLUMNINDEXRIRUNSTHROUGHTHEMATRIXDURINGPHASEPOSSIBLEANSWERRIRUNSTHROUGHTHEMATRIXROWINDEXTIMESCOLUMNINDEXWELEAVEITTOTHEREADERTOINVENTASTILLBETTERSOLUTIONINWHICHPHASERECORDSALLPOSSIBLEROWSTHATARECANDIDATESFORTHEROWSEARCHINPHASEITISNOTNECESSARYTOSEARCHALLROWSJUSTTHOSEFORWHICHIMPLIESUSUALLYTHEREISATMOSTONESUCHROWINSOMETRIALRUNSWITHELEMENTSSELECTEDATRANDOMFROMSOLUTIONREQUIREDAPPROXIMATELYTORUNWHILESOLUTIONTOOKABOUTGIVENAMATRIXOFALLZEROSSOLUTIONFOUNDASADDLEPOINTINSOLUTIONINIFANMATRIXHASDISTINCTELEMENTSANDWECANSOLVETHEPROBLEMBYLOOKINGATONLYOFTHEMANDDOINGAUXILIARYOPERATIONSSEEBIENSTOCKCHUNGFREDMANSCHAFFERSHORANDSURIAMMMWHATISTHEPROBABILITYTHATTHEMATRIXINTHEPRECEDINGEXERCISEHASASADDLEPOINTASSUMINGTHATTHEELEMENTSAREDISTINCTANDASSUMINGTHATALLARRANGEMENTSAREEQUALLYPROBABLEWHATISTHECORRESPONDINGPROBABILITYIFWEASSUMEINSTEADTHATTHEELEMENTSOFTHEMATRIXAREZEROSANDONESANDTHATALLSUCHMATRICESAREEQUALLYPROBABLEASSUMEANMATRIXABYTHETHEOREMINTHEANSWERTOEXERCISEALLSADDLEPOINTSOFAMATRIXHAVETHESAMEVALUESOUNDEROURASSUMPTIONOFDISTINCTELEMENTSTHEREISATMOSTONESADDLEPOINTBYSYMMETRYTHEDESIREDPROBABILITYISTIMESTHEPROBABILITYTHATISASADDLEPOINTTHISLATTERISTIMESTHENUMBEROFPERMUTATIONSWITHTHISISTIMESTHENUMBEROFPERMUTATIONSOFELEMENTSINWHICHTHEFIRSTISGREATERTHANTHENEXTANDLESSTHANTHEREMAININGNAMELYTHEANSWERISTHEREFOREINOURCASETHISISONLYONECHANCEINBUNDERTHESECONDASSUMPTIONANENTIRELYDIFFERENTMETHODMUSTBEUSEDTHEPROBABILITYEQUALSTHEPROBABILITYTHATTHEREISASADDLEPOINTWITHVALUEZEROPLUSTHEPROBABILITYTHATTHEREISASADDLEPOINTWITHVALUEONETHEFORMERISTHEPROBABILITYTHATTHEREISATLEASTONECOLUMNOFZEROSTHELATTERISTHEPROBABILITYTHATTHEREISATLEASTONEROWOFONESTHEANSWERISINOURCASEITCOMESTOABOUTINANAPPROXIMATEANSWERISTWOSOLUTIONSAREGIVENFOREXERCISESEEPAGEANSWERPAGEANDATHIRDISSUGGESTEDITISNOTCLEARWHICHOFTHEMISBETTERANALYZETHEALGORITHMSUSINGEACHOFTHEASSUMPTIONSOFEXERCISEANDDECIDEWHICHISTHEBETTERMETHODMHOFRIANDPJACQUETALGORITHMICAHAVEANALYZEDTHECASEWHENTHEMATRIXENTRIESAREDISTINCTANDINRANDOMORDERTHERUNNINGTIMESOFTHETWOPROGRAMSARETHENRESPECTIVELYANDASANDASSUMINGTHATACRYPTANALYSTWANTSAFREQUENCYCOUNTOFTHELETTERSINAENGLISHLETTERFREQUENCIESCERTAINCODETHECODEHASBEENPUNCHEDONPAPERTAPETHEENDISSIGNALEDBYANASTERISKWRITEACOMPLETEPROGRAMTHATREADSINTHETAPECOUNTSTHEFREQUENCYOFEACHCHARACTERUPTOTHEFIRSTASTERISKANDTHENTYPESOUTTHERESULTSINTHEFORMETCONECHARACTERPERLINETHENUMBEROFBLANKSSHOULDNOTBECOUNTEDNORSHOULDCHARACTERSFORWHICHTHECOUNTISZEROLIKECINTHEABOVEBEPRINTEDFOREFFICIENCYBUFFERTHEINPUTWHILEREADINGABLOCKBUFFERSWAPPINGINTOONEAREAOFMEMORYYOUCANBECOUNTINGCHARACTERSFROMANOTHERAREAYOUMAYASSUMETHATANEXTRABLOCKFOLLOWINGTHEONETHATCONTAINSTHETERMINATINGASTERISKISPRESENTONTHEINPUTTAPEFORTHISPROBLEMBUFFERINGOFOUTPUTISNOTDESIRABLESINCEITCOULDSAVEATMOSTOFTIMEPERLINEOUTPUTTHEFOLLOWINGALGORITHMDUETOTHENEAPOLITANASTRONOMERALOYSIUSLILIUSANDTHEGERMANJESUITMATHEMATICIANCHRISTOPHERCLAVIUSINTHELATETHCENTURYISUSEDBYMOSTWESTERNCHURCHESTODETERMINETHEDATEOFEASTERSUNDAYFORANYYEARAFTEREASTERALGORITHMEDATEOFEASTERLETBETHEYEARFORWHICHTHEDATEOFEASTERISDESIREDEEGOLDENNUMBERSETISTHESOCALLEDGOLDENNUMBEROFTHEYEARINTHEYEARMETONICCYCLEECENTURYSETWHENISNOTAMULTIPLEOFISTHECENTURYNUMBERFOREXAMPLEISINTHETWENTIETHCENTURYECORRECTIONSSETHEREISTHENUMBEROFYEARSSUCHASINWHICHLEAPYEARWASDROPPEDINORDERTOKEEPINSTEPWITHTHESUNISASPECIALCORRECTIONDESIGNEDTOSYNCHRONIZEEASTERWITHTHEMOONSORBITEFINDSUNDAYSETMARCHWILLACTUALLYBEASUNDAYEEPACTSETIFANDTHEGOLDENNUMBERISGREATERTHANORIFTHENINCREASEBYTHISNUMBERISTHEEPACTWHICHSPECIFIESWHENAFULLMOONOCCURSEFINDFULLMOONSETIFTHENSETEASTERISSUPPOSEDLYTHEFIRSTSUNDAYFOLLOWINGTHEFIRSTFULLMOONTHATOCCURSONORAFTERMARCHACTUALLYPERTURBATIONSINTHEMOONSORBITDONOTMAKETHISSTRICTLYTRUEBUTWEARECONCERNEDHEREWITHTHECALENDARMOONRATHERTHANTHEACTUALMOONTHETHOFMARCHISACALENDARFULLMOONEADVANCETOSUNDAYSETEGETMONTHIFTHEDATEISOTHERWISETHEDATEISMARCHWRITEASUBROUTINETOCALCULATEANDPRINTEASTERDATEGIVENTHEYEARASSUMINGTHATTHEYEARISLESSTHANTHEOUTPUTSHOULDHAVETHEFORMMONTHWHEREISTHEDAYANDISTHEYEARWRITEACOMPLETEPROGRAMTHATUSESTHISSUBROUTINETOPREPAREATABLEOFTHEDATESOFEASTERFROMTHROUGHCALENDAREASTERTOMAKETHEPROBLEMMORECHALLENGINGTHEFOLLOWINGSOLUTIONDUEINPARTTOJPETOLINOUSESALOTOFDIVISIONCONVERTEDTOMULTIPLICATIONTRICKERYINORDERTOREDUCEEXECUTIONTIMECANTHEREADERSQUEEZEOUTANYMOREMICROSECONDSARIGOROUSJUSTIFICATIONFORTHECHANGEFROMDIVISIONTODIVISIONCONVERTEDTOMULTIPLICATIONMULTIPLICATIONINSEVERALPLACESCANBEBASEDONTHEFACTTHATTHENUMBERINRAISNOTTOOLARGETHEPROGRAMWORKSWITHALLBYTESIZESTOCALCULATEEASTERINYEARSSEECACMTHEFIRSTSYSTEMATICALGORITHMFORCALCULATINGTHEDATEOFEASTERWASTHECANONPASCHALISDUETOVICTORIUSOFAQUITAINETHEREAREMANYINDICATIONSTHATTHESOLENONTRIVIALAPPLICATIONOFARITHMETICINEUROPEDURINGTHEMIDDLEAGESWASTHECALCULATIONOFEASTERDATEHENCESUCHALGORITHMSAREHISTORICALLYSIGNIFICANTSEEPUZZLESANDPARADOXESBYTHOBEIRNELONDONOXFORDUNIVERSITYPRESSCHAPTERFORFURTHERCOMMENTARYANDSEETHEBOOKCALENDRICALCALCULATIONSBYEMREINGOLDANDNDERSHOWITZCAMBRIDGEUNIVPRESSFORDATEORIENTEDALGORITHMSOFALLKINDSMAFAIRLYCOMMONERRORINTHECODINGOFTHEPREVIOUSEXERCISEISTOFAILTOREALIZETHATTHEQUANTITYINSTEPEMAYBENEGATIVETHEREFORETHEPOSITIVEREMAINDERMODMIGHTNOTBECOMPUTEDPROPERLYSEECACMFOREXAMPLEINTHEYEARWEWOULDFINDSOIFWEHADINSTEADOFWEWOULDGETTHERIDICULOUSANSWERAPRILWRITEACOMPLETEPROGRAMTHATFINDSTHEEARLIESTYEARFORWHICHTHISERRORWOULDACTUALLYCAUSETHEWRONGDATETOBECALCULATEDFOREASTERTHEFIRSTSUCHYEARISALTHOUGHTHEERRORALMOSTLEADSTOFAILUREINFORINCIDENTALLYTHOBEIRNEPOINTEDOUTTHATTHEDATEOFEASTERREPEATSWITHAPERIODOFEXACTLYYEARSCALCULATIONSBYROBERTHILLSHOWTHATTHEMOSTCOMMONDATEISAPRILTIMESPERPERIODWHILETHEEARLIESTANDLEASTCOMMONISMARCHTIMESTHELATESTANDNEXTTOLEASTCOMMONISAPRILTIMESHILLFOUNDANICEEXPLANATIONFORTHECURIOUSFACTTHATTHENUMBEROFTIMESANYPARTICULARDAYOCCURSINTHEPERIODISALWAYSAMULTIPLEOFWESHOWEDINSECTIONTHATTHESUMBECOMESINFINITELYLARGEBUTIFITISCALCULATEDWITHFINITEACCURACYBYACOMPUTERTHESUMACTUALLYEXISTSINHARMONICSERIESROUNDINGSOMESENSEBECAUSETHETERMSEVENTUALLYGETSOSMALLTHATTHEYCONTRIBUTENOTHINGTOTHESUMIFADDEDONEBYONEFOREXAMPLESUPPOSEWECALCULATETHESUMBYROUNDINGTOONEDECIMALPLACETHENWEHAVEMOREPRECISELYLETBETHENUMBERROUNDEDTODECIMALPLACESWEDEFINETHENWEWISHTOFINDWEKNOWTHATANDTHEPROBLEMISTOWRITEACOMPLETEPROGRAMTHATCALCULATESANDPRINTSFORANDNOTETHEREISAMUCHFASTERWAYTODOTHISTHANTHESIMPLEPROCEDUREOFADDINGONENUMBERATATIMEUNTILBECOMESZEROFOREXAMPLEWEHAVEFORALLVALUESOFFROMTOITSWISETOAVOIDCALCULATINGALLTIMESANALGORITHMALONGTHEFOLLOWINGLINESSHOULDRATHERBEUSEDASTARTWITHBSETANDCALCULATESTOPIFCFINDTHELARGESTFORWHICHDADDTOANDRETURNTOSTEPBHARMONICSERIESWORKWITHSCALEDNUMBERSTHENIFANDONLYIFTHUSWEFINDTHEOUTPUTISINPLUSOUTPUTTIMEITWOULDBEFASTERTOCALCULATEDIRECTLYWHENANDTHENTOAPPLYTHESUGGESTEDPROCEDUREUSINGTHENOTATIONOFTHEPRECEDINGEXERCISEPROVEORDISPROVETHEFORMULALETTHENIFWESUMBYPARTSANDSETINCIDENTALLYTHENEXTSEVERALVALUESAREANDOURAPPROXIMATIONTOISWHICHISCLOSERTHANPREDICTEDTHEASCENDINGSEQUENCEOFALLREDUCEDFRACTIONSBETWEENANDTHATHAVEDENOMINATORSISCALLEDTHEFAREYSERIESOFORDERRATIONALNUMBERSFOREXAMPLETHEFAREYSERIESOFORDERISIFWEDENOTETHISSERIESBYEXERCISEPROVESTHATWRITEASUBROUTINETHATCOMPUTESTHEFAREYSERIESOFORDERBYSTORINGTHEVALUESOFANDINLOCATIONSRESPECTIVELYTHETOTALNUMBEROFTERMSINTHESERIESISAPPROXIMATELYSOYOUMAYASSUMETHATISRATHERSMALLFAREYPROOFMASHOWTHATTHENUMBERSANDDEFINEDBYTHERECURRENCEINTHEPRECEDINGEXERCISESATISFYTHERELATIONBSHOWTHATTHEFRACTIONSAREINDEEDTHEFAREYSERIESOFORDERUSINGTHEFACTPROVEDINAAINDUCTIONBLETANDWHEREBYPARTAANDTHEFACTTHATWEHAVEANDSOIFWEHAVEBYDEFINITIONBUTTHISIMPLIESTHATHISTORICALNOTESCHAROSGAVEAMORECOMPLICATEDRULEFORCONSTRUCTINGSUCHSEQUENCESINJDELECOLEPOLYTECHNIQUEHISMETHODWASCORRECTBUTHISPROOFWASINADEQUATESEVERALYEARSLATERTHEGEOLOGISTJOHNFAREYINDEPENDENTLYCONJECTUREDTHATISALWAYSEQUALTOPHILOSMAGAZINEANDJOURNALAPROOFWASSUPPLIEDSHORTLYAFTERWARDSBYACAUCHYBULLSOCIETEPHILOMATHIQUEDEPARISWHOATTACHEDFAREYSNAMETOTHESERIESFORMOREOFITSINTERESTINGPROPERTIESSEEGHHARDYANDEMWRIGHTANINTRODUCTIONTOTHETHEORYOFNUMBERSCHAPTERASSUMETHATSOVERFLOWTOGGLEANDXREGISTERHAVEBEENWIREDUPTOTHETRAFFICSIGNALSATTHECORNEROFDELMARBOULEVARDANDTRAFFICSIGNALSBERKELEYAVENUEASFOLLOWSCARSORPEDESTRIANSWISHINGTOTRAVELONBERKELEYACROSSTHEBOULEVARDMUSTTRIPASWITCHTHATCAUSESTHEOVERFLOWTOGGLEOFTOGOONIFTHISCONDITIONNEVEROCCURSTHELIGHTFORDELMARSHOULDREMAINGREENCYCLETIMESAREASFOLLOWSWHENATRAFFICLIGHTISGREENORAMBERFORONEDIRECTIONTHEOTHERDIRECTIONHASAREDLIGHTWHENTHETRAFFICLIGHTISGREENTHECORRESPONDINGWALKLIGHTISONEXCEPTTHATDONTWALKFLASHESFORSECJUSTBEFOREAGREENLIGHTTURNSTOAMBERASFOLLOWSIFTHEOVERFLOWISTRIPPEDWHILETHEBERKELEYLIGHTISGREENTHECARORPEDESTRIANWILLPASSONTHATCYCLEBUTIFITISTRIPPEDDURINGTHEAMBERORREDPORTIONSANOTHERCYCLEWILLBENECESSARYAFTERTHEDELMARTRAFFICHASPASSEDASSUMETHATONETIMEUNITEQUALSSECWRITEACOMPLETEPROGRAMTHATCONTROLSTHESELIGHTSBYMANIPULATINGRXACCORDINGTOTHEINPUTGIVENBYTHEOVERFLOWTOGGLETHESTATEDTIMESARETOBEFOLLOWEDEXACTLYUNLESSITISIMPOSSIBLETODOSONOTETHESETTINGOFRXCHANGESPRECISELYATTHECOMPLETIONOFALDXORINCXINSTRUCTIONTRAFFICSIGNALSAMAGICSQUAREOFORDERISANARRANGEMENTOFTHENUMBERSTHROUGHINASQUAREARRAYINSUCHAWAYTHATTHESUMOFEACHROWANDCOLUMNISANDSOISTHESUMOFTHETWOMAINDIAGONALSFIGUREFIGSHOWSAMAGICSQUAREOFORDERTHERULEFORGENERATINGITISEASILYSEENSTARTWITHJUSTBELOWTHEMIDDLESQUARETHENGODOWNANDTOTHERIGHTDIAGONALLYWHENRUNNINGOFFTHEEDGEIMAGINEANENTIREPLANETILEDWITHSQUARESUNTILREACHINGAFILLEDSQUARETHENDROPDOWNTWOSPACESFROMTHEMOSTRECENTLYFILLEDSQUAREANDCONTINUETHISMETHODWORKSWHENEVERISODDUSINGMEMORYALLOCATEDINAFASHIONLIKETHATOFEXERCISEWRITEACOMPLETEPROGRAMTOGENERATETHEMAGICSQUAREBYTHEMETHODABOVEANDTOPRINTTHERESULTTHISALGORITHMISDUETOIBNALHAYTHAMWHOWASBORNINBASRAABOUTANDDIEDINCAIROABOUTMANYOTHERMAGICSQUARECONSTRUCTIONSMAKEGOODPROGRAMMINGEXERCISESSEEWWROUSEBALLMATHEMATICALRECREATIONSANDESSAYSREVISEDBYHSMCOXETERNEWYORKMACMILLANCHAPTERJOSEPHUSPROBTHEJOSEPHUSPROBLEMTHEREAREMENARRANGEDINACIRCLEBEGINNINGATAPARTICULARPOSITIONWECOUNTAROUNDTHECIRCLEANDBRUTALLYEXECUTEEVERYTHMANTHECIRCLECLOSESASMENDIEFOREXAMPLETHEEXECUTIONORDERWHENANDISASSHOWNINFIGFIGTHEFIRSTMANISFIFTHTOGOTHESECONDMANISFOURTHETCWRITEACOMPLETEPROGRAMTHATPRINTSOUTTHEORDEROFEXECUTIONWHENTRYTODESIGNACLEVERALGORITHMTHATWORKSATHIGHSPEEDWHENANDARELARGEITMAYSAVEYOURLIFEREFERENCEWAHRENSMATHEMATISCHEUNTERHALTUNGENUNDSPIELELEIPZIGTEUBNERCHAPTERFIGFIGTOTOFIGAMAGICSQUARETOFIGJOSEPHUSSPROBLEMTHELASTMANISINPOSITIONTHETOTALTIMEBEFOREOUTPUTISSEVERALIMPROVEMENTSAREPOSSIBLESUCHASDINGALLSSSUGGESTIONTOHAVETHREEWORDPACKETSOFCODEDECJPNEXTJMPOUTWHEREOUTMODIFIESTHENEXTFIELDSOASTODELETEAPACKETANASYMPTOTICALLYFASTERMETHODAPPEARSINEXERCISEFASTINVDECODINGTHISISANEXERCISEDESIGNEDTOGIVESOMEEXPERIENCEINTHEMANYAPPLICATIONSOFCOMPUTERSFORWHICHTHEOUTPUTISTOBEDISPLAYEDGRAPHICALLYRATHERTHANINTHEUSUALTABULARFORMINTHISCASETHEOBJECTGRAPHICALDISPLAYISTODRAWACROSSWORDPUZZLEDIAGRAMFIGYOUAREGIVENASINPUTAMATRIXOFZEROSANDONESANENTRYOFZEROINDICATESAWHITESQUAREAONEINDICATESABLACKSQUARETHEOUTPUTSHOULDBEADIAGRAMOFTHEPUZZLEWITHTHEAPPROPRIATESQUARESNUMBEREDFORWORDSACROSSANDDOWNFOREXAMPLEGIVENTHEMATRIXTHECORRESPONDINGPUZZLEDIAGRAMWOULDBEASSHOWNINFIGFIGASQUAREISNUMBEREDIFITISAWHITESQUAREANDEITHERATHESQUAREBELOWITISWHITEANDTHEREISNOWHITESQUAREIMMEDIATELYABOVEORBTHESQUARETOITSRIGHTISWHITEANDTHEREISNOWHITESQUAREIMMEDIATELYTOITSLEFTIFBLACKSQUARESOCCURATTHEEDGESTHEYSHOULDBEREMOVEDFROMTHEDIAGRAMTHISISILLUSTRATEDINFIGFIGWHERETHEBLACKSQUARESATTHECORNERSWEREDROPPEDASIMPLEWAYTOACCOMPLISHTHISISTOARTIFICIALLYINSERTROWSANDCOLUMNSOFSATTHETOPBOTTOMANDSIDESOFTHEGIVENINPUTMATRIXTHENTOCHANGEEVERYTHATISADJACENTTOAINTOAUNTILNOREMAINSNEXTTOANYTHEFOLLOWINGMETHODSHOULDBEUSEDTOPRINTTHEFINALDIAGRAMONALINEPRINTEREACHBOXOFTHEPUZZLESHOULDCORRESPONDTOCOLUMNSANDROWSOFTHEOUTPUTPAGEWHERETHEPOSITIONSAREFILLEDASFOLLOWSTHEDIAGRAMSHOWNINFIGFIGWOULDTHENBEPRINTEDASSHOWNINFIGFIGTHEWIDTHOFAPRINTERLINECHARACTERSISENOUGHTOALLOWUPTOCOLUMNSINTHECROSSWORDPUZZLETHEDATASUPPLIEDASINPUTTOYOURPROGRAMWILLBEAMATRIXOFZEROSANDONESWHEREEACHROWISPUNCHEDINCOLUMNSOFANINPUTCARDFOREXAMPLETHECARDCORRESPONDINGTOTHETOPROWOFTHEMATRIXABOVEWOULDBEPUNCHEDTHEDIAGRAMWILLNOTNECESSARILYBESYMMETRICALANDITMIGHTHAVELONGPATHSOFBLACKSQUARESTHATARECONNECTEDTOTHEOUTSIDEINSTRANGEWAYSFIGREPRESENTATIONOFFIGFIGONALINEPRINTERFIGAPPLICATIONSTOPERMUTATIONSPERMUTATIONSINTHISSECTIONWESHALLGIVESEVERALMOREEXAMPLESOFPROGRAMSANDATTHESAMETIMEINTRODUCESOMEIMPORTANTPROPERTIESOFPERMUTATIONSTHESEINVESTIGATIONSWILLALSOBRINGOUTSOMEINTERESTINGASPECTSOFCOMPUTERPROGRAMMINGINGENERALPERMUTATIONSWEREDISCUSSEDEARLIERINSECTIONWETREATEDTHEPERMUTATIONASANARRANGEMENTOFTHESIXOBJECTSINASTRAIGHTLINEANOTHERVIEWPOINTISALSOPOSSIBLEWEMAYTHINKOFAPERMUTATIONASAREARRANGEMENTORRENAMINGOFTHEOBJECTSWITHTHISINTERPRETATIONITISCUSTOMARYTOUSEATWOLINENOTATIONFOREXAMPLETOMEANBECOMESBECOMESBECOMESBECOMESBECOMESBECOMESCONSIDEREDASAREARRANGEMENTTHISMEANSTHATOBJECTMOVESTOTHEPLACEFORMERLYOCCUPIEDBYOBJECTCONSIDEREDASARENAMINGITMEANSTHATOBJECTISRENAMEDTHETWOLINENOTATIONISUNAFFECTEDBYCHANGESINTHEORDEROFTHECOLUMNSFOREXAMPLETHEPERMUTATIONCOULDALSOBEWRITTENANDINOTHERWAYSACYCLENOTATIONISOFTENUSEDINCONNECTIONWITHTHISINTERPRETATIONCYCLENOTATIONCYCLESINPERMSPERMUTATIONCOULDBEWRITTENAGAINMEANINGBECOMESBECOMESBECOMESBECOMESBECOMESACYCLEMEANSBECOMESBECOMESBECOMESSINCEISFIXEDUNDERTHEPERMUTATIONITDOESNOTAPPEARINTHECYCLENOTATIONTHATISSINGLETONCYCLESLIKEARECONVENTIONALLYNOTWRITTENIFAPERMUTATIONFIXESALLELEMENTSSOTHATTHEREAREONLYSINGLETONCYCLESPRESENTITISCALLEDTHEIDENTITYPERMUTATIONANDWEDENOTEITBYTHECYCLENOTATIONISNOTUNIQUEFOREXAMPLEETCAREALLEQUIVALENTTOHOWEVERISNOTTHESAMESINCEITSAYSTHATGOESTOITISEASYTOSEEWHYTHECYCLENOTATIONISALWAYSPOSSIBLESTARTINGWITHANYELEMENTTHEPERMUTATIONTAKESINTOSAYANDINTOETCUNTILFINALLYSINCETHEREAREONLYFINITELYMANYELEMENTSWEGETTOSOMEELEMENTTHATHASALREADYAPPEAREDAMONGNOWMUSTEQUALFORIFITWEREEQUALTOSAYWEALREADYKNOWTHATGOESINTOBUTBYASSUMPTIONGOESTOSOANDWEHAVEACYCLEASPARTOFOURPERMUTATIONFORSOMEIFTHISDOESNOTACCOUNTFORTHEENTIREPERMUTATIONWECANFINDANOTHERELEMENTANDGETANOTHERCYCLEINTHESAMEWAYNONEOFTHESCANEQUALANYOFTHESSINCEIMPLIESTHATETCANDWEWOULDULTIMATELYFINDFORSOMECONTRADICTINGTHECHOICEOFALLCYCLESWILLEVENTUALLYBEFOUNDONEAPPLICATIONOFTHESECONCEPTSTOPROGRAMMINGCOMESUPWHENEVERSOMESETOFOBJECTSISTOBEPUTINTOADIFFERENTORDERIFWEWANTTOREARRANGETHEOBJECTSWITHOUTMOVINGTHEMELSEWHEREWEMUSTESSENTIALLYFOLLOWTHECYCLESTRUCTUREFORPERMUTATIONINPLACEEXAMPLETODOTHEREARRANGEMENTNAMELYTOSETWEWOULDESSENTIALLYFOLLOWTHECYCLESTRUCTUREANDSUCCESSIVELYSETITISFREQUENTLYUSEFULTOREALIZETHATANYSUCHTRANSFORMATIONTAKESPLACEINDISJOINTCYCLESPRODUCTSOFPERMUTATIONSWECANMULTIPLYTWOMULTIPLICATIONOFPERMUTATIONSPERMUTATIONSTOGETHERWITHTHEUNDERSTANDINGTHATMULTIPLICATIONMEANSTHEAPPLICATIONOFONEPERMUTATIONAFTERTHEOTHERFOREXAMPLEIFPERMUTATIONISFOLLOWEDBYTHEPERMUTATIONWEHAVEBECOMESWHICHTHENBECOMESBECOMESWHICHBECOMESETCITSHOULDBECLEARTHATMULTIPLICATIONOFPERMUTATIONSISNOTCOMMUTATIVEINOTHERWORDSISNOTNECESSARILYEQUALTOWHENANDAREPERMUTATIONSTHEREADERMAYVERIFYTHATTHEPRODUCTINGIVESADIFFERENTRESULTIFTHETWOFACTORSAREINTERCHANGEDSEEEXERCISESOMEPEOPLEMULTIPLYPERMUTATIONSFROMRIGHTTOLEFTRATHERTHANTHESOMEWHATMORENATURALLEFTTORIGHTORDERSHOWNININFACTMATHEMATICIANSAREDIVIDEDINTOTWOCAMPSINTHISREGARDSHOULDTHERESULTOFAPPLYINGTRANSFORMATIONTHENBEDENOTEDBYORBYHEREWEUSEEQUATIONWOULDBEWRITTENASFOLLOWSUSINGTHECYCLENOTATIONNOTETHATTHEMULTIPLICATIONSIGNISCONVENTIONALLYDROPPEDTHISDOESNOTCONFLICTWITHTHECYCLENOTATIONSINCEITISEASYTOSEETHATTHEPERMUTATIONISREALLYTHEPRODUCTOFTHEPERMUTATIONSANDMULTIPLICATIONOFPERMUTATIONSCANBEDONEDIRECTLYINTERMSOFTHECYCLENOTATIONFOREXAMPLETOCOMPUTETHEPRODUCTOFSEVERALPERMUTATIONSWEFINDPROCEEDINGFROMLEFTTORIGHTTHATGOESTOTHENGOESTOTHENGOESTOTHENGOESTOTHENISUNCHANGEDSOTHENETRESULTISTHATGOESTOUNDERANDWEWRITEDOWNASTHEPARTIALANSWERNOWWECONSIDERTHEEFFECTONGOESTOGOESTOWEHAVETHEPARTIALRESULTCONSIDERINGWEFINDTHATGOESTOTOTOANDSOTHEFIRSTCYCLEISCLOSEDNOWWEPICKANEWELEMENTTHATHASNTAPPEAREDYETSAYWEFINDTHATGOESTOANDTHEREADERMAYVERIFYTHATULTIMATELYTHEANSWERISOBTAINEDFORLETUSNOWTRYTODOTHISPROCESSBYCOMPUTERTHEFOLLOWINGALGORITHMFORMALIZESTHEMETHODDESCRIBEDINTHEPRECEDINGPARAGRAPHINAWAYTHATISAMENABLETOMACHINECALCULATIONFIGFIGALGORITHMAFORMULTIPLYINGPERMUTATIONSALGORITHMAMULTIPLYPERMUTATIONSINCYCLEFORMTHISALGORITHMTAKESAPRODUCTOFCYCLESSUCHASANDCOMPUTESTHERESULTINGPERMUTATIONINTHEFORMOFAPRODUCTOFDISJOINTCYCLESFORSIMPLICITYTHEREMOVALOFSINGLETONCYCLESISNOTDESCRIBEDHERETHATWOULDBEAFAIRLYSIMPLEEXTENSIONOFTHEALGORITHMASTHISALGORITHMISPERFORMEDWESUCCESSIVELYTAGTHEELEMENTSOFTHEINPUTFORMULATHATISWEMARKSOMEHOWTHOSESYMBOLSOFTHEINPUTFORMULATHATHAVEBEENPROCESSEDAFIRSTPASSTAGALLLEFTPARENTHESESANDREPLACEEACHRIGHTPARENTHESISBYATAGGEDCOPYOFTHEINPUTSYMBOLTHATFOLLOWSITSMATCHINGLEFTPARENTHESISSEETHEEXAMPLEINTABLETABAOPENSEARCHINGFROMLEFTTORIGHTFINDTHEFIRSTUNTAGGEDELEMENTOFTHEINPUTIFALLELEMENTSARETAGGEDTHEALGORITHMTERMINATESSETSTARTEQUALTOITOUTPUTALEFTPARENTHESISOUTPUTTHEELEMENTANDTAGITASETCURRENTSETCURRENTEQUALTOTHENEXTELEMENTOFTHEFORMULAASCANFORMULAPROCEEDTOTHERIGHTUNTILEITHERREACHINGTHEENDOFTHEFORMULAORFINDINGANELEMENTEQUALTOCURRENTINTHELATTERCASETAGITANDGOBACKTOSTEPAAIFOUTPUTCURRENTANDGOBACKTOSTEPASTARTINGAGAINATTHELEFTOFTHEFORMULATHEREBYCONTINUINGTHEDEVELOPMENTOFACYCLEINTHEOUTPUTACLOSEACOMPLETECYCLEINTHEOUTPUTHASBEENFOUNDOUTPUTARIGHTPARENTHESISANDGOBACKTOSTEPATABTABLESPREADALGORITHMAAPPLIEDTOTOACFGABCDBAEDAFADEFBGFAEBAFTERSTEPSTARTCURRENTOUTPUTAAAAAAAAAAAAAAAHEREREPRESENTSACURSORFOLLOWINGTHEELEMENTJUSTSCANNEDTAGGEDELEMENTSARELIGHTGRAYFOREXAMPLECONSIDERFORMULATABLETABSHOWSSUCCESSIVESTAGESINITSPROCESSINGTHEFIRSTLINEOFTHATTABLESHOWSTHEFORMULAAFTERRIGHTPARENTHESESHAVEBEENREPLACEDBYTHELEADINGELEMENTOFTHECORRESPONDINGCYCLESUCCEEDINGLINESSHOWTHEPROGRESSTHATISMADEASMOREANDMOREELEMENTSARETAGGEDACURSORSHOWSTHECURRENTPOINTOFINTERESTINTHEFORMULATHEOUTPUTISNOTICETHATSINGLETONCYCLESWILLAPPEARINTHEOUTPUTMULTIPLICATIONOFPERMUTATIONSCYCLENOTATIONCYCLESINPERMSAPROGRAMTOIMPLEMENTTHISALGORITHMFORTHETAGGINGCANBEDONEBYUSINGTHESIGNOFAWORDSUPPOSEOURINPUTISPUNCHEDONTOCARDSINTHEFOLLOWINGFORMATANCOLUMNCARDISDIVIDEDINTOFIVECHARACTERFIELDSEACHFIELDISEITHERAREPRESENTINGTHELEFTPARENTHESISBEGINNINGACYCLEBREPRESENTINGTHERIGHTPARENTHESISENDINGACYCLECALLBLANKSWHICHMAYBEINSERTEDANYWHERETOFILLSPACEORDANYTHINGELSEREPRESENTINGANELEMENTTOBEPERMUTEDTHELASTCARDOFTHEINPUTISRECOGNIZEDBYHAVINGCOLUMNSEQUALTOFOREXAMPLEMIGHTBEPUNCHEDONTWOCARDSASFOLLOWSTHEOUTPUTOFOURPROGRAMWILLCONSISTOFAVERBATIMCOPYOFTHEINPUTFOLLOWEDBYTHEANSWERINESSENTIALLYTHESAMEFORMATTHISPROGRAMOFAPPROXIMATELYINSTRUCTIONSISQUITEABITLONGERTHANTHEPROGRAMSOFTHEPREVIOUSSECTIONANDINDEEDITISLONGERTHANMOSTOFTHEPROGRAMSWEWILLMEETINTHISBOOKITSLENGTHISNOTFORMIDABLEHOWEVERSINCEITDIVIDESINTOSEVERALSMALLPARTSTHATAREFAIRLYINDEPENDENTLINESREADINTHEINPUTCARDSANDPRINTACOPYOFEACHCARDLINESACCOMPLISHSTEPAOFTHEALGORITHMTHEPRECONDITIONINGOFTHEINPUTLINESANDDOTHEMAINBUSINESSOFALGORITHMAANDLINESOUTPUTTHEANSWERTHEREADERWILLFINDITINSTRUCTIVETOSTUDYASMANYOFTHEPROGRAMSGIVENINTHISBOOKASPOSSIBLEANABILITYTOREADANDTOUNDERSTANDCOMPUTERPROGRAMSTHATYOUHAVENTWRITTENYOURSELFISEXCEEDINGLYIMPORTANTYETSUCHTRAININGHASBEENSADLYNEGLECTEDINTOOMANYCOMPUTERCOURSESANDSOMEHORRIBLYINEFFICIENTUSESOFCOMPUTINGMACHINERYHAVEARISENASARESULTTIMINGTHEPARTSOFPROGRAMATHATARENOTANALYSISOFALGORITHMSEXECUTIONTIMEMETHODSFORFINDINGPROFILECONCERNEDWITHINPUTOUTPUTHAVEBEENDECORATEDWITHFREQUENCYCOUNTSASWEDIDFORPROGRAMFINDMAXPROGTHUSFOREXAMPLELINEISSUPPOSEDLYEXECUTEDTIMESFORCONVENIENCEWESHALLASSUMETHATNOBLANKWORDSAPPEARINTHEINPUTEXCEPTATTHEEXTREMERIGHTENDUNDERTHISASSUMPTIONLINEISNEVEREXECUTEDANDTHEJUMPINLINENEVEROCCURSBYSIMPLEADDITIONTHETOTALTIMETOEXECUTETHEPROGRAMISPLUSTHETIMEFORINPUTANDOUTPUTINORDERTOUNDERSTANDTHEMEANINGOFFORMULAWENEEDTOEXAMINETHEFIFTEENUNKNOWNSANDWEMUSTRELATETHEMTOPERTINENTCHARACTERISTICSOFTHEINPUTLETSLOOKATSOMEGENERALPRINCIPLESOFATTACKFORPROBLEMSOFTHISKINDFIRSTWECANAPPLYKIRCHHOFFSFIRSTLAWOFELECTRICALCIRCUITTHEORYTHEKIRCHHOFFSFIRSTLAWCONSERVATIVELAWNUMBEROFTIMESANINSTRUCTIONISEXECUTEDMUSTEQUALTHENUMBEROFTIMESWETRANSFERTOTHATINSTRUCTIONTHISSEEMINGLYOBVIOUSRULEOFTENRELATESSEVERALQUANTITIESINANONOBVIOUSWAYANALYZINGTHEFLOWOFPROGRAMAWEGETTHEFOLLOWINGEQUATIONSTHEEQUATIONSGIVENBYKIRCHHOFFSLAWWILLNOTALLBEINDEPENDENTINTHEPRESENTCASEFOREXAMPLEWESEETHATTHEFIRSTANDSECONDEQUATIONSAREOBVIOUSLYEQUIVALENTFURTHERMORETHELASTEQUATIONCANBEDEDUCEDFROMTHEOTHERSSINCETHETHIRDFOURTHANDFIFTHIMPLYTHATHENCETHESIXTHSAYSTHATATANYRATEWEHAVEALREADYELIMINATEDSIXOFOURFIFTEENUNKNOWNSKIRCHHOFFSFIRSTLAWISANEFFECTIVETOOLTHATISANALYZEDMORECLOSELYINSECTIONKIRCHHOFFSFIRSTLAWTHENEXTSTEPISTOTRYTOMATCHUPTHEVARIABLESWITHIMPORTANTCHARACTERISTICSOFTHEDATAWEFINDFROMLINESANDTHATWHEREISTHENUMBEROFINPUTCARDSFROMLINESIMILARLYFROMLINENOWANDGIVEUSAFACTTHATCOULDNOTBEDEDUCEDBYKIRCHHOFFSLAWFROMLINELINESAYSISEQUALTOTHISSAMEQUANTITYTHEFACTTHATWASINTHISCASEDEDUCIBLEFROMKIRCHHOFFSLAWSINCEITALREADYAPPEARSINSINGLETONCYCLEUSINGTHEFACTTHATEACHNONBLANKWORDISULTIMATELYTAGGEDANDLINESANDWEFINDTHATWHEREISTHENUMBEROFNONBLANKWORDSAPPEARINGINTHEINPUTPERMUTATIONSFROMTHEFACTTHATEVERYDISTINCTELEMENTAPPEARINGINTHEINPUTPERMUTATIONISWRITTENINTOTHEOUTPUTJUSTONCEEITHERATLINEORLINEWEHAVESEEEQSAMOMENTSREFLECTIONMAKESTHISCLEARFROMLINEASWELLFINALLYWESEEFROMLINETHATCLEARLYTHEQUANTITIESANDTHATWEHAVENOWINTERPRETEDAREESSENTIALLYINDEPENDENTPARAMETERSTHATMAYBEEXPECTEDTOENTERINTOTHETIMINGOFPROGRAMATHERESULTSWEHAVEOBTAINEDSOFARLEAVEUSWITHONLYTHEUNKNOWNSANDTOBEANALYZEDFORTHESEWEMUSTUSEALITTLEMOREINGENUITYTHESCANSOFTHEINPUTTHATSTARTATLINESANDALWAYSTERMINATEEITHERATLINETHELASTTIMEORATLINEDURINGEACHONEOFTHESELOOPSTHEINSTRUCTIONINCISPERFORMEDTIMESTHISTAKESPLACEONLYATLINESANDSOWEGETTHENONTRIVIALRELATIONCONNECTINGOURUNKNOWNSANDFORTUNATELYTHERUNNINGTIMEISAFUNCTIONOFITINVOLVESSOWENEEDNOTTRYTOANALYZETHEINDIVIDUALQUANTITIESANDANYFURTHERSUMMINGUPALLTHESERESULTSWEFINDTHATTHETOTALTIMEEXCLUSIVEOFINPUTOUTPUTCOMESTHISFORMULANEWNAMESFORTHEDATACHARACTERISTICSHAVEBEENUSEDASFOLLOWSINTHISWAYWEHAVEFOUNDTHATANALYSISOFAPROGRAMLIKEPROGRAMAISINMANYRESPECTSLIKESOLVINGANAMUSINGPUZZLEWEWILLSHOWBELOWTHATIFTHEOUTPUTPERMUTATIONISASSUMEDTOBERANDOMTHEQUANTITIESANDWILLBEANDRESPECTIVELYONTHEAVERAGEEXECUTIONTIMEMETHODSFORFINDINGANALYSISOFALGORITHMSANOTHERAPPROACHALGORITHMAMULTIPLIESPERMUTATIONSTOGETHERMUCHASPEOPLEORDINARILYDOTHESAMEJOBQUITEOFTENWEFINDTHATPROBLEMSTOBESOLVEDBYCOMPUTERAREVERYSIMILARTOPROBLEMSTHATHAVECONFRONTEDHUMANSFORMANYYEARSTHEREFORETIMEHONOREDMETHODSOFSOLUTIONWHICHHAVEEVOLVEDFORUSEBYMORTALSSUCHASWEAREALSOAPPROPRIATEPROCEDURESFORCOMPUTERALGORITHMSJUSTASOFTENHOWEVERWEENCOUNTERNEWMETHODSTHATTURNOUTTOBESUPERIORCYCLENOTATIONMULTIPLICATIONOFPERMUTATIONSFORCOMPUTERSALTHOUGHTHEYAREQUITEUNSUITABLEFORHUMANUSETHECENTRALREASONISTHATACOMPUTERTHINKSDIFFERENTLYITHASADIFFERENTKINDOFMEMORYFORFACTSANINSTANCEOFTHISDIFFERENCEMAYBESEENINOURPERMUTATIONMULTIPLICATIONPROBLEMUSINGTHEALGORITHMBELOWACOMPUTERCANDOTHEMULTIPLICATIONINONESWEEPOVERTHEFORMULAREMEMBERINGTHEENTIRECURRENTSTATEOFTHEPERMUTATIONASITSCYCLESAREBEINGMULTIPLIEDTHEHUMANORIENTEDALGORITHMASCANSTHEFORMULAMANYTIMESONCEFOREACHELEMENTOFTHEOUTPUTBUTTHENEWALGORITHMHANDLESEVERYTHINGINONESCANTHISISAFEATTHATCOULDNOTBEDONERELIABLYBYHOMOSAPIENSTABTABLESPREADMULTIPLYINGPERMUTATIONSINONEPASSWHATISTHISCOMPUTERORIENTEDMETHODFORPERMUTATIONMULTIPLICATIONTABLETABILLUSTRATESTHEBASICIDEATHECOLUMNBELOWEACHCHARACTEROFTHECYCLEFORMINTHATTABLESAYSWHATPERMUTATIONISREPRESENTEDBYTHEPARTIALCYCLESTOTHERIGHTFOREXAMPLETHEFRAGMENTARYFORMULAREPRESENTSTHEPERMUTATIONWHICHAPPEARSUNDERTHERIGHTMOSTOFTHETABLEEXCEPTTHATTHEUNKNOWNDESTINATIONOFISREPRESENTEDTHEREBYNOTINSPECTIONOFTABLETABSHOWSTHATITCANBECREATEDSYSTEMATICALLYIFWESTARTWITHTHEIDENTITYPERMUTATIONONTHERIGHTANDWORKBACKWARDFROMRIGHTTOLEFTTHECOLUMNBELOWLETTERDIFFERSFROMTHECOLUMNTOITSRIGHTWHICHRECORDSTHEPREVIOUSSTATUSONLYINROWANDTHENEWVALUEINROWISTHEONETHATDISAPPEAREDINTHEPRECEDINGCHANGEMOREPRECISELYWEHAVETHEFOLLOWINGALGORITHMALGORITHMBMULTIPLYPERMUTATIONSINCYCLEFORMTHISALGORITHMACCOMPLISHESESSENTIALLYTHESAMERESULTASALGORITHMAASSUMETHATTHEELEMENTSPERMUTEDARENAMEDWEUSEANAUXILIARYTABLEUPONTERMINATIONOFTHISALGORITHMGOESTOUNDERTHEINPUTPERMUTATIONIFANDONLYIFBINITIALIZESETFORALSOPREPARETOSCANTHEINPUTFROMRIGHTTOLEFTBNEXTELEMENTEXAMINETHENEXTELEMENTOFTHEINPUTRIGHTTOLEFTIFTHEINPUTHASBEENEXHAUSTEDTHEALGORITHMTERMINATESIFTHEELEMENTISASETANDREPEATSTEPBIFITISAGOTOBOTHERWISETHEELEMENTISFORSOMEGOONTOBBCHANGEEXCHANGEIFTHISMAKESSETRETURNTOSTEPBMULTIPLICATIONOFPERMUTATIONSBCHANGESETATTHISPOINTISTHEROWTHATSHOWSAENTRYINTHENOTATIONOFTABLETABCORRESPONDINGTOTHERIGHTPARENTHESISTHATMATCHESTHELEFTPARENTHESISJUSTSCANNEDRETURNTOSTEPBFIGFIGALGORITHMBFORMULTIPLYINGPERMUTATIONSOFCOURSEAFTERTHISALGORITHMHASBEENPERFORMEDWESTILLMUSTOUTPUTTHECONTENTSOFTABLEINCYCLEFORMTHISISEASILYDONEBYATAGGINGMETHODASWESHALLSEEBELOWLETUSNOWWRITEAPROGRAMBASEDONTHENEWALGORITHMWEWISHTOUSETHESAMEGROUNDRULESASTHOSEINPROGRAMAWITHINPUTANDOUTPUTINTHESAMEFORMATASBEFOREASLIGHTPROBLEMPRESENTSITSELFNAMELYHOWCANWEIMPLEMENTALGORITHMBWITHOUTKNOWINGINADVANCEWHATTHEELEMENTSAREWEDONTKNOWANDWEDONTKNOWWHETHERTHEELEMENTNAMEDISTOBEORETCASIMPLEWAYTOSOLVETHISPROBLEMISTOMAINTAINATABLEOFTHEELEMENTNAMESTHATHAVEBEENENCOUNTEREDSOFARANDTOSEARCHFORTHECURRENTNAMEEACHTIMESEELINESINTHEPROGRAMBELOWLINESWHICHCONSTRUCTTHECYCLENOTATIONFROMTHECYCLENOTATIONTABLEANDTHETABLEOFNAMESMAKEARATHERPRETTYLITTLEALGORITHMTHATMERITSSOMESTUDYTHEQUANTITIESTHATENTERINTOTHETIMINGOFTHISPROGRAMAREOFCOURSEDIFFERENTFROMTHEQUANTITIESOFTHESAMENAMEINTHEANALYSISOFPROGRAMATHEREADERWILLFINDITANINTERESTINGEXERCISETOANALYZETHESETIMESSEEEXERCISEEXPERIENCESHOWSTHATTHEMAINPORTIONOFTHEEXECUTIONTIMEOFPROGRAMBWILLBESPENTINSEARCHINGTHENAMESTABLETHISISQUANTITYINTHETIMINGMUCHBETTERALGORITHMSFORSEARCHINGANDBUILDINGDICTIONARIESOFNAMESAREAVAILABLETHEYARECALLEDSYMBOLTABLEALGORITHMSANDTHEYAREOFGREATIMPORTANCEINCOMPUTERAPPLICATIONSCHAPTERCONTAINSATHOROUGHDISCUSSIONOFEFFICIENTSYMBOLTABLEALGORITHMSINVERSESINVERSEOFPERMTHEINVERSEOFAPERMUTATIONISTHEREARRANGEMENTTHATUNDOESTHEEFFECTOFIFGOESTOUNDERTHENGOESTOUNDERTHUSTHEPRODUCTEQUALSTHEIDENTITYPERMUTATIONANDSODOESTHEPRODUCTPEOPLEOFTENDENOTETHEINVERSEBYINSTEADOFBUTTHESUPERSCRIPTISREDUNDANTFORTHESAMEREASONTHATEVERYPERMUTATIONHASANINVERSEFOREXAMPLETHEINVERSEOFWEWILLNOWCONSIDERSOMESIMPLEALGORITHMSFORCOMPUTINGTHEINVERSEOFAPERMUTATIONINTHERESTOFTHISSECTIONLETUSASSUMETHATWEAREDEALINGWITHPERMUTATIONSOFTHENUMBERSIFISSUCHAPERMUTATIONTHEREISASIMPLEMETHODTOCOMPUTEITSINVERSESETFORTHENISTHEDESIREDINVERSETHISMETHODUSESMEMORYCELLSNAMELYFORANDFORJUSTFORFUNHOWEVERLETSSUPPOSETHATISVERYLARGEANDSUPPOSEALSOTHATWEWISHTOCOMPUTETHEINVERSEOFWITHOUTUSINGMUCHADDITIONALMEMORYSPACEWEWANTTOCOMPUTETHEINVERSEINPLACESOTHATAFTEROURALGORITHMISFINISHEDTHEARRAYWILLBETHEINVERSEOFTHEORIGINALPERMUTATIONMERELYSETTINGFORWILLCERTAINLYFAILBUTBYCONSIDERINGTHECYCLESTRUCTUREWECANDERIVETHEFOLLOWINGCYCLESINPERMSSIMPLEALGORITHMALGORITHMIINVERSEINPLACEREPLACEAPERMUTATIONOFBYITSINVERSETHISALGORITHMISDUETOBINGCHAOHUANGINFPROCLETTERSIINITIALIZESETINEXTELEMENTSETIFGOTOSTEPITHEELEMENTHASALREADYBEENPROCESSEDIINVERTONEATTHISPOINTANDIFISNOTTHELARGESTELEMENTOFITSCYCLETHEORIGINALPERMUTATIONHADSETIENDOFCYCLEIFGOBACKTOITHECYCLEHASNOTENDEDOTHERWISESETINTHELATTERCASETHEORIGINALPERMUTATIONHADANDISLARGESTINITSCYCLEISTOREFINALVALUESETORIGINALLYWASEQUALTOILOOPONDECREASEBYIFGOBACKTOIOTHERWISETHEALGORITHMTERMINATESSEETABLETABFORANEXAMPLEOFTHISALGORITHMTHEMETHODISBASEDONINVERSIONOFSUCCESSIVECYCLESOFTHEPERMUTATIONTAGGINGTHEINVERTEDELEMENTSBYMAKINGTHEMNEGATIVEAFTERWARDSRESTORINGTHECORRECTSIGNTABTABLESPREADCOMPUTINGTHEINVERSEOFBYALGORITHMITOAFTERSTEPREADTHECOLUMNSFROMLEFTTORIGHTATPOINTEXTHECYCLEHASBEENINVERTEDALGORITHMIRESEMBLESPARTSOFALGORITHMAANDITVERYSTRONGLYRESEMBLESTHECYCLEFINDINGALGORITHMINPROGRAMBLINESTHUSITISTYPICALOFANUMBEROFALGORITHMSINVOLVINGREARRANGEMENTSWHENPREPARINGAIMPLEMENTATIONWEFINDTHATITISMOSTCONVENIENTTOKEEPTHEVALUEOFINAREGISTERINSTEADOFITSELFTHETIMINGFORTHISPROGRAMISEASILYWORKEDOUTINTHEMANNERSHOWNEARLIEREVERYELEMENTISSETFIRSTTOANEGATIVEVALUEINSTEPIANDLATERTOAPOSITIVEVALUEINSTEPITHETOTALTIMECOMESTOWHEREISTHESIZEOFTHEARRAYANDISTHETOTALNUMBEROFCYCLESTHEBEHAVIOROFINARANDOMPERMUTATIONISANALYZEDBELOWTHEREISALMOSTALWAYSMORETHANONEALGORITHMTODOANYGIVENTASKSOWEWOULDEXPECTTHATTHEREMAYBEANOTHERWAYTOINVERTAPERMUTATIONTHEFOLLOWINGINGENIOUSALGORITHMISDUETOJBOOTHROYDALGORITHMJINVERSEINPLACETHISALGORITHMHASTHESAMEEFFECTASALGORITHMIBUTUSESADIFFERENTMETHODJNEGATEALLSETFORALSOSETJINITIALIZESETJFINDNEGATIVEENTRYSETIFSETANDREPEATTHISSTEPJINVERTSETJLOOPONDECREASEBYIFGOBACKTOJOTHERWISETHEALGORITHMTERMINATESSEETABLETABFORANEXAMPLEOFBOOTHROYDSALGORITHMAGAINTHEMETHODISESSENTIALLYBASEDONTHECYCLESTRUCTUREBUTTHISTIMEITISLESSOBVIOUSCYCLESINPERMSTHATTHEALGORITHMREALLYWORKSVERIFICATIONISLEFTTOTHEREADERSEEEXERCISETABTABLESPREADCOMPUTINGTHEINVERSEOFBYALGORITHMJTOAFTERSTEPTODECIDEHOWFASTTHISPROGRAMRUNSWENEEDTOKNOWTHEQUANTITYTHISQUANTITYISSOINTERESTINGANDINSTRUCTIVEITHASBEENLEFTASANEXERCISESEEEXERCISEALTHOUGHALGORITHMJISDEUCEDLYCLEVERANALYSISSHOWSTHATALGORITHMIISDEFINITELYSUPERIORINFACTTHEAVERAGERUNNINGTIMEOFALGORITHMJTURNSOUTTOBEESSENTIALLYPROPORTIONALTOWHILETHATOFALGORITHMIISESSENTIALLYPROPORTIONALTOMAYBESOMEDAYSOMEONEWILLFINDAUSEFORALGORITHMJORSOMERELATEDMODIFICATIONITISABITTOOPRETTYTOBEFORGOTTENALTOGETHERINVERSEOFPERMANUNUSUALCORRESPONDENCEWEHAVEALREADYREMARKEDTHATUNUSUALCORRESPONDENCECANONICALCYCLENOTATIONTHECYCLENOTATIONFORAPERMUTATIONISNOTUNIQUETHESIXELEMENTPERMUTATIONMAYBEWRITTENETCITWILLBEUSEFULTOCONSIDERACANONICALFORMFORTHECYCLICNOTATIONTHECANONICALFORMISUNIQUETOGETTHECANONICALFORMPROCEEDASFOLLOWSAWRITEALLSINGLETONCYCLESEXPLICITLYBWITHINEACHCYCLEPUTTHESMALLESTNUMBERFIRSTCORDERTHECYCLESINDECREASINGORDEROFTHEFIRSTNUMBERINTHECYCLEFOREXAMPLESTARTINGWITHWEWOULDGETTHEIMPORTANTPROPERTYOFTHISCANONICALFORMISTHATTHEPARENTHESESMAYBECANONICALCYCLENOTATIONDROPPEDANDUNIQUELYRECONSTRUCTEDAGAINTHUSTHEREISONLYONEWAYTOINSERTPARENTHESESINTOGETACANONICALCYCLEFORMONEMUSTINSERTALEFTPARENTHESISJUSTBEFOREEACHLEFTTORIGHTMINIMUMNAMELYJUSTBEFOREEACHELEMENTTHATISPRECEDEDBYNOSMALLERELEMENTSTHISINSERTIONANDREMOVALOFPARENTHESESGIVESUSANUNUSUALONETOONEUNUSUALCORRESPONDENCEANALYSISOFALGORITHMSCORRESPONDENCEBETWEENTHESETOFALLPERMUTATIONSEXPRESSEDINCYCLEFORMANDTHESETOFALLPERMUTATIONSEXPRESSEDINLINEARFORMFOREXAMPLETHEPERMUTATIONINCANONICALCYCLEFORMISREMOVEPARENTHESESTOGETWHICHINCYCLEFORMISREMOVEPARENTHESESTOGETWHICHINCYCLEFORMISETCTHISCORRESPONDENCEHASNUMEROUSAPPLICATIONSTOTHESTUDYOFPERMUTATIONSOFDIFFERENTTYPESFOREXAMPLELETUSASKHOWMANYCYCLESDOESAPERMUTATIONOFELEMENTSHAVEONTHEAVERAGETOANSWERTHISQUESTIONWECONSIDERTHESETOFALLPERMUTATIONSEXPRESSEDINCANONICALFORMANDDROPTHEPARENTHESESWEARELEFTWITHTHESETOFALLPERMUTATIONSINSOMEORDEROURORIGINALQUESTIONISTHEREFOREEQUIVALENTTOHOWMANYLEFTTORIGHTMINIMADOESAPERMUTATIONOFELEMENTSHAVEONTHEAVERAGEWEHAVEALREADYANSWEREDTHELATTERQUESTIONINSECTIONTHISWASTHEQUANTITYINTHEANALYSISOFALGORITHMFINDTHEMAXFORWHICHWEFOUNDTHESTATISTICSACTUALLYWEDISCUSSEDTHEAVERAGENUMBEROFRIGHTTOLEFTMAXIMABUTTHATSCLEARLYTHESAMEASTHENUMBEROFLEFTTORIGHTMINIMAFURTHERMOREWEPROVEDINESSENCETHATAPERMUTATIONOFOBJECTSHASLEFTTORIGHTMINIMAWITHPROBABILITYTHEREFORECYCLESINRANDOMPERMUTATIONSTIRLINGNUMBERSCOMBINATORIALLYAPERMUTATIONOFOBJECTSHASCYCLESWITHPROBABILITYWECANALSOASKABOUTTHEAVERAGEDISTANCEBETWEENLEFTTORIGHTMINIMAWHICHBECOMESEQUIVALENTTOTHEAVERAGELENGTHOFACYCLEBYTHETOTALNUMBEROFCYCLESAMONGALLTHEPERMUTATIONSISSINCEITISTIMESTHEAVERAGENUMBEROFCYCLESIFWEPICKONEOFTHESECYCLESATRANDOMWHATISITSAVERAGELENGTHIMAGINEALLPERMUTATIONSOFWRITTENDOWNINCYCLENOTATIONHOWMANYTHREECYCLESAREPRESENTTOANSWERTHISQUESTIONLETUSCONSIDERHOWMANYTIMESAPARTICULARTHREECYCLEAPPEARSITCLEARLYAPPEARSINEXACTLYOFTHEPERMUTATIONSSINCETHISISTHENUMBEROFWAYSTHEREMAININGELEMENTSMAYBEPERMUTEDNOWTHENUMBEROFDIFFERENTPOSSIBLETHREECYCLESISSINCETHEREARECHOICESFORFORFORANDAMONGTHESECHOICESEACHDIFFERENTTHREECYCLEHASAPPEAREDINTHREEFORMSTHEREFORETHETOTALNUMBEROFTHREECYCLESAMONGALLPERMUTATIONSISTIMESNAMELYSIMILARLYTHETOTALNUMBEROFCYCLESISFORTHISPROVIDESANOTHERSIMPLEPROOFOFTHEFACTTHATTHETOTALNUMBEROFCYCLESISHENCETHEAVERAGENUMBEROFCYCLESINARANDOMPERMUTATIONISASWEALREADYKNEWEXERCISESHOWSTHATTHEAVERAGELENGTHOFARANDOMLYCHOSENCYCLEISIFWECONSIDERTHECYCLESTOBEEQUALLYPROBABLEBUTIFWECHOOSEANELEMENTATRANDOMINARANDOMPERMUTATIONTHEAVERAGELENGTHOFTHECYCLECONTAININGTHATELEMENTISSOMEWHATGREATERTHANTOCOMPLETEOURANALYSESOFALGORITHMSAANDBWEWOULDLIKETOKNOWTHEAVERAGENUMBEROFSINGLETONCYCLESINARANDOMPERMUTATIONTHISISSINGLETONCYCLESANINTERESTINGPROBLEMSUPPOSEWEWRITEDOWNTHEPERMUTATIONSLISTINGFIRSTTHOSEWITHNOSINGLETONCYCLESTHENTHOSEWITHJUSTONEETCFOREXAMPLEIFSINGLETONCYCLESWHICHARETHEELEMENTSTHATREMAINFIXEDBYAPERMUTATIONHAVEBEENSPECIALLYMARKEDINTHISLISTPERMUTATIONSWITHNOFIXEDELEMENTSARECALLEDDERANGEMENTSTHENUMBEROFDERANGEMENTSISTHENUMBEROFWAYSTOPUTLETTERSINTOENVELOPESGETTINGTHEMALLWRONGLETBETHENUMBEROFPERMUTATIONSOFOBJECTSHAVINGEXACTLYFIXEDELEMENTSSOTHATFOREXAMPLEANEXAMINATIONOFTHELISTABOVEREVEALSTHEPRINCIPALRELATIONSHIPBETWEENTHESENUMBERSWECANGETALLPERMUTATIONSWITHFIXEDELEMENTSBYFIRSTCHOOSINGTHETHATARETOBEFIXEDTHISCANBEDONEINWAYSANDTHENPERMUTINGTHEREMAININGELEMENTSINALLWAYSTHATLEAVENOFURTHERELEMENTSFIXEDHENCEWEALSOHAVETHERULETHATTHEWHOLEISTHESUMOFITSPARTSCOMBININGEQSANDANDREWRITINGTHERESULTSLIGHTLYWEFINDTHATANEQUATIONTHATMUSTBETRUEFORALLPOSITIVEINTEGERSTHISEQUATIONHASALREADYCONFRONTEDUSBEFOREITAPPEARSINSECTIONINCONNECTIONWITHSTIRLINGSATTEMPTTOGENERALIZETHEFACTORIALFUNCTIONANDWEFOUNDASIMPLEDERIVATIONOFITSCOEFFICIENTSINSECTIONEXAMPLESTIRLINGCOEFSWECONCLUDETHATNOWLETBETHEPROBABILITYTHATAPERMUTATIONOFOBJECTSHASEXACTLYSINGLETONCYCLESSINCEWEHAVEFROMEQSANDTHEGENERATINGFUNCTIONISTHEREFOREPROBABILITYGENERATINGFUNCTIONFROMTHISFORMULAITFOLLOWSTHATANDWITHTHEMETHODSOFSECTIONWEOBTAINTHEFOLLOWINGSTATISTICSONTHENUMBEROFSINGLETONCYCLESASOMEWHATMOREDIRECTWAYTOCOUNTTHENUMBEROFPERMUTATIONSHAVINGNOSINGLETONCYCLESFOLLOWSFROMTHEPRINCIPLEOFINCLUSIONANDEXCLUSIONWHICHISANIMPORTANTMETHODFORMANYENUMERATIONPROBLEMSTHEGENERALPRINCIPLEOFINCLUSIONANDEXCLUSIONMAYBEFORMULATEDASFOLLOWSWEAREGIVENELEMENTSANDSUBSETSOFTHESEELEMENTSANDOURGOALISTOCOUNTHOWMANYOFTHEELEMENTSLIEINNONEOFTHESUBSETSLETDENOTETHENUMBEROFELEMENTSINASETTHENTHEDESIREDNUMBEROFOBJECTSINNONEOFTHESETSISINCLEXCLTHUSWEFIRSTSUBTRACTTHENUMBEROFELEMENTSINFROMTHETOTALNUMBERBUTTHISUNDERESTIMATESTHEDESIREDTOTALSOWEADDBACKTHENUMBEROFELEMENTSTHATARECOMMONTOPAIRSOFSETSFOREACHPAIRANDTHISHOWEVERGIVESANOVERESTIMATESOWESUBTRACTTHEELEMENTSCOMMONTOTRIPLESOFSETSETCTHEREARESEVERALWAYSTOPROVETHISFORMULAANDTHEREADERISINVITEDTODISCOVERONEOFTHEMSEEEXERCISETOCOUNTTHENUMBEROFPERMUTATIONSONELEMENTSHAVINGNOSINGLETONCYCLESSINGLETONCYCLESWECONSIDERTHEPERMUTATIONSANDLETBETHESETOFPERMUTATIONSINWHICHELEMENTFORMSASINGLETONCYCLEIFTHENUMBEROFELEMENTSINISTHENUMBEROFPERMUTATIONSINWHICHARESINGLETONCYCLESANDTHISISCLEARLYTHUSFORMULABECOMESINAGREEMENTWITHTHEPRINCIPLEOFINCLUSIONANDEXCLUSIONISDUETOADEMOIVRESEEHISDOCTRINEOFCHANCESLONDONRDEDREPRINTEDBYCHELSEABUTITSSIGNIFICANCEWASNOTGENERALLYAPPRECIATEDUNTILITWASPOPULARIZEDANDDEVELOPEDFURTHERBYITODHUNTERINHISALGEBRASECONDEDITIONANDBYWAWHITWORTHINTHEWELLKNOWNBOOKCHOICEANDCHANCECAMBRIDGECOMBINATORIALPROPERTIESOFPERMUTATIONSAREEXPLOREDFURTHERINSECTIONEXERCISESCONSIDERTHETRANSFORMATIONOFTHATREPLACESBYSHOWTHATTHISTRANSFORMATIONISAPERMUTATIONANDWRITEITINCYCLEFORMTHETEXTSHOWSHOWWEMIGHTSETBYUSINGASERIESOFREPLACEMENTOPERATIONSANDONEAUXILIARYVARIABLESHOWHOWTODOTHEJOBBYUSINGASERIESOFEXCHANGEOPERATIONSANDNOAUXILIARYVARIABLESCYCLESINPERMSTHEGENERALIZATIONTOARBITRARYPERMUTATIONSISCLEARCOMPUTETHEPRODUCTANDEXPRESSTHEANSWERINTWOLINENOTATIONCOMPAREWITHEQEXPRESSASAPRODUCTOFDISJOINTCYCLESMEQUATIONSHOWSSEVERALEQUIVALENTWAYSTOEXPRESSTHESAMEPERMUTATIONINCYCLEFORMHOWMANYDIFFERENTWAYSOFWRITINGTHATPERMUTATIONAREPOSSIBLEIFALLSINGLETONCYCLESARESUPPRESSEDSEEEXERCISEMWHATCHANGESAREMADETOTHETIMINGOFPROGRAMAIFWEREMOVETHEASSUMPTIONTHATALLBLANKWORDSOCCURATTHEEXTREMERIGHTTHETOTALTIMEDECREASESBYFOREVERYBLANKWORDFOLLOWINGABECAUSELINESCOSTWHILELINESCOSTITDECREASESBYFOREVERYBLANKWORDFOLLOWINGANAMEBECAUSELINESCOSTWHILEORCOSTINITIALBLANKSANDBLANKSBETWEENCYCLESDONOTAFFECTTHEEXECUTIONTIMETHEPOSITIONOFBLANKSHASNOEFFECTWHATEVERONPROGRAMBIFPROGRAMAISPRESENTEDWITHTHEINPUTWHATARETHEQUANTITIESANDOFWHATISTHETIMEREQUIREDBYPROGRAMAEXCLUDINGINPUTOUTPUTTOTALBYEQWOULDITBEFEASIBLETOMODIFYALGORITHMBTOGOFROMLEFTTORIGHTINSTEADOFFROMRIGHTTOLEFTTHROUGHTHEINPUTYESWEWOULDTHENKEEPTHEINVERSEOFTHEPERMUTATIONSOTHATGOESTOIFANDONLYIFTHEFINALCYCLEFORMWOULDTHENBECONSTRUCTEDFROMRIGHTTOLEFTUSINGTHETABLEBOTHPROGRAMSAANDBACCEPTTHESAMEINPUTANDGIVETHEANSWERINESSENTIALLYTHESAMEFORMISTHEOUTPUTEXACTLYTHESAMEUNDERBOTHPROGRAMSNOFOREXAMPLEGIVENASINPUTPROGRAMAWILLPRODUCEADGCEBASOUTPUTWHILEPROGRAMBPRODUCESCEBDGATHEANSWERSAREEQUIVALENTBUTNOTIDENTICALDUETOTHENONUNIQUENESSOFCYCLENOTATIONTHEFIRSTELEMENTCHOSENFORACYCLEISTHELEFTMOSTAVAILABLENAMEINTHECASEOFPROGRAMAANDTHELASTAVAILABLEDISTINCTNAMETOBEENCOUNTEREDFROMRIGHTTOLEFTINPROGRAMBMEXAMINETHETIMINGCHARACTERISTICSOFPROGRAMBNAMELYTHEQUANTITIESSHOWNTHEREEXPRESSTHETOTALTIMEINTERMSOFTHEQUANTITIESDEFINEDINANDOFCOMPARETHETOTALTIMEFORPROGRAMBWITHTHETOTALTIMEFORPROGRAMAONTHEINPUTASCOMPUTEDINEXERCISEKIRCHHOFFSLAWYIELDSINTERPRETATIONSNUMBEROFWORDSOFINPUTNUMBEROFNONBLANKWORDSNUMBEROFCOMPARISONSINNAMESTABLESEARCHSINCEEACHOFTHEOTHERNAMESGETSTAGGEDSUMMINGUPWEHAVEWHICHISSOMEWHATBETTERTHANPROGRAMABECAUSEISCERTAINLYLESSTHANTHETIMEINTHESTATEDCASEISSINCEFINDASIMPLERULEFORWRITINGINCYCLEFORMIFTHEPERMUTATIONISGIVENINCYCLEFORMINVERSEOFPERMUTATIONCYCLENOTATIONREFLECTITFOREXAMPLETHEINVERSEOFISMTXTRANSPMTRANSPOSINGARECTANGULARMATRIXSUPPOSEANMATRIXISSTOREDINMEMORYINAFASHIONROWMAJORORDERLIKETHATOFEXERCISESADDLEMTXSOTHATTHEVALUEOFAPPEARSINLOCATIONWHEREISTHELOCATIONOFTHEPROBLEMISTOFINDAWAYTOTRANSPOSETHISMATRIXOBTAININGANMATRIXWHEREISSTOREDINLOCATIONTHUSTHEMATRIXISTOBETRANSPOSEDONITSELFASHOWTHATTHETRANSPOSITIONTRANSFORMATIONMOVESTHEVALUETHATAPPEARSINCELLTOCELLFORALLINTHERANGEBDISCUSSMETHODSFORDOINGTHISTRANSPOSITIONBYCOMPUTERATHEVALUEINCELLISFIXEDBYTHETRANSPOSITIONSOWEMAYOMITITFROMCONSIDERATIONOTHERWISEIFTHEVALUEINSHOULDGOTOCELLSINCEANDBIFONEBITINEACHMEMORYCELLISAVAILABLEFOREXAMPLETHESIGNWECANTAGELEMENTSASWEMOVETHEMUSINGANALGORITHMLIKEALGORITHMISEEMFBERMANJACMIFTHEREISNOROOMFORATAGBITTAGBITSCANBEKEPTINANAUXILIARYTABLEORELSEALISTOFREPRESENTATIVESOFALLNONSINGLETONCYCLESCANBEUSEDFOREACHDIVISOROFWECANTRANSPOSETHOSEELEMENTSTHATAREMULTIPLESOFSEPARATELYSINCEISPRIMETOTHELENGTHOFTHECYCLECONTAININGWHENISTHESMALLESTINTEGERSUCHTHATFOREACHWEWANTTOFINDREPRESENTATIVESONEFROMEACHOFTHESECYCLESSOMENUMBERTHEORETICMETHODSAREAVAILABLEFORTHISPURPOSEBUTTHEYARENOTSIMPLEENOUGHTOBEREALLYSATISFACTORYANEFFICIENTBUTRATHERCOMPLICATEDALGORITHMCANBEOBTAINEDBYCOMBININGNUMBERTHEORYWITHASMALLTABLEOFTAGBITSSEENBRENNERCACMFINALLYTHEREISAMETHODANALOGOUSTOALGORITHMJITISSLOWERBUTNEEDSNOAUXILIARYMEMORYANDITPERFORMSANYDESIREDPERMUTATIONSINPLACEPERMUTATIONINSITUSEEPFWINDLEYCOMPJDEKNUTHPROCIFIPCONGRESSEGCATEANDDWTWIGGACMTRANSMATHSOFTWAREFEFICHJIMUNROANDPVPOBLETESICOMPMPROVETHATALGORITHMJISVALIDSHOWBYINDUCTIONTHATATTHEBEGINNINGOFSTEPJIFANDONLYIFANDGOESTOUNDERIFANDONLYIFGOESTOUNDERWHEREISTHESMALLESTNONNEGATIVEINTEGERSUCHTHATTAKESINTOANUMBERBOOTHROYDANALMFINDTHEAVERAGEVALUEOFTHEQUANTITYINTHETIMINGOFALGORITHMJWRITINGTHEINVERSEOFTHEGIVENPERMUTATIONINCANONICALCYCLEFORMANDDROPPINGPARENTHESESTHEQUANTITYISTHESUMOFTHENUMBEROFCONSECUTIVEELEMENTSGREATERTHANAGIVENELEMENTANDIMMEDIATELYTOITSRIGHTFOREXAMPLEIFTHEORIGINALPERMUTATIONISTHECANONICALFORMOFTHEINVERSEISSETUPTHEARRAYANDTHEQUANTITYISTHENUMBEROFDOTSTHENUMBEROFDOTSBELOWTHETHELEMENTISTHENUMBEROFRIGHTTOLEFTMINIMAINTHEFIRSTELEMENTSTHEREAREDOTSBELOWINTHEEXAMPLEABOVESINCETHEREARERIGHTTOLEFTMINIMAINHENCETHEAVERAGEISMISTHEREAPERMUTATIONTHATREPRESENTSEXACTLYTHESAMETRANSFORMATIONBOTHINTHECANONICALCYCLEFORMWITHOUTPARENTHESESANDINTHELINEARFORMIFTHEFIRSTCHARACTEROFTHELINEARREPRESENTATIONISTHELASTCHARACTEROFTHECANONICALREPRESENTATIONISIFTHEFIRSTCHARACTEROFTHELINEARREPRESENTATIONISTHENAPPEARSINTHECANONICALREPRESENTATIONSOTHEONLYSOLUTIONISTHEPERMUTATIONOFASINGLEOBJECTWELLTHERESALSOTHEPERMUTATIONOFNOOBJECTSMSTARTWITHTHEPERMUTATIONINLINEARNOTATIONCONVERTITTOCANONICALCYCLEFORMANDTHENREMOVETHEPARENTHESESREPEATTHISPROCESSUNTILARRIVINGATTHEORIGINALPERMUTATIONWHATPERMUTATIONSOCCURDURINGTHISPROCESSMATHETEXTDEMONSTRATESTHATTHEREARECYCLESALTOGETHERAMONGALLTHEPERMUTATIONSONELEMENTSIFTHESECYCLESINCLUDINGSINGLETONCYCLESAREINDIVIDUALLYWRITTENONSLIPSOFPAPERANDIFONEOFTHESESLIPSOFPAPERISCHOSENATRANDOMWHATISTHEAVERAGELENGTHOFTHECYCLETHATISTHEREBYPICKEDBIFWEWRITETHEPERMUTATIONSONSLIPSOFPAPERANDIFWECHOOSEANUMBERATRANDOMANDALSOCHOOSEONEOFTHESLIPSOFPAPERWHATISTHEPROBABILITYTHATTHECYCLECONTAININGONTHATSLIPISANCYCLEWHATISTHEAVERAGELENGTHOFTHECYCLECONTAININGATHEPROBABILITYTHATTHECYCLEISANCYCLEISDIVIDEDBYSOTHEAVERAGELENGTHISBSINCETHETOTALNUMBEROFCYCLESISTHETOTALNUMBEROFAPPEARANCESOFELEMENTSINCYCLESISEACHELEMENTAPPEARSASOFTENASANYOTHERBYSYMMETRYSOAPPEARSTIMESINCYCLESINTHISCASETHEREFOREFORALLANDTHEAVERAGEISMWHATISTHEPROBABILITYTHATAPERMUTATIONOFOBJECTSHASEXACTLYCYCLESOFLENGTHWHATISTHECORRESPONDINGGENERATINGFUNCTIONWHATISTHEAVERAGENUMBEROFCYCLESANDWHATISTHESTANDARDDEVIATIONTHETEXTCONSIDERSONLYTHECASESEEEXERCISEESHOWTHATINTHENOTATIONOFEQTHENUMBEROFDERANGEMENTSISEXACTLYEQUALTOROUNDEDTOTHENEARESTINTEGERFORALLROUNDINGANALTERNATINGSERIESOFDECREASINGMAGNITUDESWHICHISLESSTHANMGIVENTHATALLSINGLETONCYCLESAREWRITTENOUTEXPLICITLYHOWMANYDIFFERENTWAYSARETHERETOWRITETHECYCLENOTATIONOFAPERMUTATIONTHATHASONECYCLESTWOCYCLESSEEEXERCISETHEREARECYCLESINALLWHICHCANBEPERMUTEDAMONGONEANOTHERANDEACHCYCLECANBEINDEPENDENTLYWRITTENINWAYSSOTHEANSWERISCYCLECOUNTPROBMWHATISTHEPROBABILITYTHATAPERMUTATIONOFOBJECTSHASEXACTLYONECYCLESTWOCYCLESETCIFZEROOTHERWISEWRITEOUTCYCLESCYCLESETCINAROWWITHEMPTYPOSITIONSFOREXAMPLEIFWEWOULDHAVEFILLTHEEMPTYPOSITIONSINALLPOSSIBLEWAYSWEOBTAINEACHPERMUTATIONOFTHEDESIREDFORMEXACTLYTIMESTHEFOLLOWINGAPPROACHDUETOLSHEPPANDSPLLOYDGIVESACONVENIENTANDPOWERFULMETHODFORSOLVINGPROBLEMSRELATEDTOTHECYCLESTRUCTUREOFRANDOMPERMUTATIONSINSTEADOFREGARDINGTHENUMBEROFOBJECTSASFIXEDANDTHEPERMUTATIONVARIABLELETUSASSUMEINSTEADTHATWEINDEPENDENTLYCHOOSETHEQUANTITIESAPPEARINGINEXERCISESANDACCORDINGTOSOMEPROBABILITYDISTRIBUTIONLETBEANYREALNUMBERBETWEENANDASUPPOSETHATWECHOOSETHERANDOMVARIABLESACCORDINGTOTHERULETHATTHEPROBABILITYTHATISFORSOMEFUNCTIONDETERMINETHEVALUEOFSOTHATTHEFOLLOWINGTWOCONDITIONSHOLDIFORANDIITHEPROBABILITYTHATANDTHATEQUALSWHEREISDEFINEDINEXERCISEBAPERMUTATIONWHOSECYCLESTRUCTUREISCLEARLYPERMUTESEXACTLYOBJECTSSHOWTHATIFTHESARERANDOMLYCHOSENACCORDINGTOTHEPROBABILITYDISTRIBUTIONINPARTATHEPROBABILITYTHATISTHEPROBABILITYTHATISINFINITEISZEROCLETBEANYFUNCTIONOFTHEINFINITELYMANYNUMBERSSHOWTHATIFTHESARECHOSENACCORDINGTOTHEPROBABILITYDISTRIBUTIONINATHEAVERAGEVALUEOFISHEREDENOTESTHEAVERAGEVALUEOFTAKENOVERALLPERMUTATIONSOFOBJECTSWHERETHEVARIABLEREPRESENTSTHENUMBEROFCYCLESOFAPERMUTATIONFOREXAMPLEIFTHEVALUEOFISTHEAVERAGENUMBEROFSINGLETONCYCLESINARANDOMPERMUTATIONOFOBJECTSWESHOWEDINTHATFORALLDUSETHISMETHODTOFINDTHEAVERAGENUMBEROFCYCLESOFEVENLENGTHINARANDOMPERMUTATIONOFOBJECTSEUSETHISMETHODTOSOLVEEXERCISEAIFTHEPROBABILITYINIIISWHICHISASSUMEDTOEQUALHENCETHEREFOREBYINDUCTIONANDCONDITIONIIMPLIESTHATINOTHERWORDSISCHOSENWITHAPOISSONDISTRIBUTIONSEEEXERCISEPOISSONDISTBHENCETHEPROBABILITYTHATISCTHEAVERAGEOFISDLETTHEAVERAGEVALUEOFTHELINEARCOMBINATIONISTHESUMOFTHEAVERAGEVALUESOFANDTHEAVERAGEVALUEOFISTHEREFORETHEAVERAGEVALUEOFISTHEDESIREDANSWERISESETANDOBSERVETHATTHEAVERAGEVALUEOFISHENCETHESTATISTICSAREMINAVEMAXDEVWHENDICKMANGOLOMBCONSTANTGOLOMBSHEPPLLOYDIFDENOTESTHEAVERAGELENGTHOFTHELONGESTCYCLEINAPERMUTATIONOFOBJECTSSHOWTHATWHEREISACONSTANTPROVEINFACTTHATCYCLESINRANDOMPERMUTATIONCYCLESINPERMSTHECONSTANTISWHERESEETRANSAMERMATHSOCWHEREMANYOTHERRESULTSAREPROVEDINPARTICULARTHATTHEAVERAGELENGTHOFTHESHORTESTCYCLEISAPPROXIMATELYFURTHERTERMSOFTHEASYMPTOTICREPRESENTATIONOFHAVEBEENFOUNDBYXAVIERGOURDONPHDTHESISPARISECOLEPOLYTECHNIQUEASYMPTOTICSTHESERIESBEGINSWHEREWILLIAMCMITCHELLHASCALCULATEDAHIGHPRECISIONVALUEOFMATHCOMPNORELATIONBETWEENANDCLASSICALMATHEMATICALCONSTANTSISKNOWNTHESAMECONSTANTHADHOWEVERBEENCOMPUTEDINANOTHERCONTEXTBYKARLDICKMANINARKIVFORMATEMATIKASTRONOMIOCHFYSIKATHECOINCIDENCEWASNTNOTICEDUNTILMANYYEARSLATERTHEORETICALCOMPUTERSCIENCEMFINDTHEVARIANCEOFTHEQUANTITYTHATENTERSINTOTHETIMINGOFALGORITHMJSEEEXERCISESEEDEKNUTHPROCIFIPCONGRESSMPROVEEQONEPROOFBYINDUCTIONONISBASEDONTHEFACTTHATWHENTHETHELEMENTISAMEMBEROFOFTHESETSITCONTRIBUTESEXACTLYTOTHESUMANOTHERPROOFBYINDUCTIONONISBASEDONTHEFACTTHATTHENUMBEROFELEMENTSTHATAREINBUTNOTINISEXTENDEDINCLEXCLMEXTENDTHEPRINCIPLEOFINCLUSIONANDEXCLUSIONTOOBTAINAFORMULAFORTHENUMBEROFELEMENTSTHATAREINEXACTLYOFTHESUBSETSTHETEXTCONSIDERSONLYTHECASELETANDLETTHENISTHEDESIREDFORMULAITCANBEPROVEDFROMTHEPRINCIPLEOFINCLUSIONANDEXCLUSIONITSELFORBYUSINGTHEMETHODOFEXERCISETOGETHERWITHTHEFACTTHATDIVISORCOUNTMUSETHEPRINCIPLEOFINCLUSIONANDEXCLUSIONTOCOUNTTHENUMBEROFINTEGERSINTHERANGETHATARENOTDIVISIBLEBYANYOFHEREANDAREPOSITIVEINTEGERSWITHWHENLETBETHEMULTIPLESOFINTHESTATEDRANGEANDLETTHENETCSOTHEANSWERISTHISALSOSOLVESEXERCISETOTIENTEVALIFWELETBETHEPRIMESDIVIDINGTOTIENTFUNCTIONMIKAPLANSKYIFTHEJOSEPHUSPERMUTATIONDEFINEDINEXERCISEJOSEPHUSPROBISEXPRESSEDINCYCLEFORMWEOBTAINWHENANDSHOWTHATTHISPERMUTATIONINTHEGENERALCASEISTHEPRODUCTSEEINHERSTEINANDIKAPLANSKYMATTERSMATHEMATICALMPROVETHATTHECYCLEFORMOFTHEJOSEPHUSPERMUTATIONWHENCANBEOBTAINEDBYFIRSTEXPRESSINGTHEPERFECTSHUFFLEPERMUTATIONOFWHICHTAKESINTOINCYCLEFORMTHENREVERSINGLEFTANDRIGHTANDERASINGALLTHENUMBERSGREATERTHANFOREXAMPLEWHENTHEPERFECTSHUFFLEISANDTHEJOSEPHUSPERMUTATIONISWHENPASSINGOVERAMANASSIGNHIMANEWNUMBERSTARTINGWITHTHENTHETHMANEXECUTEDISNUMBERANDMANNUMBERFORWASPREVIOUSLYNUMBERINCIDENTALLYTHEORIGINALNUMBEROFTHETHMANEXECUTEDISARMINSHAMSPROCNATCOMPUTERCONFENGLISHPAPERSSECTIONMASHHADIRANFERDOWSIUNIVERSITYMUSEEXERCISETOSHOWTHATTHEFIXEDELEMENTSOFTHEJOSEPHUSPERMUTATIONWHENAREPRECISELYTHENUMBERSFORALLPOSITIVEINTEGERSSUCHTHATTHISISANINTEGERGENERALIZINGEXERCISESANDPROVETHATTHETHMANTOBEEXECUTEDFORGENERALANDISINPOSITIONWHEREMAYBECOMPUTEDASFOLLOWSSETTHENWHILESETCONSEQUENTLYTHEAVERAGENUMBEROFFIXEDELEMENTSFORANDFIXEDASAPPROACHESSINCETHISVALUELIESBETWEENANDTHEJOSEPHUSPERMUTATIONSHAVESLIGHTLYFEWERFIXEDELEMENTSTHANRANDOMONESDOSEECMATHSECTIONLETANDWHERETHENIFANDONLYIFWHEREANDSINCEANDTHEPOSSIBILITIESFORAREDISTINCTTHEAVERAGENUMBEROFSTEPFIXEDELEMENTSISMAPROVETHATANYPERMUTATIONOFTHEFORMWHEREEACHISORHASFORBGIVENANYPERMUTATIONOFCONSTRUCTAPERMUTATIONOFTHESTATEDFORMSUCHTHATISASINGLECYCLETHUSEVERYPERMUTATIONISNEARACYCLEAINFACTWHENISEVENWHENISODDBCHOOSETHEEXPONENTSFROMLEFTTORIGHTSETTINGIFANDONLYIFANDAREINDIFFERENTCYCLESOFTHEPERMUTATIONSOFARSTEVENALPERNJCOMBINATORIALTHEORYBMIFANDSHOWHOWTOCONSTRUCTSEQUENCESOFPERMUTATIONSFORWITHTHEFOLLOWINGORTHOGONALITYPROPERTYORTHOGONALVECTORSOFPERMUTATIONSPERMUTATIONSORTHOGONALVECTORSOFEACHANDSHOULDBEAPERMUTATIONOFFORLETANDWHEREANDSUPPOSEWEHAVEMADESUCHACONSTRUCTIONFORSOMEWHEREFORANDTHENTHEPERMUTATIONSHAVETHEPROPERTYTHATIFANDOTHERWISETHEPRODUCTISCHOOSINGANDWILLMAKETHEPRODUCTASDESIREDWHENTHECONSTRUCTIONTHATLEADSFROMTOISDUETODAVIDABARRINGTONJCOMPSYSTSCIWHOPROVEDAGENERALTHEOREMBYWHICHANYBOOLEANFUNCTIONCANBEREPRESENTEDASAPRODUCTOFPERMUTATIONSOFWITHASIMILARCONSTRUCTIONWECANFOREXAMPLEFINDSEQUENCESOFPERMUTATIONSSUCHTHATFORWHENTRBLOCKSMTRANSPOSINGBLOCKSOFDATAONEOFTHEMOSTCOMMONPERMUTATIONINPLACETRANSPOSINGBLOCKSPERMUTATIONSNEEDEDINPRACTICEISTHECHANGEFROMTOWHEREANDARESUBSTRINGSOFANARRAYINOTHERWORDSIFANDWEWANTTOCHANGETHEARRAYTOTHEARRAYEACHELEMENTSHOULDBEREPLACEDBYFORWHERESHOWTHATEVERYSUCHCYCLICSHIFTPERMUTATIONHASASIMPLECYCLESTRUCTUREANDEXPLOITTHATSTRUCTURETODEVISEASIMPLEALGORITHMFORTHEDESIREDREARRANGEMENTTRANSPOSINGBLOCKSPERMUTATIONINPLACELETIFTHEREISONLYONECYCLEBECAUSEEVERYELEMENTCANBEWRITTENINTHEFORMFORSOMEINTEGERANDINGENERALIFTHEREAREEXACTLYCYCLESWHERECONTAINSTHEELEMENTSINSOMEORDERTOCARRYOUTTHEPERMUTATIONWECANTHEREFOREPROCEEDASFOLLOWSFORINPARALLELIFCONVENIENTSETANDTHENWHILESETANDFINALLYSETINTHISALGORITHMTHERELATIONWILLHOLDIFANDONLYIFSOWECANUSEWHICHEVERTESTISMOREEFFICIENTWFLETCHERANDRSILVERCACMMCONTINUINGTHEPREVIOUSEXERCISELETWHEREANDARESTRINGSOFRESPECTIVELENGTHSANDANDSUPPOSETHATWEWANTTOCHANGETOSHOWTHATTHECORRESPONDINGPERMUTATIONHASACONVENIENTCYCLESTRUCTURETHATLEADSTOANEFFICIENTALGORITHMEXERCISECONSIDEREDTHESPECIALCASEHINTCONSIDERCHANGINGTOLETANDTHECYCLESFORTHEDESIREDREARRANGEMENTAREOBTAINEDFROMTHECYCLESOFTHEPERMUTATIONONTHATTAKESTOBYSIMPLYSTRIKINGOUTALLELEMENTSOFEACHCYCLETHATARECOMPARETHISBEHAVIORWITHTHESIMILARSITUATIONINEXERCISEPROOFWHENTHEHINTEDINTERCHANGESETSANDFORSOMEWITHANDANDWEKNOWTHATHENCETHEREARRANGEMENTREPLACESBYITFOLLOWSTHATTHEREAREEXACTLYCYCLESANDWECANUSEANALGORITHMSIMILARTOTHEONEINTHEPREVIOUSEXERCISEASLIGHTLYSIMPLERWAYTOREDUCETHISPROBLEMTOTHESPECIALCASEINEXERCISEISALSONOTEWORTHYALTHOUGHITMAKESAFEWMOREREFERENCESTOMEMORYSUPPOSEWHERETHENWECANCHANGETOANDINTERCHANGEWITHASIMILARAPPROACHWORKSIFSEEJLMOHAMMEDANDCSSUBIJALGORITHMSWRITEASUBROUTINEFORTHEALGORITHMINTHEANSWERTOEXERCISEANDANALYZEITSRUNNINGTIMECOMPAREITWITHTHESIMPLERMETHODTHATGOESFROMTOTOWHEREDENOTESTHELEFTRIGHTREVERSALOFTHESTRINGMEVENPERMUTATIONSLETBEAPERMUTATIONOFPROVETHATCANBEWRITTENASTHEPRODUCTOFANEVENNUMBEROFCYCLESIFANDONLYIFCANBEWRITTENASTHEPRODUCTOFEXACTLYTWOCYCLESTHERESULTISCLEARWHENOTHERWISEWECANFINDSUCHTHATTAKESTOTHENFORCYCLESANDIFANDONLYIFSEEAJACQUESCLENORMANDALENTINANDJFPERROTCOMPTESRENDUSACADSCIPARISAAPERMUTATIONSSOMEFUNDAMENTALPROGRAMMINGTECHNIQUESSUBROUTINESWHENACERTAINSUBROUTINESTASKISTOBEPERFORMEDATSEVERALDIFFERENTPLACESINAPROGRAMITISUSUALLYUNDESIRABLETOREPEATTHECODINGINEACHPLACETOAVOIDTHISSITUATIONTHECODINGCALLEDASUBROUTINECANBEPUTINTOONEPLACEONLYANDAFEWEXTRAINSTRUCTIONSCANBEADDEDTORESTARTTHEOUTERPROGRAMPROPERLYAFTERTHESUBROUTINEISFINISHEDTRANSFEROFCONTROLBETWEENSUBROUTINESANDMAINPROGRAMSISCALLEDSUBROUTINELINKAGEEACHMACHINEHASITSOWNPECULIARMANNERFORACHIEVINGEFFICIENTSUBROUTINELINKAGEUSUALLYINVOLVINGSPECIALINSTRUCTIONSINTHEJREGISTERISJREGISTEROFMIXUSEDFORTHISPURPOSEOURDISCUSSIONWILLBEBASEDONMACHINELANGUAGEBUTSIMILARREMARKSWILLAPPLYTOSUBROUTINELINKAGEONOTHERCOMPUTERSSUBROUTINESAREUSEDTOSAVESPACEINAPROGRAMTHEYDONOTSAVEANYTIMEOTHERTHANTHETIMEIMPLICITLYSAVEDBYOCCUPYINGLESSSPACEFOREXAMPLELESSTIMETOLOADTHEPROGRAMORFEWERPASSESNECESSARYINTHEPROGRAMORBETTERUSEOFHIGHSPEEDMEMORYONMACHINESWITHSEVERALGRADESOFMEMORYTHEEXTRATIMETAKENTOENTERANDLEAVEASUBROUTINEISUSUALLYNEGLIGIBLESUBROUTINESHAVESEVERALOTHERADVANTAGESTHEYMAKEITEASIERTOVISUALIZETHESTRUCTUREOFALARGEANDCOMPLEXPROGRAMTHEYFORMALOGICALSEGMENTATIONOFTHEENTIREPROBLEMANDTHISUSUALLYMAKESDEBUGGINGOFTHEPROGRAMEASIERMANYSUBROUTINESHAVEADDITIONALVALUEBECAUSETHEYCANBEUSEDBYPEOPLEOTHERTHANTHEPROGRAMMEROFTHESUBROUTINEMOSTCOMPUTERINSTALLATIONSHAVEBUILTUPALARGELIBRARYOFUSEFULSUBROUTINESANDSUCHALIBRARYGREATLYFACILITATESTHEPROGRAMMINGOFSTANDARDCOMPUTERAPPLICATIONSTHATARISEAPROGRAMMERSHOULDNOTTHINKOFTHISASTHEONLYPURPOSEOFSUBROUTINESHOWEVERSUBROUTINESSHOULDNOTALWAYSBEREGARDEDASGENERALPURPOSEPROGRAMSTOBEUSEDBYTHECOMMUNITYSPECIALPURPOSESUBROUTINESAREJUSTASIMPORTANTEVENWHENTHEYAREINTENDEDTOAPPEARINONLYONEPROGRAMSECTIONCONTAINSSEVERALTYPICALEXAMPLESTHESIMPLESTSUBROUTINESARETHOSETHATHAVEONLYONEENTRANCEANDONEEXITSUCHASTHEMAXIMUMSUBROUTINEWEHAVEALREADYCONSIDEREDMAXIMUMALGORITHMPROGRAMENTRANCESTOSUBROUTINESEXITSFROMSUBROUTINESSEESECTIONPROGRAMFINDMAXPROGFORREFERENCEWEWILLRECOPYTHATPROGRAMHERECHANGINGITSOTHATAFIXEDNUMBEROFCELLSISSEARCHEDFORTHEMAXIMUMINALARGERPROGRAMCONTAININGTHISCODINGASASUBROUTINETHESINGLEINSTRUCTIONJMPMAXWOULDCAUSEREGISTERATOBESETTOTHECURRENTMAXIMUMVALUEOFLOCATIONSTHROUGHANDTHEPOSITIONOFTHEMAXIMUMWOULDAPPEARINRISUBROUTINELINKAGEINTHISCASEISACHIEVEDBYTHEINSTRUCTIONSMAXSTJEXITANDLATEREXITJMPBECAUSEOFTHEWAYTHEJREGISTEROPERATESTHEEXITINSTRUCTIONWILLTHENJUMPTOTHELOCATIONFOLLOWINGTHEPLACEWHERETHEORIGINALREFERENCETOMAXWASMADENEWERCOMPUTERSSUCHASTHEMACHINETHATISMMIXDESTINEDTOREPLACEHAVEBETTERWAYSTOREMEMBERRETURNADDRESSESTHEMAINDIFFERENCEISTHATPROGRAMINSTRUCTIONSARENOLONGERMODIFIEDINMEMORYTHERELEVANTINFORMATIONISKEPTINREGISTERSORINASPECIALARRAYNOTWITHINTHEPROGRAMITSELFSEEEXERCISETHENEXTEDITIONOFTHISBOOKSELFMODIFYINGCODEWILLADOPTTHEMODERNVIEWBUTFORNOWWEWILLSTICKTOTHEOLDTIMEPRACTICEOFSELFMODIFYINGCODEITISNOTHARDTOOBTAINQUANTITATIVESTATEMENTSABOUTTHEAMOUNTOFCODESAVEDANDTHEAMOUNTOFTIMELOSTWHENSUBROUTINESAREUSEDSUPPOSETHATAPIECEOFCODINGREQUIRESLOCATIONSANDTHATITAPPEARSINPLACESINTHEPROGRAMREWRITINGTHISASASUBROUTINEWENEEDANEXTRAINSTRUCTIONSTJANDANEXITLINEFORTHESUBROUTINEPLUSASINGLESTJJMPJMPINSTRUCTIONINEACHOFTHEPLACESWHERETHESUBROUTINEISCALLEDTHISGIVESATOTALOFLOCATIONSRATHERTHANSOTHEAMOUNTSAVEDISIFISORISWECANNOTPOSSIBLYSAVEANYSPACEBYUSINGSUBROUTINESTHISOFCOURSEISOBVIOUSIFISMUSTBEGREATERTHANINORDERTOGAINETCTHEAMOUNTOFTIMELOSTISTHETIMETAKENFORTHEEXTRAJMPSTJANDJMPINSTRUCTIONSWHICHARENOTPRESENTIFTHESUBROUTINEISNOTUSEDTHEREFOREIFTHESUBROUTINEISUSEDTIMESDURINGARUNOFTHEPROGRAMEXTRACYCLESOFTIMEAREREQUIREDTHESEESTIMATESMUSTBETAKENWITHAGRAINOFSALTBECAUSETHEYWEREGIVENFORANIDEALIZEDSITUATIONMANYSUBROUTINESCANNOTBECALLEDSIMPLYWITHASINGLEJMPINSTRUCTIONFURTHERMOREIFTHECODINGISREPEATEDINMANYPARTSOFAPROGRAMWITHOUTUSINGASUBROUTINEAPPROACHTHECODINGFOREACHPARTCANBECUSTOMIZEDTOTAKEADVANTAGEOFSPECIALCHARACTERISTICSOFTHEPARTICULARPARTOFTHEPROGRAMINWHICHITLIESWITHASUBROUTINEONTHEOTHERHANDTHECODINGMUSTBEWRITTENFORTHEMOSTGENERALCASENOTASPECIFICCASEANDTHISWILLOFTENADDSEVERALADDITIONALINSTRUCTIONSWHENASUBROUTINEISWRITTENTOHANDLEAGENERALCASEITISEXPRESSEDINTERMSOFPARAMETERSPARAMETERSAREVALUESTHATGOVERNTHESUBROUTINESACTIONSTHEYARESUBJECTTOCHANGEFROMONECALLOFTHESUBROUTINETOANOTHERTHECODINGINTHEOUTSIDEPROGRAMTHATTRANSFERSCONTROLTOTHESUBROUTINECALLINGSEQUENCEANDGETSITPROPERLYSTARTEDISKNOWNASTHECALLINGSEQUENCEPARTICULARVALUESOFPARAMETERSSUPPLIEDWHENTHESUBROUTINEISCALLEDAREKNOWNASARGUMENTSWITHOURMAXSUBROUTINETHECALLINGSEQUENCEISSIMPLYJMPMAXBUTALONGERCALLINGSEQUENCEISGENERALLYNECESSARYWHENARGUMENTSMUSTBESUPPLIEDFOREXAMPLEPROGRAMFINDMAXPROGISAGENERALIZATIONOFMAXTHATFINDSTHEMAXIMUMOFTHEFIRSTELEMENTSOFTHETABLETHEPARAMETERAPPEARSININDEXREGISTERANDITSCALLINGSEQUENCEINVOLVESTWOSTEPSIFTHECALLINGSEQUENCETAKESMEMORYLOCATIONSFORMULAFORTHEAMOUNTOFSPACESAVEDCHANGESTOANDTHETIMELOSTFORSUBROUTINELINKAGEISSLIGHTLYINCREASEDAFURTHERCORRECTIONTOTHEFORMULASABOVECANBENECESSARYBECAUSECERTAINREGISTERSMIGHTNEEDTOBESAVEDANDRESTOREDFOREXAMPLEINTHEMAXSAVINGANDRESTORINGREGISTERSSUBROUTINEWEMUSTREMEMBERTHATBYWRITINGJMPMAXWEARENOTONLYGETTINGTHEMAXIMUMVALUEINREGISTERAANDITSPOSITIONINREGISTERIWEAREALSOSETTINGREGISTERITOZEROASUBROUTINEMAYDESTROYREGISTERCONTENTSANDTHISMUSTBEKEPTINMINDINORDERTOPREVENTMAXFROMCHANGINGTHESETTINGOFRIITWOULDBENECESSARYTOINCLUDEADDITIONALINSTRUCTIONSTHESHORTESTANDFASTESTWAYTODOTHISWITHWOULDBETOINSERTTHEINSTRUCTIONSTFJUSTAFTERMAXANDTHENHENTJUSTBEFOREEXITTHENETCOSTWOULDBEANEXTRATWOLINESOFCODEPLUSTHREEMACHINECYCLESONEVERYCALLOFTHESUBROUTINEASUBROUTINEMAYBEREGARDEDASANEXTENSIONOFTHECOMPUTERSMACHINELANGUAGEWITHTHEMAXSUBROUTINEINMEMORYWENOWHAVEASINGLEINSTRUCTIONNAMELYJMPMAXTHATISAMAXIMUMFINDERITISIMPORTANTTODEFINETHEEFFECTOFEACHSUBROUTINEJUSTASCAREFULLYASTHEMACHINELANGUAGEOPERATORSTHEMSELVESHAVEBEENDEFINEDAPROGRAMMERSHOULDTHEREFOREBESURETOWRITEDOWNTHECHARACTERISTICSOFEACHSUBROUTINEEVENTHOUGHNOBODYELSEWILLBEMAKINGUSEOFTHEROUTINEORITSSPECIFICATIONINTHECASEOFMAXIMUMASGIVENINSECTIONTHECHARACTERISTICSAREASFOLLOWSWEWILLCUSTOMARILYOMITMENTIONOFTHEFACTTHATREGISTERJANDTHECOMPARISONINDICATORAREAFFECTEDBYASUBROUTINEITHASBEENMENTIONEDHEREONLYFORCOMPLETENESSNOTETHATRXANDRIAREUNAFFECTEDBYTHEACTIONOFTHESUBROUTINEFOROTHERWISETHESEREGISTERSWOULDHAVEBEENMENTIONEDINTHEEXITCONDITIONSASPECIFICATIONSHOULDALSOMENTIONALLMEMORYLOCATIONSEXTERNALTOTHESUBROUTINETHATMIGHTBEAFFECTEDINTHISCASETHESPECIFICATIONALLOWSUSTOCONCLUDETHATNOTHINGHASBEENSTOREDSINCEDOESNTSAYANYTHINGABOUTCHANGESTOMEMORYNOWLETSCONSIDERMULTIPLEENTRANCESTOSUBROUTINESSUPPOSEWEHAVEAPROGRAMTHATREQUIRESTHEGENERALSUBROUTINEMAXIMUMBUTITUSUALLYWANTSTOUSETHESPECIALCASEMAXINWHICHTHETWOCANBECOMBINEDASFOLLOWSTHENTHESUBROUTINECOULDBEWRITTENASFOLLOWSONMACHINESLIKESYSTEMFORWHICHLINKAGEISORDINARILYDONEBYPUTTINGTHEEXITLOCATIONINANINDEXREGISTERACONVENTIONLIKETHISISPARTICULARLYCONVENIENTITISALSOUSEFULWHENASUBROUTINENEEDSMANYARGUMENTSORWHENAPROGRAMHASBEENWRITTENBYACOMPILERTHETECHNIQUEOFMULTIPLEENTRANCESTHATWEUSEDABOVEOFTENFAILSINTHISCASEHOWEVERWECOULDFAKEITBYWRITINGBUTTHISISNOTASATTRACTIVEASATECHNIQUESIMILARTOTHATOFLISTINGARGUMENTSAFTERTHEJUMPISNORMALLYUSEDFORSUBROUTINESWITHMULTIPLEEXITSMULTIPLEEXITMEANSTHATWEWANTTHESUBROUTINETORETURNTOONEOFSEVERALDIFFERENTLOCATIONSDEPENDINGONCONDITIONSDETECTEDBYTHESUBROUTINEINTHESTRICTESTSENSETHELOCATIONTOWHICHASUBROUTINEEXITSISAPARAMETERSOIFTHEREARESEVERALPLACESTOWHICHITMIGHTEXITDEPENDINGONTHECIRCUMSTANCESTHEYSHOULDBESUPPLIEDASARGUMENTSOURFINALEXAMPLEOFTHEMAXIMUMSUBROUTINEWILLHAVETWOENTRANCESANDTWOEXITSTHECALLINGSEQUENCEISINOTHERWORDSEXITISMADETOTHELOCATIONTWOPASTTHEJUMPWHENTHEMAXIMUMVALUEISPOSITIVEANDLESSTHANTHECONTENTSOFREGISTERXTHESUBROUTINEFORTHESECONDITIONSISEASILYWRITTENCALLINGSEQUENCEINDEXERRORADDRERROROPERRORMEMERRORFERRORSIZEERRORINJBUSTHISHASTHESAMEOVERALLEFFECTASBUTITKEEPSTHEINPUTTAPEBUSYWHILETHEPROGRAMWORKSONTHEDATAINLOCATIONSINPUTOPERATORSOFMIXINTHELASTINSTRUCTIONOFBEGINSTOREADATAPEBLOCKINTOLOCATIONSBEFORETHEPRECEDINGBLOCKHASBEENEXAMINEDTHISISCALLEDREADINGAHEADORANTICIPATEDINPUTITISDONEONFAITHTHATTHEBLOCKWILLEVENTUALLYBENEEDEDINFACTHOWEVERWEMIGHTDISCOVERTHATNOMOREINPUTISREALLYREQUIREDAFTERWEBEGINTOEXAMINETHEBLOCKINFOREXAMPLECONSIDERTHEANALOGOUSSITUATIONINTHECOROUTINEPROGRAMOFSECTIONWHERETHEINPUTWASCOMINGFROMPUNCHEDCARDSINSTEADOFTAPEAAPPEARINGANYWHEREINTHECARDMEANTTHATITWASTHEFINALCARDOFTHEDECKSUCHAENDOFFILESITUATIONWOULDMAKEANTICIPATEDINPUTIMPOSSIBLEUNLESSWECOULDASSUMETHATEITHERAABLANKCARDORSPECIALTRAILERCARDOFSOMEOTHERSORTWOULDFOLLOWTHEINPUTDECKORBANIDENTIFYINGMARKEGWOULDAPPEARINSAYCOLUMNOFTHEFINALCARDOFTHEDECKSOMEMEANSFORTERMINATINGTHEINPUTPROPERLYATTHEENDOFTHEPROGRAMMUSTALWAYSBEPROVIDEDWHENEVERINPUTHASBEENANTICIPATEDTHETECHNIQUEOFOVERLAPPINGCOMPUTATIONTIMEANDIOTIMEISKNOWNASBUFFERINGBUFFERINGWHILETHERUDIMENTARYMETHODISCALLEDUNBUFFEREDINPUTTHEAREAOFMEMORYUSEDTOHOLDTHEANTICIPATEDINPUTINASWELLASTHEAREATOWHICHTHEINPUTWASMOVEDISCALLEDABUFFERWEBSTERSNEWWORLDDICTIONARYDEFINESBUFFERASANYPERSONORTHINGTHATSERVESTOLESSENSHOCKANDTHETERMISAPPROPRIATEBECAUSEBUFFERINGTENDSTOKEEPIODEVICESRUNNINGSMOOTHLYCOMPUTERENGINEERSOFTENUSETHEWORDBUFFERINANOTHERSENSETODENOTEAPARTOFTHEIODEVICETHATSTORESINFORMATIONDURINGTHETRANSMISSIONINTHISBOOKHOWEVERBUFFERWILLSIGNIFYANAREAOFMEMORYUSEDBYAPROGRAMMERTOHOLDIODATATHESEQUENCEISNOTALWAYSSUPERIORTOALTHOUGHTHEEXCEPTIONSARERARELETUSCOMPARETHEEXECUTIONTIMESSUPPOSEISTHETIMEREQUIREDTOINPUTWORDSANDSUPPOSEISTHECOMPUTATIONTIMETHATINTERVENESBETWEENINPUTREQUESTSMETHODREQUIRESATIMEOFESSENTIALLYPERTAPEBLOCKWHILEMETHODTAKESESSENTIALLYTHEQUANTITYISTHETIMEREQUIREDBYTHETWOMOVEINSTRUCTIONSONEWAYTOLOOKATTHISRUNNINGTIMEISTOCONSIDERCRITICALPATHTIMEINTHISCASETHEAMOUNTOFTIMETHEIOUNITISIDLEBETWEENUSESMETHODKEEPSTHEUNITIDLEFORUNITSOFTIMEWHILEMETHODKEEPSITIDLEFORUNITSASSUMINGTHATTHERELATIVELYSLOWMOVECOMMANDSOFAREUNDESIRABLEPARTICULARLYBECAUSETHEYTAKEUPCRITICALPATHTIMEWHENTHETAPEUNITMUSTBEINACTIVEANALMOSTOBVIOUSIMPROVEMENTOFTHEMETHODALLOWSUSTOAVOIDTHESEMOVEINSTRUCTIONSTHEOUTSIDEPROGRAMCANBEREVISEDSOTHATITREFERSALTERNATELYTOLOCATIONSANDWHILEWEAREREADINGINTOONEBUFFERAREAWECANBECOMPUTINGWITHTHEINFORMATIONINTHEOTHERTHENWECANBEGINREADINGINTOTHESECONDBUFFERWHILECOMPUTINGWITHTHEINFORMATIONINTHEFIRSTTHISISTHEIMPORTANTBUFFERSWAPPINGTECHNIQUEKNOWNASBUFFERSWAPPINGTHELOCATIONOFTHECURRENTBUFFEROFINTERESTWILLBEKEPTINANINDEXREGISTERORIFNOINDEXREGISTERSAREAVAILABLEINAMEMORYLOCATIONWEHAVEALREADYSEENANEXAMPLEOFBUFFERSWAPPINGAPPLIEDTOOUTPUTINALGORITHMPRIMETABLESEESTEPSBUFSWAPSTEPSANDTHEACCOMPANYINGPROGRAMASANEXAMPLEOFBUFFERSWAPPINGONINPUTSUPPOSETHATWEHAVEACOMPUTERAPPLICATIONINWHICHEACHTAPEBLOCKCONSISTSOFSEPARATEONEWORDITEMSTHEFOLLOWINGPROGRAMISASUBROUTINETHATGETSTHENEXTWORDOFINPUTANDBEGINSTOREADINANEWBLOCKIFTHECURRENTONEISEXHAUSTEDINTHISROUTINEINDEXREGISTERISUSEDTOADDRESSTHELASTWORDOFINPUTWEASSUMETHATTHECALLINGPROGRAMDOESNOTAFFECTTHISREGISTERTHESYMBOLUREFERSTOATAPEUNITANDTHESYMBOLSENTINELREFERSTOAVALUETHATISKNOWNFROMCHARACTERISTICSOFTHEPROGRAMTOBEABSENTFROMALLTAPEBLOCKSSEVERALTHINGSABOUTTHISSUBROUTINESHOULDBENOTEDTHESENTINELCONSTANTAPPEARSASTHESTWORDOFEACHBUFFERANDITMAKESACONVENIENTTESTFORTHEENDOFTHEBUFFERINMANYAPPLICATIONSHOWEVERTHESENTINELTECHNIQUEWILLNOTBERELIABLESINCEANYWORDMAYAPPEARONTAPEIFWEWEREDOINGCARDINPUTASIMILARMETHODWITHTHETHWORDOFTHEBUFFEREQUALTOASENTINELCOULDALWAYSBEUSEDWITHOUTFEAROFFAILUREINTHATCASEANYNEGATIVEWORDCOULDSERVEASASENTINELSINCEINPUTFROMCARDSALWAYSGIVESNONNEGATIVEWORDSEACHBUFFERCONTAINSTHEADDRESSOFTHEOTHERBUFFERSEELINESANDTHISLINKINGTOGETHERFACILITATESTHESWAPPINGPROCESSBUFFERSWAPPINGNOJBUSINSTRUCTIONWASNECESSARYSINCETHENEXTINPUTWASINITIATEDBEFOREANYWORDOFTHEPREVIOUSBLOCKWASACCESSEDIFTHEQUANTITIESANDREFERASBEFORETOCOMPUTATIONTIMEANDTAPETIMETHEEXECUTIONTIMEPERTAPEBLOCKISNOWITISTHEREFOREPOSSIBLETOKEEPTHETAPEGOINGATFULLSPEEDIFNOTEISANIDEALIZEDCOMPUTERINTHISREGARDHOWEVERSINCENOIOERRORSMUSTBETREATEDBYTHEPROGRAMONMOSTMACHINESSOMEINSTRUCTIONSTOTESTTHESUCCESSFULCOMPLETIONOFTHEPREVIOUSOPERATIONWOULDBENECESSARYJUSTBEFORETHEININSTRUCTIONHERETOMAKESUBROUTINEWORKPROPERLYITWILLBENECESSARYTOGETTHINGSSTARTEDOUTRIGHTWHENTHEPROGRAMBEGINSDETAILSARELEFTTOTHEREADERSEEEXERCISETHEWORDINSUBROUTINEMAKESTHETAPEUNITAPPEARTOHAVEABLOCKLENGTHOFRATHERTHANASFARASTHERESTOFTHEPROGRAMISCONCERNEDTHEIDEAOFHAVINGSEVERALPROGRAMORIENTEDRECORDSFILLINGASINGLEACTUALTAPEBLOCKISCALLEDBLOCKINGOFRECORDSTHETECHNIQUESTHATWEHAVEILLUSTRATEDFORINPUTAPPLYWITHMINORCHANGESTOOUTPUTASWELLSEEEXERCISESANDFIGFIGACIRCLEOFBUFFERSMULTIPLEBUFFERSBUFFERSWAPPINGISJUSTTHESPECIALCIRCLEOFBUFFERSCASEOFAGENERALMETHODINVOLVINGBUFFERSINSOMEAPPLICATIONSITISDESIRABLETOHAVEMORETHANTWOBUFFERSFOREXAMPLECONSIDERTHEFOLLOWINGTYPEOFALGORITHMSTEPREADFIVEBLOCKSINRAPIDSUCCESSIONSTEPPERFORMAFAIRLYLONGCALCULATIONBASEDONTHISDATASTEPRETURNTOSTEPHEREFIVEORSIXBUFFERSWOULDBEDESIRABLESOTHATTHENEXTBATCHOFFIVEBLOCKSCOULDBEREADDURINGSTEPTHISTENDENCYFORIOACTIVITYTOBEBUNCHEDMAKESMULTIPLEBUFFERINGANIMPROVEMENTOVERBUFFERSWAPPINGSUPPOSEWEHAVEBUFFERSFORSOMEINPUTOROUTPUTPROCESSUSINGASINGLEIODEVICEWEWILLIMAGINETHATTHEBUFFERSAREARRANGEDINACIRCLEASINFIGFIGTHEPROGRAMEXTERNALTOTHEBUFFERINGPROCESSCANBEASSUMEDTOHAVETHEFOLLOWINGGENERALFORMWITHRESPECTTOTHEIOUNITOFINTERESTINOTHERWORDSWECANASSUMETHATTHEPROGRAMALTERNATESBETWEENANASSIGNINGABUFFERRELEASINGABUFFERACTIONCALLEDASSIGNANDANACTIONCALLEDRELEASESEPARATEDBYOTHERCOMPUTATIONSTHATDONOTAFFECTTHEALLOCATIONOFBUFFERSASSIGNMEANSTHATTHEPROGRAMACQUIRESTHEADDRESSOFTHENEXTBUFFERAREATHISADDRESSISASSIGNEDASTHEVALUEOFSOMEPROGRAMVARIABLERELEASEMEANSTHATTHEPROGRAMISDONEWITHTHECURRENTBUFFERAREABETWEENASSIGNANDRELEASETHEPROGRAMISCOMMUNICATINGWITHONEOFTHEBUFFERSCALLEDTHECURRENTBUFFERAREABETWEENRELEASEANDASSIGNTHEPROGRAMMAKESNOREFERENCETOANYBUFFERAREACONCEIVABLYASSIGNCOULDIMMEDIATELYFOLLOWRELEASEANDDISCUSSIONSOFBUFFERINGHAVEOFTENBEENBASEDONTHISASSUMPTIONHOWEVERIFRELEASEISDONEASSOONASPOSSIBLETHEBUFFERINGPROCESSHASMOREFREEDOMANDWILLBEMOREEFFECTIVEBYSEPARATINGTHETWOESSENTIALLYDIFFERENTFUNCTIONSOFASSIGNANDRELEASEWEWILLFINDTHATTHEBUFFERINGTECHNIQUEREMAINSEASYTOUNDERSTANDANDOURDISCUSSIONWILLBEMEANINGFULEVENIFTOBEMOREEXPLICITLETUSCONSIDERTHECASESOFINPUTANDOUTPUTSEPARATELYFORINPUTSUPPOSEWEAREDEALINGWITHACARDREADERTHEACTIONASSIGNMEANSTHATTHEPROGRAMNEEDSTOSEEINFORMATIONFROMANEWCARDWEWOULDLIKETOSETANINDEXREGISTERTOTHEMEMORYADDRESSATWHICHTHENEXTCARDIMAGEISLOCATEDTHEACTIONRELEASEOCCURSWHENTHEINFORMATIONINTHECURRENTCARDIMAGEISNOLONGERNEEDEDITHASSOMEHOWBEENDIGESTEDBYTHEPROGRAMPERHAPSCOPIEDTOANOTHERPARTOFMEMORYETCTHECURRENTBUFFERAREAMAYTHEREFOREBEFILLEDWITHFURTHERANTICIPATEDINPUTFOROUTPUTCONSIDERTHECASEOFALINEPRINTERTHEACTIONASSIGNOCCURSWHENAFREEBUFFERAREAISNEEDEDINTOWHICHALINEIMAGEISTOBEPLACEDFORPRINTINGWEWISHTOSETANINDEXREGISTEREQUALTOTHEMEMORYADDRESSOFSUCHANAREATHEACTIONRELEASEOCCURSWHENTHISLINEIMAGEHASBEENFULLYSETUPINTHEBUFFERAREAINAFORMREADYTOBEPRINTEDEXAMPLETOPRINTTHECONTENTSOFLOCATIONSWEMIGHTWRITEWHEREASSIGNPANDRELEASEPREPRESENTSUBROUTINESTODOTHETWOBUFFERINGFUNCTIONSFORTHELINEPRINTERINANOPTIMALSITUATIONFROMTHESTANDPOINTOFTHECOMPUTERTHEASSIGNOPERATIONWILLREQUIREVIRTUALLYNOEXECUTIONTIMETHISMEANSONINPUTTHATEACHCARDIMAGEWILLHAVEBEENANTICIPATEDSOTHATTHEDATAISAVAILABLEWHENTHEPROGRAMISREADYFORITANDONOUTPUTITMEANSTHATTHEREWILLALWAYSBEAFREEPLACEINMEMORYTORECORDTHELINEIMAGEINEITHERCASENOTIMEWILLBESPENTWAITINGFORTHEIODEVICETOHELPDESCRIBETHEBUFFERINGALGORITHMANDTOMAKEITMORECOLORFULWEWILLSAYTHATBUFFERAREASAREEITHERGREENYELLOWORREDSHOWNASGYANDRINFIGFIGGREENMEANSTHATTHEAREAISREADYTOBEASSIGNEDTHISMEANSTHATITHASBEENFILLEDWITHANTICIPATEDINFORMATIONINANINPUTSITUATIONORTHATITISAFREEAREAINANOUTPUTSITUATIONYELLOWMEANSTHATTHEAREAHASBEENASSIGNEDNOTRELEASEDTHISMEANSTHATITISTHECURRENTBUFFERANDTHEPROGRAMISCOMMUNICATINGWITHITREDMEANSTHATTHEAREAHASBEENRELEASEDTHUSITISAFREEAREAINANINPUTSITUATIONORITHASBEENFILLEDWITHINFORMATIONINANOUTPUTSITUATIONFIGUREFIGSHOWSTWOPOINTERSASSOCIATEDWITHTHECIRCLEOFBUFFERSTHESEARECONCEPTUALLYINDEXREGISTERSINTHEPROGRAMNEXTGANDNEXTRPOINTTOTHENEXTGREENANDNEXTREDBUFFERRESPECTIVELYATHIRDPOINTERCURRENTSHOWNINFIGFIGINDICATESTHEYELLOWBUFFERWHENONEISPRESENTFIGFIGBUFFERTRANSITIONSAAFTERASSIGNBAFTERIOCOMPLETEANDCAFTERRELEASETHEALGORITHMSBELOWAPPLYEQUALLYWELLTOINPUTOROUTPUTBUTFORDEFINITENESSWEWILLCONSIDERFIRSTTHECASEOFINPUTFROMACARDREADERSUPPOSETHATAPROGRAMHASREACHEDTHESTATESHOWNINFIGFIGTHISMEANSTHATFOURCARDIMAGESHAVEBEENANTICIPATEDBYTHEBUFFERINGPROCESSANDTHEYRESIDEINTHEGREENBUFFERSATTHISMOMENTTWOTHINGSAREHAPPENINGSIMULTANEOUSLYATHEPROGRAMISCOMPUTINGFOLLOWINGARELEASEOPERATIONBACARDISBEINGREADINTOTHEBUFFERINDICATEDBYNEXTRTHISSTATEOFAFFAIRSWILLCONTINUEUNTILTHEINPUTCYCLEISCOMPLETEDTHEUNITWILLTHENGOFROMBUSYTOREADYORUNTILTHEPROGRAMDOESANASSIGNOPERATIONSUPPOSETHELATTEROCCURSFIRSTTHENTHEBUFFERINDICATEDBYNEXTGCHANGESTOYELLOWITISASSIGNEDASTHECURRENTBUFFERNEXTGMOVESCLOCKWISEANDWEARRIVEATTHEPOSITIONSHOWNINFIGFIGAIFNOWTHEINPUTISCOMPLETEDANOTHERANTICIPATEDBLOCKISPRESENTSOTHEBUFFERCHANGESFROMREDTOGREENANDNEXTRMOVESOVERASSHOWNINFIGFIGBIFTHERELEASEOPERATIONFOLLOWSNEXTWEOBTAINFIGFIGCFORANEXAMPLECONCERNINGOUTPUTSEEFIGFIGONPAGEFIGPAGETHATILLUSTRATIONSHOWSTHECOLORSOFBUFFERAREASASAFUNCTIONOFTIMEINAPROGRAMTHATOPENSWITHFOURQUICKOUTPUTSTHENPRODUCESFOURATASLOWPACEANDFINALLYISSUESTWOINRAPIDSUCCESSIONASTHEPROGRAMENDSTHREEBUFFERSAPPEARINTHATEXAMPLETHEPOINTERSNEXTRANDNEXTGPROCEEDMERRILYAROUNDTHECIRCLEEACHATANINDEPENDENTRATEOFSPEEDMOVINGCLOCKWISEITISARACEBETWEENTHEPROGRAMWHICHTURNSBUFFERSFROMGREENTOREDANDTHEIOBUFFERINGPROCESSWHICHTURNSTHEMFROMREDTOGREENTWOSITUATIONSOFCONFLICTCANOCCURAIFNEXTGTRIESTOPASSNEXTRTHEPROGRAMHASGOTTENAHEADOFTHEIODEVICEANDITMUSTWAITUNTILTHEDEVICEISREADYBIFNEXTRTRIESTOPASSNEXTGTHEIODEVICEHASGOTTENAHEADOFTHEPROGRAMANDWEMUSTSHUTITDOWNUNTILTHENEXTRELEASEISGIVENBOTHOFTHESESITUATIONSAREDEPICTEDINFIGFIGSEEEXERCISEFORTUNATELYINSPITEOFTHERATHERLENGTHYEXPLANATIONJUSTGIVENOFTHEIDEASBEHINDACIRCLEOFBUFFERSTHEACTUALALGORITHMSFORHANDLINGTHESITUATIONAREQUITESIMPLEINTHEFOLLOWINGDESCRIPTIONTHEVARIABLEISUSEDINTHEALGORITHMBELOWTOAVOIDINTERFERENCEBETWEENNEXTGANDNEXTRAALGAALGORITHMAASSIGNTHISALGORITHMINCLUDESTHESTEPSIMPLIEDBYASSIGNWITHINACOMPUTATIONALPROGRAMASDESCRIBEDABOVEAWAITFORIFSTALLTHEPROGRAMUNTILIFNOBUFFERSAREREADYTOBEASSIGNEDBUTALGORITHMBBELOWWHICHRUNSINPARALLELWITHTHISONEWILLEVENTUALLYSUCCEEDINPRODUCINGAGREENBUFFERASETTHEREBYASSIGNINGTHECURRENTBUFFERAADVANCENEXTGADVANCENEXTGTOTHENEXTCLOCKWISEBUFFERALGORITHMRRELEASETHISALGORITHMINCLUDESTHESTEPSIMPLIEDBYRELEASEWITHINACOMPUTATIONALPROGRAMASDESCRIBEDABOVERINCREASEINCREASEBYONEALGORITHMBBUFFERCONTROLTHISALGORITHMPERFORMSTHEACTUALINITIATIONOFIOOPERATORSINTHEMACHINEITISTOBEEXECUTEDSIMULTANEOUSLYWITHTHEMAINPROGRAMINTHESENSEDESCRIBEDBELOWBCOMPUTELETTHEMAINPROGRAMCOMPUTEFORASHORTPERIODOFTIMESTEPBWILLBEEXECUTEDAFTERACERTAINTIMEDELAYATATIMEWHENTHEIODEVICEISREADYFORANOTHEROPERATIONBIFGOTOBTHUSIFNOBUFFERSAREREDNOIOACTIONCANBEPERFORMEDBINITIATEIOINITIATETRANSMISSIONBETWEENTHEBUFFERAREADESIGNATEDBYNEXTRANDTHEIODEVICEBCOMPUTELETTHEMAINPROGRAMRUNFORAPERIODOFTIMETHENGOTOSTEPBWHENTHEIOOPERATIONISCOMPLETEDBADVANCENEXTRADVANCENEXTRTOTHENEXTCLOCKWISEBUFFERBDECREASEDECREASEBYONEANDGOTOBINTHESEALGORITHMSWEHAVETWOINDEPENDENTPROCESSESGOINGONSIMULTANEOUSLYTHEBUFFERINGCONTROLPROGRAMANDTHECOMPUTATIONPROGRAMTHESEPROCESSESAREINFACTCOROUTINESWHICHWEWILLCALLCONTROLANDCOROUTINESCOMPUTECOROUTINECONTROLJUMPSTOCOMPUTEINSTEPSBANDBCOROUTINECOMPUTEJUMPSTOCONTROLBYINTERSPERSINGJUMPREADYJREDINSTRUCTIONSATSPORADICINTERVALSINITSPROGRAMCODINGTHISALGORITHMFORISEXTREMELYSIMPLEFORCONVENIENCEASSUMETHATTHEBUFFERSARELINKEDSOTHATTHEWORDPRECEDINGEACHONEISTHEADDRESSOFTHENEXTFOREXAMPLEWITHBUFFERSWEHAVEBUFBUFANDBUFFIGFIGALGORITHMSFORMULTIPLEBUFFERINGBESIDESTHECODEABOVEWEALSOHAVETHEUSUALCOROUTINELINKAGEANDTHEINSTRUCTIONJREDCONTROLUSHOULDBEPLACEDWITHINCOMPUTEABOUTONCEINEVERYFIFTYINSTRUCTIONSJREDCOROUTINESRELEASINGABUFFERASSIGNINGABUFFERTHUSTHEPROGRAMSFORMULTIPLEBUFFERINGESSENTIALLYAMOUNTTOONLYSEVENINSTRUCTIONSFORCONTROLEIGHTFORASSIGNANDTWOFORRELEASEITISPERHAPSREMARKABLETHATEXACTLYTHESAMEALGORITHMWILLWORKFORBOTHINPUTANDOUTPUTWHATISTHEDIFFERENCEHOWDOESTHECONTROLROUTINEKNOWWHETHERTOANTICIPATEFORINPUTORTOLAGBEHINDFOROUTPUTTHEANSWERLIESINTHEINITIALCONDITIONSFORINPUTWESTARTOUTWITHALLBUFFERSREDANDFOROUTPUTWESTARTOUTWITHALLBUFFERSGREENONCETHEROUTINEHASBEENSTARTEDPROPERLYITCONTINUESTOBEHAVEASEITHERANINPUTPROCESSORANOUTPUTPROCESSRESPECTIVELYTHEOTHERINITIALCONDITIONISTHATNEXTRNEXTGBOTHPOINTINGATONEOFTHEBUFFERSATTHECONCLUSIONOFTHEPROGRAMITISNECESSARYTOSTOPTHEIOPROCESSIFITISINPUTORTOWAITUNTILITISCOMPLETEDFOROUTPUTDETAILSARELEFTTOTHEREADERSEEEXERCISESANDITISIMPORTANTTOASKWHATISTHEBESTVALUEOFTOUSECERTAINLYASGETSLARGERTHESPEEDOFTHEPROGRAMWILLNOTDECREASEBUTITWILLNOTINCREASEINDEFINITELYEITHERANDSOWECOMETOAPOINTOFDIMINISHINGRETURNSLETUSREFERAGAINTOTHEQUANTITIESANDREPRESENTINGCOMPUTATIONTIMEBETWEENIOOPERATORSANDTHEIOTIMEITSELFMOREPRECISELYLETBETHEAMOUNTOFTIMEBETWEENSUCCESSIVEASSIGNSANDLETBETHEAMOUNTOFTIMENEEDEDTOTRANSMITONEBLOCKIFISALWAYSGREATERTHANTHENISADEQUATEFORITISNOTHARDTOSEETHATWITHTWOBUFFERSWEKEEPTHECOMPUTERBUSYATALLTIMESIFISALWAYSLESSTHANTHENAGAINISADEQUATEFORWEKEEPTHEIODEVICEBUSYATALLTIMESEXCEPTWHENTHEDEVICEHASSPECIALTIMINGCONSTRAINTSASINEXERCISEDISKBUFFERSLARGERVALUESOFARETHEREFOREUSEFULCHIEFLYWHENVARIESBETWEENSMALLVALUESANDLARGEVALUESTHEAVERAGENUMBEROFCONSECUTIVESMALLVALUESPLUSMAYBERIGHTFORIFTHELARGEVALUESOFARESIGNIFICANTLYLONGERTHANHOWEVERTHEADVANTAGEOFBUFFERINGISVIRTUALLYNULLIFIEDIFALLINPUTOCCURSATTHEBEGINNINGOFTHEPROGRAMANDIFALLOUTPUTOCCURSATTHEENDIFTHETIMEBETWEENASSIGNANDRELEASEISALWAYSQUITESMALLTHEVALUEOFMAYBEDECREASEDBYTHROUGHOUTTHEDISCUSSIONABOVEWITHLITTLEEFFECTONRUNNINGTIMETHISAPPROACHTOBUFFERINGCANBEADAPTEDINMANYWAYSANDWEWILLMENTIONAFEWOFTHEMBRIEFLYSOFARWEHAVEASSUMEDTHATONLYONEIODEVICEWASBEINGUSEDINPRACTICEOFCOURSESEVERALDEVICESWILLBEINUSEATTHESAMETIMETHEREARESEVERALWAYSTOAPPROACHTHESUBJECTOFMULTIPLEUNITSINTHESIMPLESTCASEWECANHAVEASEPARATECIRCLEOFBUFFERSFOREACHDEVICEEACHUNITWILLHAVEITSOWNVALUESOFNEXTRNEXTGANDCURRENTANDITSOWNCONTROLCOROUTINETHISWILLGIVEEFFICIENTBUFFERINGACTIONSIMULTANEOUSLYONEVERYIODEVICEITISALSOPOSSIBLETOPOOLBUFFERAREASTHATAREOFTHESAMESIZESOTHATPOOLEDBUFFERSTWOORMOREDEVICESSHAREBUFFERSFROMACOMMONLISTTHISCANBEHANDLEDBYUSINGTHELINKEDMEMORYTECHNIQUESOFCHAPTERWITHALLREDINPUTBUFFERSLINKEDTOGETHERINONELISTANDALLGREENOUTPUTBUFFERSLINKEDTOGETHERINANOTHERITBECOMESNECESSARYTODISTINGUISHBETWEENINPUTANDOUTPUTINTHISCASEANDTOREWRITETHEALGORITHMSWITHOUTUSINGANDTHEALGORITHMMAYGETIRREVOCABLYSTUCKIFALLBUFFERSINTHEPOOLAREFILLEDWITHANTICIPATEDINPUTSOACHECKSHOULDBEMADETHATTHEREISALWAYSATLEASTONEBUFFERPREFERABLYONEFOREACHDEVICETHATISNOTINPUTGREENONLYIFTHECOMPUTEROUTINEISSTALLEDATSTEPAFORSOMEINPUTDEVICESHOULDWEALLOWINPUTINTOTHEFINALBUFFEROFTHEPOOLFROMTHATDEVICESOMEMACHINESHAVEADDITIONALCONSTRAINTSONTHEUSEOFINPUTOUTPUTUNITSSOTHATITISIMPOSSIBLETOBETRANSMITTINGDATAFROMCERTAINPAIRSOFDEVICESATTHESAMETIMEFOREXAMPLESEVERALUNITSMIGHTBEATTACHEDTOTHECOMPUTERBYMEANSOFASINGLECHANNELTHISCONSTRAINTALSOAFFECTSOURBUFFERINGROUTINEWHENWEMUSTCHOOSEWHICHIOUNITTOINITIATENEXTHOWISTHECHOICETOBEMADETHISISCALLEDTHEPROBLEMOFFORECASTINGTHEBESTFORECASTINGRULEFORTHEGENERALCASEWOULDSEEMTOGIVEPREFERENCETOTHEUNITWHOSEBUFFERCIRCLEHASTHELARGESTVALUEOFASSUMINGTHATTHENUMBEROFBUFFERSINTHECIRCLESHASBEENCHOSENWISELYIOCIRCLEFIGINPUTANDOUTPUTFROMTHESAMECIRCLELETSCONCLUDETHISDISCUSSIONBYTAKINGNOTEOFAUSEFULMETHODFORDOINGBOTHINPUTANDOUTPUTFROMTHESAMEBUFFERCIRCLEUNDERCERTAINCONDITIONSFIGUREIOCIRCLEINTRODUCESANEWKINDOFBUFFERWHICHHASTHECOLORPURPLEINTHISSITUATIONGREENBUFFERSREPRESENTANTICIPATEDINPUTTHEPROGRAMASSIGNSANDAGREENBUFFERBECOMESYELLOWTHENUPONRELEASEITTURNSREDANDREPRESENTSABLOCKTOBEOUTPUTTHEINPUTANDOUTPUTPROCESSESFOLLOWAROUNDTHECIRCLEINDEPENDENTLYASBEFOREEXCEPTTHATNOWWETURNREDBUFFERSTOPURPLEAFTERTHEOUTPUTISDONEANDCONVERTPURPLETOGREENONINPUTITISNECESSARYTOENSURETHATNONEOFTHEPOINTERSNEXTGNEXTRNEXTPPASSEACHOTHERATTHEINSTANTSHOWNINFIGIOCIRCLETHEPROGRAMISCOMPUTINGBETWEENASSIGNANDRELEASEWHILEACCESSINGTHEYELLOWBUFFERSIMULTANEOUSLYINPUTISGOINGINTOTHEBUFFERINDICATEDBYNEXTPANDOUTPUTISCOMINGFROMTHEBUFFERINDICATEDBYNEXTREXERCISESAWOULDSEQUENCESTILLBECORRECTIFTHEMOVEINSTRUCTIONSWEREPLACEDBEFORETHEJBUSINSTRUCTIONINSTEADOFAFTERITBWHATIFTHEMOVEINSTRUCTIONSWEREPLACEDAFTERTHEINCOMMANDANOTHEINPUTOPERATIONMIGHTNOTYETBECOMPLETEBNOTHEINPUTOPERATIONMIGHTBEGOINGJUSTALITTLEFASTERTHANTHEMOVETHISPROPOSALISMUCHTOORISKYTHEINSTRUCTIONSOUTJBUSOUTMAYBEUSEDTOOUTPUTATAPEBLOCKINANUNBUFFEREDFASHIONJUSTASTHEINSTRUCTIONSDIDTHISFORINPUTGIVEAMETHODANALOGOUSTOANDTHATBUFFERSTHISOUTPUTBYUSINGMOVEINSTRUCTIONSANDANAUXILIARYBUFFERINLOCATIONSWRITEABUFFERSWAPPINGOUTPUTSUBROUTINEANALOGOUSTOTHESUBROUTINECALLEDWORDOUTSHOULDSTORETHEWORDINRAASTHENEXTWORDOFOUTPUTANDIFABUFFERISFULLITSHOULDWRITEWORDSONTOTAPEUNITVINDEXREGISTERSHOULDBEUSEDTOREFERTOTHECURRENTBUFFERPOSITIONSHOWTHELAYOUTOFBUFFERAREASANDEXPLAINWHATINSTRUCTIONSIFANYARENECESSARYATTHEBEGINNINGANDENDOFTHEPROGRAMTOENSURETHATTHEFIRSTANDLASTBLOCKSAREPROPERLYWRITTENTHEFINALBLOCKSHOULDBEFILLEDOUTWITHZEROSIFNECESSARYBUFFERSWAPPINGBLOCKINGOFRECORDSATTHEBEGINNINGOFTHEPROGRAMGIVETHEINSTRUCTIONENTOUTBUFATTHEENDOFTHEPROGRAMSAYMSHOWTHATIFAPROGRAMREFERSTOASINGLEIODEVICEWEMIGHTBEABLETOCUTTHERUNNINGTIMEINHALFBYBUFFERINGTHEIOINFAVORABLECIRCUMSTANCESBUTWECANNEVERDECREASETHERUNNINGTIMEBYMORETHANAFACTOROFTWOWITHRESPECTTOTHETIMETAKENBYUNBUFFEREDIOIFTHECALCULATIONTIMEEXACTLYEQUALSTHEIOTIMEWHICHISTHEMOSTFAVORABLESITUATIONBOTHTHECOMPUTERANDTHEPERIPHERALDEVICERUNNINGSIMULTANEOUSLYWILLTAKEHALFASLONGASIFTHEYRANSEPARATELYFORMALLYLETBETHECALCULATIONTIMEFORTHEENTIREPROGRAMANDLETBETHETOTALIOTIMEREQUIREDTHENTHEBESTPOSSIBLERUNNINGTIMEWITHBUFFERINGISWHILETHERUNNINGTIMEWITHOUTBUFFERINGISANDOFCOURSEHOWEVERSOMEDEVICESHAVEASHUTDOWNPENALTYTHATCAUSESANEXTRAAMOUNTOFTIMETOBELOSTIFTOOLONGANINTERVALOCCURSBETWEENREFERENCESTOTHATUNITINSUCHACASEBETTERTHANRATIOSAREPOSSIBLESEEFOREXAMPLEEXERCISEMGENERALIZETHESITUATIONOFTHEPRECEDINGEXERCISETOTHECASEWHENTHEPROGRAMREFERSTOIODEVICESINSTEADOFJUSTONETHEBESTRATIOISWHATINSTRUCTIONSSHOULDBEPLACEDATTHEBEGINNINGOFAPROGRAMSOTHATTHEWORDINSUBROUTINEGETSOFFTOTHERIGHTSTARTFOREXAMPLEINDEXREGISTERMUSTBESETTOSOMETHINGPOSSIBLYPRECEDEDBYIOCUTOREWINDTHETAPEJUSTINCASEITISNECESSARYWRITEASUBROUTINECALLEDWORDINTHATISESSENTIALLYLIKEEXCEPTTHATITDOESNOTMAKEUSEOFASENTINELONEWAYISTOUSECOROUTINESADDINGAFEWMOREINSTRUCTIONSTOTAKEADVANTAGEOFSPECIALCASESWILLACTUALLYMAKETHISROUTINEFASTERTHANTHETEXTDESCRIBESAHYPOTHETICALINPUTSCENARIOTHATLEADSFROMFIGFIGTHROUGHPARTSABANDCOFFIGFIGINTERPRETTHESAMESCENARIOUNDERTHEASSUMPTIONTHATOUTPUTTOTHELINEPRINTERISBEINGDONEINSTEADOFINPUTFROMCARDSFOREXAMPLEWHATTHINGSAREHAPPENINGATTHETIMESHOWNINFIGFIGATTHETIMESHOWNINFIGFIGTHETWOREDBUFFERSHAVEBEENFILLEDWITHLINEIMAGESANDTHEONEINDICATEDBYNEXTRISBEINGPRINTEDATTHESAMETIMETHEPROGRAMISCOMPUTINGBETWEENRELEASEANDASSIGNWHENTHEPROGRAMASSIGNSTHEGREENBUFFERINDICATEDBYNEXTGBECOMESYELLOWNEXTGMOVESCLOCKWISEANDTHEPROGRAMBEGINSTOFILLTHEYELLOWBUFFERWHENTHEOUTPUTOPERATIONISCOMPLETENEXTRMOVESCLOCKWISETHEBUFFERTHATHASJUSTBEENPRINTEDTURNSGREENANDTHEREMAININGREDBUFFERBEGINSTOBEPRINTEDFINALLYTHEPROGRAMRELEASESTHEYELLOWBUFFERANDITTOOISREADYFORSUBSEQUENTPRINTINGAPROGRAMTHATLEADSTOTHEBUFFERCONTENTSSHOWNINFIGFIGMAYBECHARACTERIZEDBYTHEFOLLOWINGLISTOFTIMESTHISLISTMEANSASSIGNCOMPUTEFORRELEASECOMPUTEFORASSIGNINGABUFFERRELEASINGABUFFERASSIGNCOMPUTEFORRELEASECOMPUTEFORTHECOMPUTATIONTIMESGIVENDONOTINCLUDEANYINTERVALSDURINGWHICHTHECOMPUTERMIGHTHAVETOWAITFORTHEOUTPUTDEVICETOCATCHUPASATTHEFOURTHASSIGNINFIGFIGTHEOUTPUTDEVICEOPERATESATASPEEDOFPERBLOCKFIGFIGPAGEFIGOUTPUTWITHTHREEBUFFERSSEEEXERCISETHEFOLLOWINGCHARTSPECIFIESTHEACTIONSSHOWNINFIGFIGASTIMEPASSESTHETOTALTIMEREQUIREDWASTHEREFORETHECOMPUTERWASIDLEFROMANDORALTOGETHERTHEOUTPUTUNITWASIDLEFROMANDORMAKEATIMEACTIONCHARTLIKETHEABOVEFORTHESAMEPROGRAMASSUMINGTHATTHEREAREONLYTWOBUFFERSREPEATEXERCISEEXCEPTWITHFOURBUFFERSREPEATEXERCISEEXCEPTWITHJUSTONEBUFFERRELEASINGABUFFERASSIGNINGABUFFERTIMEACTIONACTIONACTIONASSIGNBUFASSIGNBUFASSIGNBUFRELEASEOUTBUFRELEASEOUTBUFRELEASEOUTBUFASSIGNWAITASSIGNBUFASSIGNBUFRELEASERELEASEASSIGNWAITASSIGNBUFRELEASEASSIGNBUFRELEASEASSIGNWAITBUFASSIGNEDOUTPUTSTOPSBUFASSIGNEDOUTBUFBUFASSIGNEDOUTBUFRELEASEOUTBUFRELEASEASSIGNWAITASSIGNWAITRELEASEANDSOONTOTALTIMEWHENISWHENITISWHENITISANDWHENITISSUPPOSETHATTHEMULTIPLEBUFFERINGALGORITHMINTHETEXTISBEINGUSEDFORCARDINPUTANDSUPPOSETHEINPUTISTOTERMINATEASSOONASACARDWITHINCOLUMNHASBEENREADSHOWHOWTHECONTROLCOROUTINEALGORITHMBANDPROGRAMBSHOULDBECHANGEDSOTHATINPUTISSHUTOFFINTHISWAYENDOFFILEREPLACETHELASTTHREELINESOFPROGRAMBBYWHATINSTRUCTIONSSHOULDBEINCLUDEDATTHEENDOFTHECOMPUTECOROUTINEINTHETEXTIFTHEBUFFERINGALGORITHMSAREBEINGAPPLIEDTOOUTPUTTOENSURETHATALLINFORMATIONHASBEENOUTPUTFROMTHEBUFFERSSUPPOSETHECOMPUTATIONALPROGRAMDOESNOTALTERNATEBETWEENASSIGNANDRELEASEBUTINSTEADGIVESTHESEQUENCEOFACTIONSRELEASEWHATEFFECTDOESTHISHAVEONTHEALGORITHMSDESCRIBEDINTHETEXTISITPOSSIBLYUSEFULIFTHEALGORITHMBREAKSDOWNPOSSIBLYREFERRINGTOTHEBUFFERWHILEIOISINPROGRESSOTHERWISETHECONSTRUCTIONWILLHAVETHEEFFECTTHATTHEREARETWOYELLOWBUFFERSTHISCANBEUSEFULIFTHECOMPUTATIONALPROGRAMWANTSTOREFERTOTWOBUFFERSATONCEALTHOUGHITTIESUPBUFFERSPACEINGENERALTHEEXCESSOFASSIGNSOVERRELEASESSHOULDBENONNEGATIVEANDNOTGREATERTHANWRITEACOMPLETEPROGRAMTHATCOPIESBLOCKSFROMTAPEUNITTOTAPEUNITUSINGJUSTTHREEBUFFERSTHEPROGRAMSHOULDBEASFASTASPOSSIBLETHISISASPECIALCASEOFTHEALGORITHMINDICATEDINFIGIOCIRCLEFORMULATETHEGREENYELLOWREDPURPLEALGORITHMSUGGESTEDBYFIGIOCIRCLEINTHEMANNEROFTHEALGORITHMSFORMULTIPLEBUFFERINGGIVENINTHETEXTUSINGTHREECOROUTINESONETOCONTROLTHEINPUTDEVICEONEFORTHEOUTPUTDEVICEANDONEFORTHECOMPUTATIONCIRCLEOFBUFFERSADAPTTHEMULTIPLEBUFFERALGORITHMTOPOOLEDBUFFERSBUILDINMETHODSTHATKEEPTHEPROCESSFROMSLOWINGDOWNDUETOTOOMUCHANTICIPATEDINPUTTRYTOMAKETHEALGORITHMASELEGANTASPOSSIBLECOMPAREYOURMETHODTONONPOOLINGMETHODSAPPLIEDTOREALLIFEPROBLEMSPOOLEDBUFFERSINTERRUPTAPROPOSEDEXTENSIONOFALLOWSITSMIXEXTENSIONSCOMPUTATIONSTOBEINTERRUPTEDASEXPLAINEDBELOWYOURTASKINTHISEXERCISEISTOMODIFYALGORITHMSANDPROGRAMSARANDBOFTHETEXTSOTHATTHEYUSETHESEINTERRUPTFACILITIESINSTEADOFTHEJREDINSTRUCTIONSTHENEWFEATURESINCLUDEANADDITIONALMEMORYCELLSLOCATIONSTHROUGHTHEMACHINEHASTWOINTERNALSTATESNORMALSTATEANDCONTROLSTATEINNORMALSTATELOCATIONSTHROUGHARENOTADMISSIBLEMEMORYLOCATIONSANDTHECOMPUTERBEHAVESASUSUALWHENANINTERRUPTOCCURSDUETOCONDITIONSEXPLAINEDLATERLOCATIONSTHROUGHARESETEQUALTOTHECONTENTSOFSREGISTERSRAINRITHROUGHRIINTHROUGHRXINANDRJTHEOVERFLOWTOGGLETHECOMPARISONINDICATORANDTHESAVINGANDRESTORINGREGISTERSLOCATIONOFTHENEXTINSTRUCTIONARESTOREDINASTHEMACHINEENTERSCONTROLSTATEATALOCATIONDEPENDINGONTHETYPEOFINTERRUPTLOCATIONACTSASACLOCKEVERYOFTIMETHENUMBERAPPEARINGCLOCKFORREALTIMEINTHISLOCATIONISDECREASEDBYONEANDIFTHERESULTISZEROANINTERRUPTTOLOCATIONOCCURSTHENEWINSTRUCTIONINTCFWORKSASFOLLOWSAININTNORMALSTATEANINTERRUPTOCCURSTOLOCATIONTHUSAPROGRAMMERMAYFORCEANINTERRUPTTOCOMMUNICATEWITHACONTROLROUTINETHEADDRESSOFINTHASNOEFFECTALTHOUGHTHECONTROLROUTINEMAYUSEITFORINFORMATIONTODISTINGUISHBETWEENTYPESOFINTERRUPTBINCONTROLSTATEALLREGISTERSARELOADEDFROMLOCATIONSTOTHECOMPUTERGOESINTONORMALSTATEANDITRESUMESEXECUTIONTHEEXECUTIONTIMEFORINTISINEACHCASEANINOUTORIOCINSTRUCTIONGIVENINCONTROLSTATEWILLCAUSEANINTERRUPTTOOCCURASSOONASTHEIOOPERATIONISCOMPLETEDTHEINTERRUPTGOESTOLOCATIONUNITNUMBERNOINTERRUPTSOCCURWHILEINCONTROLSTATEANYINTERRUPTCONDITIONSARESAVEDUNTILAFTERTHENEXTINTOPERATIONANDINTERRUPTWILLOCCURAFTERONEINSTRUCTIONOFTHENORMALSTATEPROGRAMHASBEENPERFORMEDPARTIALSOLUTIONINTHEALGORITHMSBELOWISAVARIABLETHATEQUALSWHENTHEIODEVICEISIDLEANDWHENITISACTIVEALGORITHMAASSIGNANORMALSTATESUBROUTINETHISALGORITHMISUNCHANGEDFROMALGORITHMALGAALGORITHMRRELEASEANORMALSTATESUBROUTINERRINCREASEBYONERIFFORCEANINTERRUPTGOINGTOSTEPBUSINGTHEINTOPERATORALGORITHMBBUFFERCONTROLROUTINEWHICHPROCESSESINTERRUPTSBBRESTARTTHEMAINPROGRAMBIFSETANDGOTOBBSETANDINITIATEIOFROMTHEBUFFERAREASPECIFIEDBYNEXTRBRESTARTTHEMAINPROGRAMANIOCOMPLETECONDITIONWILLINTERRUPTITANDLEADTOSTEPBBADVANCENEXTRTOTHENEXTCLOCKWISEBUFFERBDECREASEBYONEANDGOTOSTEPBDISKBUFFERSMSPECIALCONSIDERATIONSARISEWHENINPUTOROUTPUTINVOLVESSHORTBLOCKSONAROTATINGDEVICELIKEAMAGNETICDISKLATENCYROTATINGMEMORYDISKINPUTBUFFEREDSUPPOSEAPROGRAMWORKSWITHCONSECUTIVEBLOCKSOFINFORMATIONINTHEFOLLOWINGWAYBLOCKBEGINSTOBEINPUTATTIMEWHEREITISASSIGNEDFORPROCESSINGATTIMEANDRELEASEDFROMITSBUFFERATTIMETHEDISKROTATESONCEEVERYUNITSOFTIMEANDITSREADINGHEADPASSESTHESTARTOFANEWBLOCKEVERYUNITSSOWEMUSTHAVEMODULOSINCETHEPROCESSINGISSEQUENTIALWEMUSTALSOHAVEFORTHEREAREBUFFERSHENCEFORHOWLARGEDOESHAVETOBESOTHATTHEFINISHINGTIMEHASITSMINIMUMPOSSIBLEVALUEGIVEAGENERALRULEFORDETERMININGTHESMALLESTSUCHILLUSTRATEYOURRULEWHENANDABCDEFGHIIFWECANHAVEANDIFANDONLYIFIFTHESITUATIONISMORECOMPLEXWECANHAVEANDIFANDONLYIFTHEREAREINTEGERSSUCHTHATSATISFIESFORANEQUIVALENTCONDITIONISTHATFORWHERELETTHENDECREASESASINCREASESANDTHESMALLESTVALUEOFTHATKEEPSTHEPROCESSGOINGSTEADILYISTHEMINIMUMSUCHTHATSINCEANDTHISVALUEOFNEVEREXCEEDSSEEAITAIANDYRAZCACMINTHESTATEDEXAMPLEWEHAVETHEREFOREABCDEFGHIOUTPUTINPUTBUFFERINGHISTORYANDBIBLIOGRAPHYMOSTOFTHEFUNDAMENTALTECHNIQUESDESCRIBEDINSECTIONHAVEBEENDEVELOPEDINDEPENDENTLYBYANUMBEROFDIFFERENTPEOPLEANDTHEEXACTHISTORYOFTHEIDEASWILLPROBABLYNEVERBEKNOWNANATTEMPTHASBEENMADETORECORDHERETHEMOSTIMPORTANTCONTRIBUTIONSTOTHEHISTORYANDTOPUTTHEMINPERSPECTIVESUBROUTINESWERETHEFIRSTLABORSAVINGDEVICESINVENTEDFORPROGRAMMERSSUBROUTINEHISTORYINTHETHCENTURYCHARLESBABBAGEENVISIONEDALIBRARYOFROUTINESFORHISANALYTICALENGINESEECHARLESBABBAGEANDHISCALCULATINGENGINESEDITEDBYPHILIPANDEMILYMORRISONDOVERANDWEMIGHTSAYTHATHISDREAMCAMETRUEINWHENGRACEMHOPPERWROTEATRIGONOMETRICFUNCTIONSSUBROUTINEFORCOMPUTINGONTHEHARVARDMARKICALCULATORSEEMECHANISATIONOFTHOUGHTPROCESSESLONDONNATPHYSLABHOWEVERTHESEWEREESSENTIALLYOPENSUBROUTINESMEANTTOBEINSERTEDINTOAPROGRAMWHERENEEDEDINSTEADOFBEINGLINKEDUPDYNAMICALLYBABBAGESPLANNEDMACHINEWASCONTROLLEDBYSEQUENCESOFPUNCHEDCARDSASONTHEJACQUARDLOOMCARDSPUNCHEDTHEMARKIWASCONTROLLEDBYANUMBEROFPAPERTAPESTHUSTHEYWEREQUITEDIFFERENTFROMTODAYSSTOREDPROGRAMCOMPUTERSSUBROUTINELINKAGEAPPROPRIATETOSTOREDPROGRAMMACHINESWITHTHERETURNSUBROUTINELINKAGEADDRESSSUPPLIEDASAPARAMETERWASDISCUSSEDBYHERMANHGOLDSTINEANDJOHNVONNEUMANNINTHEIRWIDELYCIRCULATEDMONOGRAPHONPROGRAMMINGWRITTENDURINGANDSEEVONNEUMANNSCOLLECTEDWORKSNEWYORKMACMILLANTHEMAINROUTINEOFTHEIRPROGRAMSWASRESPONSIBLEFORSTORINGPARAMETERSINTOTHEBODYOFTHESUBROUTINEINSTEADOFPASSINGTHENECESSARYINFORMATIONINREGISTERSINENGLANDAMTURINGHADDESIGNEDHARDWAREANDSOFTWAREFORSUBROUTINELINKAGEASEARLYASSEEBECARPENTERANDRWDORANEDITORSAMTURINGSACEREPORTOFANDOTHERPAPERSCAMBRIDGEMASSMITPRESSSEEALSOHDHUSKEYSREMARKSONREVERSIONSTORAGEINPROCEEDINGSOFASECONDSYMPOSIUMONLARGESCALEDIGITALCALCULATINGMACHINERYHARVARDUNIVERSITYTHEUSEANDCONSTRUCTIONOFAVERYVERSATILESUBROUTINELIBRARYISTHEPRINCIPALTOPICOFTHEFIRSTTEXTBOOKOFCOMPUTERPROGRAMMINGTHEPREPARATIONOFPROGRAMSFORANELECTRONICDIGITALCOMPUTERBYMVWILKESDJWHEELERANDSGILLSTEDREADINGMASSADDISONWESLEYTHEWORDCOROUTINEWASCOINEDBYMECONWAYINAFTERHEHADCOROUTINEHISTORYDEVELOPEDTHECONCEPTANDHEFIRSTAPPLIEDITTOTHECONSTRUCTIONOFANASSEMBLYPROGRAMCOROUTINESWEREINDEPENDENTLYSTUDIEDBYJERDWINNANDJMERNERATABOUTTHESAMETIMETHEYWROTEAPAPERENTITLEDBILATERALLINKAGEWHICHWASNOTTHENCONSIDEREDSUFFICIENTLYINTERESTINGTOMERITPUBLICATIONANDUNFORTUNATELYNOCOPIESOFTHATPAPERSEEMTOEXISTTODAYTHEFIRSTPUBLISHEDEXPLANATIONOFTHECOROUTINECONCEPTAPPEAREDMUCHLATERINCONWAYSARTICLEDESIGNOFASEPARABLETRANSITIONDIAGRAMCOMPILERCACMACTUALLYAPRIMITIVEFORMOFCOROUTINELINKAGEHADALREADYBEENNOTEDBRIEFLYASAPROGRAMMINGTIPINANEARLYUNIVACUNIVACIPUBLICATIONTHEPROGRAMMERFEBRUARYASUITABLENOTATIONFORCOROUTINESINLIKELANGUAGESWASINTRODUCEDINDAHLANDALGOLSIMULAINYGAARDSSIMULAICACMANDSEVERALEXCELLENTEXAMPLESOFCOROUTINESINCLUDINGREPLICATEDCOROUTINESAPPEARINTHEBOOKSTRUCTUREDPROGRAMMINGBYOJDAHLEWDIJKSTRAANDCARHOARECHAPTERTHEFIRSTINTERPRETIVEROUTINEMAYBESAIDTOBETHEUNIVERSALTURINGMACHINEATURINGMACHINECAPABLEOFSIMULATINGANYOTHERTURINGMACHINESAUTOMATATHEORYTURINGMACHINESARENOTACTUALCOMPUTERSTHEYARETHEORETICALCONSTRUCTIONSUSEDTOPROVETHATCERTAINPROBLEMSAREUNSOLVABLEBYALGORITHMSINTERPRETIVEROUTINESINTHECONVENTIONALSENSEWEREMENTIONEDBYJOHNMAUCHLYINHISLECTURESATTHEMOORESCHOOLINTHEMOSTNOTABLEEARLYINTERPRETERSCHIEFLYINTENDEDTOPROVIDEACONVENIENTMEANSOFDOINGFLOATINGPOINTARITHMETICWERECERTAINROUTINESFORTHEWHIRLWINDIBYCWADAMSANDOTHERSANDFORTHEILLIACIBYDJWHEELERANDOTHERSTURINGTOOKAPARTINTHISDEVELOPMENTALSOINTERPRETIVESYSTEMSFORTHEPILOTACECOMPUTERWEREWRITTENUNDERHISDIRECTIONFORREFERENCESTOTHESTATEOFINTERPRETERSINTHEEARLYFIFTIESSEETHEARTICLEINTERPRETATIVESUBROUTINESBYJMBENNETTDGPRINZANDMLWOODSPROCACMTORONTOSEEALSOVARIOUSPAPERSINTHEPROCEEDINGSOFTHESYMPOSIUMONAUTOMATICPROGRAMMINGFORDIGITALCOMPUTERSPUBLISHEDBYTHEOFFICEOFNAVALRESEARCHWASHINGTONDCTHEMOSTEXTENSIVELYUSEDEARLYINTERPRETIVEROUTINEWASPROBABLYJOHNBACKUSSIBMSPEEDCODINGSYSTEMSEEJACMTHISINTERPRETERWASSLIGHTLYMODIFIEDANDSKILLFULLYREWRITTENFORTHEIBMBYVMWOLONTISANDOTHERSOFTHEBELLTELEPHONELABORATORIESTHEIRROUTINECALLEDTHEBELLINTERPRETIVESYSTEMBECAMEEXTREMELYPOPULARTHEIPLIPLINTERPRETIVESYSTEMSWHICHWEREDESIGNEDBEGINNINGINBYANEWELLJCSHAWANDHASIMONFORAPPLICATIONSTOQUITEDIFFERENTPROBLEMSSEESECTIONWEREUSEDEXTENSIVELYFORLISTPROCESSINGMODERNUSESOFINTERPRETERSASMENTIONEDINTHEINTRODUCTIONTOSECTIONAREOFTENMENTIONEDINPASSINGINTHECOMPUTERLITERATURESEETHEREFERENCESLISTEDINTHATSECTIONFORARTICLESTHATDISCUSSINTERPRETERSINSOMEWHATMOREDETAILTHEFIRSTTRACINGROUTINEWASDEVELOPEDBYSTANLEYGILLINSEEHISINTERESTINGARTICLEINPROCEEDINGSOFTHEROYALSOCIETYOFLONDONSERIESATHETEXTBYWILKESWHEELERANDGILLMENTIONEDABOVEINCLUDESSEVERALPROGRAMSFORTRACINGPERHAPSTHEMOSTINTERESTINGOFTHEMISSUBROUTINECBYDJWHEELERWHICHINCLUDESAPROVISIONFORSUPPRESSINGTHETRACEUPONENTRYTOALIBRARYSUBROUTINEEXECUTINGTHESUBROUTINEATFULLSPEEDTHENCONTINUINGTHETRACESUBROUTINEHISTORYPUBLISHEDINFORMATIONABOUTTRACEROUTINESISQUITERAREINTHEGENERALCOMPUTERLITERATUREPRIMARILYBECAUSETHEMETHODSAREINHERENTLYORIENTEDTOAPARTICULARMACHINETHEONLYOTHEREARLYREFERENCEKNOWNTOTHEAUTHORISHVMEEKANEXPERIMENTALMONITORINGROUTINEFORTHEIBMPROCWESTERNJOINTCOMPUTERCONFWHICHDISCUSSESATRACEROUTINEFORAMACHINEONWHICHTHEPROBLEMWASPARTICULARLYDIFFICULTSEEALSOTHETRACEROUTINEFORIBMSSYSTEMARCHITECTUREPRESENTEDINACOMPILERGENERATORBYWMMCKEEMANJJHORNINGANDDBWORTMANPRENTICEHALLNOWADAYSTHEEMPHASISONTRACEROUTINESHASSHIFTEDTOSOFTWARETHATPROVIDESSELECTIVESYMBOLICOUTPUTANDMEASUREMENTSOFPROGRAMPERFORMANCEONEOFTHEBESTSUCHSYSTEMSWASDEVELOPEDBYESATTERTHWAITEANDDESCRIBEDINSOFTWAREPRACTICEEXPERIENCEBUFFERINGWASORIGINALLYPERFORMEDBYCOMPUTERHARDWAREINAMANNERANALOGOUSTOBUFFERINGHISTORYTHECODESIMPLEBUFFERINGANINTERNALBUFFERAREAINACCESSIBLETOTHEPROGRAMMERPLAYEDTHEROLEOFLOCATIONSSIMPBUFLOCSANDTHEINSTRUCTIONSSIMPLEBUFFERINGWEREIMPLICITLYPERFORMEDBEHINDTHESCENESWHENANINPUTCOMMANDWASGIVENDURINGTHELATESSOFTWAREBUFFERINGTECHNIQUESTHATAREESPECIALLYUSEFULFORSORTINGWEREDEVELOPEDBYEARLYPROGRAMMERSOFTHEUNIVACSEESECTIONFORAGOODSURVEYUNIVACIOFTHEPREVAILINGPHILOSOPHYTOWARDSIOINSEETHEPROCEEDINGSOFTHEEASTERNJOINTCOMPUTERCONFERENCEHELDINTHATYEARBUFFERINGHISTORYTHEDYSEACCOMPUTERALANLLEINERJACMINTRODUCEDTHEIDEAOFINPUTOUTPUTDEVICESCOMMUNICATINGDIRECTLYWITHMEMORYWHILEAPROGRAMISRUNNINGTHENINTERRUPTINGTHEPROGRAMUPONCOMPLETIONSUCHASYSTEMIMPLIESTHATBUFFERINGALGORITHMSHADBEENDEVELOPEDBUTTHEDETAILSWENTUNPUBLISHEDTHEFIRSTPUBLISHEDREFERENCETOBUFFERINGTECHNIQUESINTHESENSEWEHAVEDESCRIBEDGIVESAHIGHLYSOPHISTICATEDAPPROACHSEEOMOCKANDCJSWIFTPROGRAMMEDINPUTOUTPUTBUFFERINGPROCACMNATMEETINGPAPERANDJACMTHEREADERISCAUTIONEDTHATBOTHARTICLESCONTAINAGOODDEALOFLOCALJARGONWHICHMAYTAKESOMETIMETOUNDERSTANDBUTNEIGHBORINGARTICLESINJACMWILLHELPANINTERRUPTSYSTEMTHATENABLEDBUFFERINGOFINPUTANDOUTPUTWASINDEPENDENTLYDEVELOPEDBYEWDIJKSTRAINANDINCONNECTIONWITHBJLOOPSTRASANDCSSCHOLTENSXCOMPUTERSEECOMPJDIJKSTRASDOCTORALTHESISCOMMUNICATIONWITHANAUTOMATICCOMPUTERDISCUSSEDPRIMITIVESYNCHRONIZATIONOPERATIONSBYWHICHUSERSCOULDCREATELONGCHAINSOFBUFFERSWITHRESPECTTOPAPERTAPEANDTYPEWRITERIOEACHBUFFERCONTAINEDEITHERASINGLECHARACTERORASINGLENUMBERHELATERDEVELOPEDTHEIDEASINTOTHEIMPORTANTGENERALNOTIONOFSEMAPHORESWHICHAREBASICTOTHECONTROLOFALLSORTSOFCONCURRENTPROCESSESNOTJUSTINPUTOUTPUTSEEPROGRAMMINGLANGUAGESEDBYFGENUYSACADEMICPRESSBITACTAINFORMATICATHEPAPERINPUTOUTPUTBUFFERINGANDBYDAVIDEFERGUSONFORTRANJACMDESCRIBESBUFFERCIRCLESANDGIVESADETAILEDDESCRIPTIONOFSIMPLEBUFFERINGWITHMANYUNITSATONCECIRCLESOFBUFFERSABOUTINSTRUCTIONSISAREASONABLEUPPERLIMITFORTHECOMPLEXITYOFPROBLEMSNOWENVISIONEDHERMANGOLDSTINEANDJOHNVONNEUMANNANSWERSTOEXERCISESANSWERSTOEXERCISESIAMNOTBOUNDTOPLEASETHEEWITHMYANSWERSSHYLOCKINTHEMERCHANTOFVENICEACTIVSCENELINESHAKESPEARECHAPTERTWOINFORMATIONSTRUCTURESITHINKTHATISHALLNEVERSEEAPOEMLOVELYASATREEJOYCEKILMERYEAFROMTHETABLEOFMYMEMORYILLWIPEAWAYALLTRIVIALFONDRECORDSHAMLETACTISCENELINESHAKESPEAREINTRODUCTIONCOMPUTERPROGRAMSDATASTRUCTUREUSUALLYOPERATEONTABLESOFINFORMATIONINMOSTCASESTHESETABLESARENOTSIMPLYAMORPHOUSMASSESOFNUMERICALVALUESTHEYINVOLVEIMPORTANTSTRUCTURALRELATIONSHIPSBETWEENTHEDATAELEMENTSINITSSIMPLESTFORMATABLEMIGHTBEALINEARLISTOFELEMENTSWHENITSRELEVANTSTRUCTURALPROPERTIESMIGHTINCLUDETHEANSWERSTOSUCHQUESTIONSASWHICHELEMENTISFIRSTINTHELISTWHICHISLASTWHICHELEMENTSPRECEDEANDFOLLOWAGIVENONEHOWMANYELEMENTSAREINTHELISTALOTCANBESAIDABOUTSTRUCTUREEVENINTHISAPPARENTLYSIMPLECASESEESECTIONINMORECOMPLICATEDSITUATIONSTHETABLEMIGHTBEATWODIMENSIONALARRAYAMATRIXORGRIDHAVINGBOTHAROWANDACOLUMNSTRUCTUREORITMIGHTBEANDIMENSIONALARRAYFORHIGHERVALUESOFITMIGHTBEATREESTRUCTUREREPRESENTINGHIERARCHICALORBRANCHINGRELATIONSHIPSORITMIGHTBEACOMPLEXMULTILINKEDSTRUCTUREWITHAGREATMANYINTERCONNECTIONSSUCHASWEMAYFINDINAHUMANBRAININORDERTOUSEACOMPUTERPROPERLYWENEEDTOUNDERSTANDTHESTRUCTURALRELATIONSHIPSPRESENTWITHINDATAASWELLASTHEBASICTECHNIQUESFORREPRESENTINGANDMANIPULATINGSUCHSTRUCTUREWITHINACOMPUTERTHEPRESENTCHAPTERSUMMARIZESTHEMOSTIMPORTANTFACTSABOUTINFORMATIONSTRUCTURESTHESTATICANDDYNAMICPROPERTIESOFDIFFERENTKINDSOFSTRUCTUREMEANSFORSTORAGEALLOCATIONANDREPRESENTATIONOFSTRUCTUREDDATAANDEFFICIENTALGORITHMSFORCREATINGALTERINGACCESSINGANDDESTROYINGSTRUCTURALINFORMATIONINTHECOURSEOFTHISSTUDYWEWILLALSOWORKOUTSEVERALIMPORTANTEXAMPLESTHATILLUSTRATETHEAPPLICATIONOFSUCHMETHODSTOAWIDEVARIETYOFPROBLEMSTHEEXAMPLESINCLUDETOPOLOGICALSORTINGPOLYNOMIALARITHMETICDISCRETESYSTEMSIMULATIONSPARSEMATRIXTRANSFORMATIONALGEBRAICFORMULAMANIPULATIONANDAPPLICATIONSTOTHEWRITINGOFCOMPILERSANDOPERATINGSYSTEMSOURCONCERNWILLBEALMOSTENTIRELYWITHSTRUCTUREASREPRESENTEDINSIDEACOMPUTERTHECONVERSIONFROMEXTERNALTOINTERNALREPRESENTATIONSISTHESUBJECTOFCHAPTERSANDMUCHOFTHEMATERIALWEWILLDISCUSSISOFTENCALLEDLISTPROCESSINGSINCEANUMBEROFPROGRAMMINGSYSTEMSSUCHASLISPHAVEBEENDESIGNEDTOFACILITATEWORKINGWITHGENERALKINDSOFSTRUCTURESCALLEDLISTSWHENTHEWORDLISTISCAPITALIZEDINTHISCHAPTERLISTCAPITALLISTVSLISTITISBEINGUSEDINATECHNICALSENSETODENOTEAPARTICULARTYPEOFSTRUCTURETHATISHIGHLIGHTEDINSECTIONALTHOUGHLISTPROCESSINGSYSTEMSAREUSEFULINALARGENUMBEROFSITUATIONSTHEYIMPOSECONSTRAINTSONTHEPROGRAMMERTHATAREOFTENUNNECESSARYITISUSUALLYBETTERTOUSETHEMETHODSOFTHISCHAPTERDIRECTLYINONESOWNPROGRAMSTAILORINGTHEDATAFORMATANDTHEPROCESSINGALGORITHMSTOTHEPARTICULARAPPLICATIONMANYPEOPLEUNFORTUNATELYSTILLFEELTHATLISTPROCESSINGTECHNIQUESAREQUITECOMPLICATEDSOTHATITISNECESSARYTOUSESOMEONEELSESCAREFULLYWRITTENINTERPRETIVESYSTEMORAPREFABRICATEDSETOFSUBROUTINESANDTHATLISTPROCESSINGMUSTBEDONEONLYINACERTAINFIXEDWAYWEWILLSEETHATTHEREISNOTHINGMAGICMYSTERIOUSORDIFFICULTABOUTTHEMETHODSFORDEALINGWITHCOMPLEXSTRUCTURESTHESETECHNIQUESAREANIMPORTANTPARTOFEVERYPROGRAMMERSREPERTOIREANDWECANUSETHEMEASILYWHETHERWEAREWRITINGAPROGRAMINASSEMBLYLANGUAGEORINANALGEBRAICLANGUAGELIKEFORTRANCLANGUAGEJAVAORJAVAWEWILLILLUSTRATEMETHODSOFDEALINGWITHINFORMATIONSTRUCTURESINTERMSOFTHECOMPUTERAREADERWHODOESNOTCARETOLOOKTHROUGHDETAILEDPROGRAMSSHOULDATLEASTSTUDYTHEWAYSINWHICHSTRUCTURALINFORMATIONISREPRESENTEDINSMEMORYITISIMPORTANTATTHISPOINTTODEFINESEVERALTERMSANDNOTATIONSTHATWEWILLBEUSINGFREQUENTLYFROMNOWONTHEINFORMATIONINATABLECONSISTSOFASETOFNODESCALLEDRECORDSENTITIESORBEADSBYSOMEAUTHORSWEWILLOCCASIONALLYSAYITEMORELEMENTINSTEADOFNODEEACHNODECONSISTSOFONEORMORECONSECUTIVEWORDSOFTHECOMPUTERMEMORYDIVIDEDINTONAMEDPARTSCALLEDFIELDSINTHESIMPLESTCASEANODEISJUSTONEWORDOFMEMORYANDITHASJUSTONEFIELDCOMPRISINGTHATWHOLEWORDASAMOREINTERESTINGEXAMPLESUPPOSETHEELEMENTSOFOURTABLEAREINTENDEDTOREPRESENTPLAYINGCARDSWEMIGHTHAVETWOWORDNODESBROKENINTOCARDSPLAYINGFIELDWITHINNODEFIVEFIELDSTAGSUITRANKNEXTANDTITLETHISFORMATREFLECTSTHECONTENTSOFTWOWORDSRECALLTHATAWORDCONSISTSOFFIVEBYTESANDASIGNSEESECTIONINTHISEXAMPLEWEASSUMETHATTHESIGNSAREINEACHWORDTHEADDRESSOFANODEALSOCALLEDLINKALINKPOINTERORREFERENCETOTHATNODEISTHEMEMORYLOCATIONOFITSFIRSTWORDTHEADDRESSISOFTENTAKENRELATIVETOSOMEBASELOCATIONBUTINTHISCHAPTERFORSIMPLICITYWEWILLTAKETHEADDRESSTOBEANABSOLUTEMEMORYLOCATIONTHECONTENTSOFANYFIELDWITHINANODEMAYREPRESENTNUMBERSALPHABETICCHARACTERSLINKSORANYTHINGELSETHEPROGRAMMERMAYDESIREINCONNECTIONWITHTHEEXAMPLEABOVEWEMIGHTWISHTOREPRESENTAPILEOFCARDSTHATMIGHTAPPEARINAGAMEOFSOLITAIREMEANSTHATTHECARDISFACEDOWNMEANSTHATITISFACEUPORFORCLUBSDIAMONDSHEARTSORSPADESRESPECTIVELYFORACEDEUCEKINGNEXTISALINKTOTHECARDBELOWTHISONEINTHEPILEANDTITLEISAFIVECHARACTERALPHABETICNAMEOFTHISCARDFORUSEINPRINTOUTSATYPICALPILEMIGHTLOOKLIKETHISTHEMEMORYLOCATIONSINTHECOMPUTERREPRESENTATIONARESHOWNHEREASANDTHEYCOULDHAVEBEENANYOTHERNUMBERSASFARASTHISEXAMPLEISCONCERNEDSINCEEACHCARDLINKSTOTHEONEBELOWITNOTICETHESPECIALLINKINNODEWEUSETHECAPITALGREEKLETTERLAMBDATODENOTETHENULLLINKTHELINKTONONODETHENULLLINKNULLLINKAPPEARSINNODESINCETHEOFCLUBSISTHEBOTTOMCARDOFTHEPILEWITHINTHEMACHINEISREPRESENTEDBYSOMEEASILYRECOGNIZABLEVALUETHATCANNOTBETHEADDRESSOFANODEWEWILLGENERALLYASSUMETHATNONODEAPPEARSINLOCATIONCONSEQUENTLYWILLALMOSTALWAYSBEREPRESENTEDASTHELINKVALUEINPROGRAMSTHEINTRODUCTIONOFLINKSTOOTHERELEMENTSOFDATAISANEXTREMELYIMPORTANTIDEAINCOMPUTERPROGRAMMINGLINKSARETHEKEYTOTHEREPRESENTATIONOFCOMPLEXSTRUCTURESWHENDISPLAYINGCOMPUTERREPRESENTATIONSOFNODESITISUSUALLYDIAGRAMSOFSTRUCTURELINKEDALLOCATIONLINKEDLINEARLISTCONVENIENTTOREPRESENTLINKSBYARROWSSOTHATEXAMPLEWOULDAPPEARTHUSTHEACTUALLOCATIONSANDWHICHAREIRRELEVANTANYWAYNOLONGERAPPEARINREPRESENTATIONELECTRICALCIRCUITNOTATIONFORAGROUNDEDWIREISUSEDTOINDICATEANULLLINKSHOWNHEREATTHERIGHTOFTHEDIAGRAMNOTICEALSOTHATINDICATESTHETOPCARDBYANARROWFROMTOPHERETOPISALINKVARIABLEOFTENCALLEDAPOINTERVARIABLENAMELYAVARIABLEWHOSEVALUEISALINKALLREFERENCESTONODESINAPROGRAMAREMADEDIRECTLYTHROUGHLINKVARIABLESORLINKCONSTANTSORINDIRECTLYTHROUGHLINKFIELDSINOTHERNODESNOWWECOMETOTHEMOSTIMPORTANTPARTOFTHENOTATIONTHEMEANSOFREFERRINGTOFIELDSWITHINNODESTHISISDONESIMPLYBYGIVINGTHENAMEOFTHEFIELDFOLLOWEDBYALINKTOTHEDESIREDNODEINPARENTHESESFOREXAMPLEINANDWITHTHEFIELDSOFWEHAVETHEREADERSHOULDSTUDYTHESEEXAMPLESCAREFULLYSINCESUCHFIELDNOTATIONSWILLBEUSEDINMANYALGORITHMSOFTHISCHAPTERANDTHEFOLLOWINGCHAPTERSTOMAKETHEIDEASCLEARERWEWILLNOWSTATEASIMPLEALGORITHMFORPLACINGANEWCARDFACEUPONTOPOFTHEPILEASSUMINGTHATNEWCARDISALINKVARIABLEWHOSEVALUEISALINKTOTHENEWCARDAASETTHISPUTSTHEAPPROPRIATELINKINTOTHENEWCARDNODEASETTHISKEEPSTOPPOINTINGTOTHETOPOFTHEPILEASETTHISMARKSTHECARDASFACEUPINSERTIONINLINKEDLISTBANOTHEREXAMPLEISTHEFOLLOWINGALGORITHMWHICHCOUNTSTHENUMBEROFCARDSCURRENTLYINTHEPILEBSETHERENISANINTEGERVARIABLEXISALINKVARIABLEBIFSTOPNISTHENUMBEROFCARDSINTHEPILEBSETANDGOBACKTOSTEPBNULLLINKNOTICETHATWEAREUSINGSYMBOLICNAMESFORTWOQUITEDIFFERENTTHINGSINTHESEALGORITHMSASNAMESOFVARIABLESTOPNEWCARDNXANDASNAMESOFFIELDSTAGNEXTTHESETWOUSAGESMUSTNOTBECONFUSEDIFFISAFIELDNAMEANDISALINKTHENFLISAVARIABLEBUTFITSELFISNOTAVARIABLEITDOESNOTPOSSESSAVALUEUNLESSITISQUALIFIEDBYANONNULLLINKFIELDWITHINNODENOTATIONSTWOFURTHERNOTATIONSAREUSEDTOCONVERTBETWEENADDRESSESANDTHEVALUESSTOREDTHEREWHENWEAREDISCUSSINGLOWLEVELMACHINEDETAILSACONTENTSALWAYSDENOTESAFULLWORDFIELDOFAONEWORDNODECONTENTSTHUSCONTENTSDENOTESTHEVALUESTOREDINMEMORYLOCATIONITISAVARIABLEHAVINGTHISVALUEIFVISALINKVARIABLECONTENTSVDENOTESTHEVALUEPOINTEDTOBYVNOTTHEVALUEVITSELFBIFVISTHENAMEOFSOMEVALUEHELDINAMEMORYCELLLOCLOCVDENOTESTHEADDRESSOFTHATCELLCONSEQUENTLYIFVISAVARIABLEWHOSEVALUEISSTOREDINAFULLWORDOFMEMORYWEHAVEITISEASYTOTRANSFORMTHISNOTATIONINTOMIXALASSEMBLYLANGUAGEMIXALCODEALTHOUGHMIXALSNOTATIONISSOMEWHATBACKWARDSTHEVALUESOFLINKVARIABLESAREPUTINTOINDEXREGISTERSANDTHEPARTIALFIELDCAPABILITYOFISUSEDTOREFERTOTHEDESIREDFIELDFOREXAMPLEALGORITHMAABOVECOULDBEWRITTENTHUSTHEEASEANDEFFICIENCYWITHWHICHTHESEOPERATIONSCANBECARRIEDOUTINACOMPUTERISTHEPRIMARYREASONFORTHEIMPORTANCEOFTHELINKEDMEMORYCONCEPTMIXALSOMETIMESWEHAVEASINGLEVARIABLETHATDENOTESAWHOLENODEITSVALUENODEVARIABLENODEISASEQUENCEOFFIELDSINSTEADOFJUSTONEFIELDTHUSWEMIGHTWRITEWHERENODEISAFIELDSPECIFICATIONJUSTLIKECONTENTSEXCEPTTHATITREFERSTOANENTIRENODEANDWHERECARDISAVARIABLETHATASSUMESSTRUCTUREDVALUESLIKETHOSEINIFTHEREAREWORDSINANODETHENOTATIONISANABBREVIATIONFORTHELOWLEVELASSIGNMENTSTHEREISANIMPORTANTDISTINCTIONBETWEENASSEMBLYLANGUAGEANDTHENOTATIONUSEDINALGORITHMSSINCEASSEMBLYLANGUAGEISCLOSETOTHEMACHINESINTERNALLANGUAGETHESYMBOLSUSEDINMIXALPROGRAMSSTANDFORADDRESSESINSTEADOFVALUESTHUSINTHELEFTHANDCOLUMNSOFTHESYMBOLTOPACTUALLYDENOTESTHEADDRESSWHERETHEPOINTERTOTHETOPCARDAPPEARSINMEMORYBUTINANDANDINTHEREMARKSATTHERIGHTOFITDENOTESTHEVALUEOFTOPNAMELYTHEADDRESSOFTHETOPCARDNODETHISDIFFERENCEBETWEENASSEMBLYLANGUAGEANDHIGHERLEVELLANGUAGEISAFREQUENTSOURCEOFCONFUSIONFORBEGINNINGPROGRAMMERSSOTHEASSEMBLYVSHIGHLEVELREADERISURGEDTOWORKEXERCISETHEOTHEREXERCISESALSOPROVIDEUSEFULDRILLSONTHENOTATIONALCONVENTIONSINTRODUCEDINTHISSECTIONEXERCISESINTHESITUATIONDEPICTEDINWHATISTHEVALUEOFASUITNEXTTOPBNEXTNEXTNEXTTOPASUITNEXTTOPSUITNEXTSUITBTHETEXTPOINTSOUTTHATINMANYCASESCONTENTSLOCVVUNDERWHATCONDITIONSDOWEHAVELOCCONTENTSWHENEVERVISALINKVARIABLEELSECONTENTSVMAKESNOSENSEWHOSEVALUEISNOTITISWISETOAVOIDUSINGLOCINCONTEXTSLIKETHISGIVEANALGORITHMTHATESSENTIALLYUNDOESTHEEFFECTOFALGORITHMAITREMOVESTHETOPCARDOFTHEPILEIFTHEPILEISNOTEMPTYANDSETSNEWCARDTOTHEADDRESSOFTHISCARDDELETIONFROMLINKEDLISTSETANDIFSETGIVEANALGORITHMANALOGOUSTOALGORITHMAEXCEPTTHATITPUTSTHENEWCARDFACEDOWNATTHEBOTTOMOFTHEPILETHEPILEMAYBEEMPTYCCSETFORCONVENIENCEWEMAKETHEREASONABLEASSUMPTIONTHATNAMELYTHATTHEVALUEOFTOPAPPEARSINTHENEXTFIELDOFTHELOCATIONWHEREITISSTOREDTHISASSUMPTIONISCOMPATIBLEWITHPROGRAMANDITSAVESUSTHEBOTHEROFWRITINGASPECIALROUTINEFORTHECASEOFANEMPTYPILECIFSETANDREPEATTHISSTEPCSETGIVEANALGORITHMTHATESSENTIALLYUNDOESTHEEFFECTOFEXERCISEASSUMINGTHATTHEPILEISNOTEMPTYANDTHATITSBOTTOMCARDISFACEDOWNYOURALGORITHMSHOULDREMOVETHEBOTTOMCARDANDMAKENEWCARDLINKTOITTHISALGORITHMISSOMETIMESCALLEDCHEATINGINSOLITAIREGAMESDDSETTOPSEESTEPCABOVEBYHYPOTHESISTHROUGHOUTTHEALGORITHMTHATFOLLOWSXTRAILSONESTEPBEHINDYINTHESENSETHATDIFSETANDREPEATTHISSTEPDNOWSOYPOINTSTOTHEBOTTOMCARDALSOXPOINTSTOTHENEXTTOLASTCARDSETINTHEPLAYINGCARDEXAMPLESUPPOSETHATCARDISTHENAMEOFAVARIABLEWHOSEVALUEISANENTIRENODEASINTHEOPERATIONSETSTHEFIELDSOFCARDRESPECTIVELYEQUALTOTHOSEOFTHETOPOFTHEPILEAFTERTHISOPERATIONWHICHOFTHEFOLLOWINGNOTATIONSSTANDSFORTHESUITOFTHETOPCARDASUITCARDBSUITLOCCARDCSUITCONTENTSCARDDSUITTOPNOTATIONSBANDDNOTACARDISANODENOTALINKTOANODEINTHETEXTSEXAMPLEPROGRAMTHELINKVARIABLETOPISSTOREDINTHECOMPUTERWORDWHOSEASSEMBLYLANGUAGENAMEISTOPGIVENTHEFIELDSTRUCTUREWHICHOFTHEFOLLOWINGSEQUENCESOFCODEBRINGSTHEQUANTITYNEXTTOPINTOREGISTERAEXPLAINWHYTHEOTHERSEQUENCEISINCORRECTSEQUENCEAGIVESNEXTLOCTOPWHICHINTHISCASEISIDENTICALTOTHEVALUEOFTOPSEQUENCEBISCORRECTTHEREISNONEEDFORCONFUSIONCONSIDERTHEANALOGOUSEXAMPLEWHENXISANUMERICVARIABLETOBRINGXINTOREGISTERAWEWRITELDAXNOTENTAXSINCETHELATTERBRINGSLOCXINTOTHEREGISTERASSEMBLYVSHIGHLEVELWRITEAPROGRAMCORRESPONDINGTOSTEPSBBWRITEAPROGRAMTHATPRINTSOUTTHEALPHABETICNAMESOFTHECURRENTCONTENTSOFTHECARDPILESTARTINGATTHETOPCARDWITHONECARDPERLINEANDWITHPARENTHESESAROUNDCARDSTHATAREFACEDOWNLETCARDSPLAYINGFIELDWITHINNODELINKLINKEDLINEARLISTFIELDWITHINNODENOTATIONSLINEARLISTSSTACKSQUEUESANDDEQUESDATAUSUALLYHASLINEARLISTSMUCHMORESTRUCTURALINFORMATIONTHANWEACTUALLYWANTTOREPRESENTDIRECTLYINACOMPUTERFOREXAMPLEEACHPLAYINGCARDNODECARDSPLAYINGREPRESENTATIONCHOOSINGSTRUCTUREHOWTOREPRESENTINTHEPRECEDINGSECTIONHADANEXTFIELDTOSPECIFYWHATCARDWASBENEATHITINTHEPILEBUTWEPROVIDEDNODIRECTWAYTOFINDWHATCARDIFANYWASABOVEAGIVENCARDORTOFINDWHATPILEAGIVENCARDWASINANDOFCOURSEWETOTALLYSUPPRESSEDMOSTOFTHECHARACTERISTICFEATURESOFREALPLAYINGCARDSTHEDETAILSOFTHEDESIGNONTHEBACKTHERELATIONTOOTHEROBJECTSINTHEROOMWHERETHEGAMEWASBEINGPLAYEDTHEINDIVIDUALMOLECULESWITHINTHECARDSETCITISCONCEIVABLETHATSUCHSTRUCTURALINFORMATIONWOULDBERELEVANTINCERTAINCOMPUTERAPPLICATIONSBUTOBVIOUSLYWENEVERWANTTOSTOREALLOFTHESTRUCTURETHATISPRESENTINEVERYSITUATIONINDEEDFORMOSTCARDPLAYINGSITUATIONSWEWOULDNOTNEEDALLOFTHEFACTSRETAINEDINTHEEARLIEREXAMPLETHETAGFIELDWHICHTELLSWHETHERACARDISFACEUPORFACEDOWNWILLOFTENBEUNNECESSARYWEMUSTDECIDEINEACHCASEHOWMUCHSTRUCTURETOREPRESENTINOURTABLESANDHOWACCESSIBLETOMAKEEACHPIECEOFINFORMATIONTOMAKESUCHDECISIONSWENEEDTOKNOWWHATOPERATIONSARETOBEPERFORMEDONTHEDATAFOREACHPROBLEMCONSIDEREDINTHISCHAPTERTHEREFOREWECONSIDERNOTONLYTHEDATASTRUCTUREBUTALSOTHECLASSOFOPERATIONSTOBEDONEONTHEDATATHEDESIGNOFCOMPUTERREPRESENTATIONSDEPENDSONTHEDESIREDFUNCTIONOFTHEDATAASWELLASONITSINTRINSICPROPERTIESINDEEDANEMPHASISONFUNCTIONASWELLASFORMISBASICTODESIGNPROBLEMSINGENERALINORDERTOILLUSTRATETHISPOINTFURTHERLETSCONSIDERARELATEDASPECTOFCOMPUTERHARDWAREDESIGNACOMPUTERMEMORYISOFTENCLASSIFIEDMEMORYTYPESASARANDOMACCESSMEMORYLIKESMAINMEMORYORASAREADONLYMEMORYWHICHISSUPPOSEDTOCONTAINESSENTIALLYCONSTANTINFORMATIONORASECONDARYBULKMEMORYLIKESDISKUNITSWHICHCANNOTBEACCESSEDATHIGHSPEEDALTHOUGHLARGEQUANTITIESOFINFORMATIONCANBESTOREDORANASSOCIATIVEMEMORYMOREPROPERLYCALLEDACONTENTADDRESSEDMEMORYFORWHICHINFORMATIONISADDRESSEDBYITSVALUERATHERTHANBYITSLOCATIONANDSOONTHEINTENDEDFUNCTIONOFEACHKINDOFMEMORYISSOIMPORTANTTHATITENTERSINTOTHENAMEOFTHEPARTICULARMEMORYTYPEALLOFTHESEDEVICESAREMEMORYUNITSBUTTHEPURPOSESTOWHICHTHEYAREPUTPROFOUNDLYINFLUENCETHEIRDESIGNANDTHEIRCOSTALINEARLISTISASEQUENCEOFNODESXXXWHOSEESSENTIALSTRUCTURALPROPERTIESINVOLVEONLYTHERELATIVEPOSITIONSBETWEENITEMSASTHEYAPPEARINALINETHEONLYTHINGSWECAREABOUTINSUCHSTRUCTURESARETHEFACTSTHATIFXISTHEFIRSTNODEANDXISTHELASTANDIFTHETHNODEXISPRECEDEDBYXANDFOLLOWEDBYXTHEOPERATIONSWEMIGHTWANTTOPERFORMONLINEARLISTSINCLUDEFOREXAMPLETHEFOLLOWINGIGAINACCESSTOTHETHNODEOFTHELISTTOEXAMINEANDORTOCHANGETHECONTENTSOFITSFIELDSIIINSERTANEWNODEJUSTBEFOREORAFTERTHETHNODEIIIDELETETHETHNODEIVCOMBINETWOORMORELINEARLISTSINTOASINGLELISTVSPLITALINEARLISTINTOTWOORMORELISTSVIMAKEACOPYOFALINEARLISTVIIDETERMINETHENUMBEROFNODESINALISTVIIISORTTHENODESOFTHELISTINTOASCENDINGORDERBASEDONCERTAINFIELDSOFTHENODESIXSEARCHTHELISTFORTHEOCCURRENCEOFANODEWITHAPARTICULARVALUEINSOMEFIELDINOPERATIONSIIIANDIIITHESPECIALCASESANDAREOFPRINCIPALIMPORTANCESINCETHEFIRSTANDLASTITEMSOFALINEARLISTMAYBEEASIERTOGETATTHANAGENERALELEMENTISWEWILLNOTDISCUSSOPERATIONSVIIIANDIXINTHISCHAPTERSINCETHOSETOPICSARETHESUBJECTSOFCHAPTERSANDRESPECTIVELYINSERTIONINTOLINEARLISTDELETIONFROMLINEARLISTACOMPUTERAPPLICATIONRARELYCALLSFORALLNINEOFTHESEOPERATIONSINTHEIRFULLGENERALITYSOWEFINDTHATTHEREAREMANYWAYSTOREPRESENTLINEARLISTSDEPENDINGONTHECLASSOFOPERATIONSTHATARETOBEDONEMOSTFREQUENTLYITISDIFFICULTTODESIGNASINGLEREPRESENTATIONMETHODFORLINEARLISTSINWHICHALLOFTHESEOPERATIONSAREEFFICIENTFOREXAMPLETHEABILITYTOGAINACCESSTOTHETHNODEOFALONGLISTFORRANDOMISCOMPARATIVELYHARDTODOIFATTHESAMETIMEWEAREINSERTINGANDDELETINGITEMSINTHEMIDDLEOFTHELISTTHEREFOREWEDISTINGUISHBETWEENTYPESOFLINEARLISTSDEPENDINGONTHEPRINCIPALOPERATIONSTOBEPERFORMEDJUSTASWEHAVENOTEDTHATCOMPUTERMEMORIESAREDISTINGUISHEDBYTHEIRINTENDEDAPPLICATIONSLINEARLISTSINWHICHINSERTIONSDELETIONSANDACCESSESTOVALUESOCCURALMOSTALWAYSATTHEFIRSTORTHELASTNODEAREVERYFREQUENTLYENCOUNTEREDANDWEGIVETHEMSPECIALNAMESASTACKISALINEARLISTFORWHICHALLINSERTIONSANDDELETIONSANDUSUALLYALLACCESSESAREMADEATONEENDOFTHELISTSTACKAQUEUEISALINEARLISTFORWHICHALLINSERTIONSAREMADEATONEENDOFTHELISTALLDELETIONSANDUSUALLYALLACCESSESAREMADEATTHEOTHERENDQUEUEADEQUEDOUBLEENDEDQUEUEISALINEARLISTFORWHICHALLINSERTIONSANDDELETIONSANDUSUALLYALLACCESSESAREMADEATTHEENDSOFTHELISTDEQUEADEQUEISTHEREFOREMOREGENERALTHANASTACKORAQUEUEITHASSOMEPROPERTIESINCOMMONWITHADECKOFCARDSANDITISPRONOUNCEDTHESAMEWAYWEALSODISTINGUISHOUTPUTRESTRICTEDORINPUTRESTRICTEDDEQUESINWHICHDELETIONSORINSERTIONSRESPECTIVELYAREALLOWEDTOTAKEPLACEATONLYONEENDINPUTRESTRICTEDDEQUEOUTPUTRESTRICTEDDEQUEINSOMEDISCIPLINESTHEWORDQUEUEHASBEENUSEDINAMUCHBROADERSENSETODESCRIBEANYKINDOFLISTTHATISSUBJECTTOINSERTIONSANDDELETIONSTHESPECIALCASESIDENTIFIEDABOVEARETHENCALLEDVARIOUSQUEUINGDISCIPLINESONLYTHERESTRICTEDUSEOFTHETERMQUEUEISINTENDEDINTHISBOOKHOWEVERBYANALOGYWITHORDERLYQUEUESOFPEOPLEWAITINGINLINEFORSERVICEFIGFIGASTACKREPRESENTEDASARAILWAYSWITCHINGNETWORKSOMETIMESITHELPSTOUNDERSTANDTHEMECHANISMOFASTACKINTERMSOFANANALOGYFROMTHESWITCHINGOFRAILROADCARSASSUGGESTEDBYEWDIJKSTRASEEFIGFIGACORRESPONDINGPICTUREFORDEQUESISSHOWNINFIGFIGRAILWAYNETWORKFIGFIGADEQUEREPRESENTEDASARAILWAYSWITCHINGNETWORKWITHASTACKWEALWAYSREMOVETHEYOUNGESTITEMCURRENTLYINTHELISTNAMELYTHEONETHATHASBEENINSERTEDMORERECENTLYTHANANYOTHERWITHAQUEUEJUSTTHEOPPOSITEISTRUETHEOLDESTITEMISALWAYSREMOVEDTHENODESLEAVETHELISTINTHESAMEORDERASTHEYENTEREDITMANYPEOPLEWHOHAVEINDEPENDENTLYREALIZEDTHEIMPORTANCEOFSTACKSANDQUEUESHAVEGIVENTHEMOTHERNAMESSTACKSHAVEBEENCALLEDPUSHDOWNLISTSREVERSIONSTORAGESCELLARSNESTINGSTORESPILESLASTINFIRSTOUTLIFOLISTSANDEVENYOYOLISTSQUEUESARESOMETIMESCALLEDCIRCULARSTORESORFIRSTINFIRSTOUTFIFOLISTSTHETERMSLIFOANDFIFOHAVEBEENUSEDFORMANYYEARSBYACCOUNTANTSASNAMESOFMETHODSFORPRICINGINVENTORIESSTILLANOTHERTERMSHELFHASBEENAPPLIEDTOOUTPUTRESTRICTEDDEQUESANDINPUTRESTRICTEDDEQUESHAVEBEENCALLEDSCROLLSORROLLSTHISMULTIPLICITYOFNAMESISINTERESTINGINITSELFSINCEITISEVIDENCEFORTHEIMPORTANCEOFTHECONCEPTSTHEWORDSSTACKANDQUEUEAREGRADUALLYBECOMINGSTANDARDTERMINOLOGYOFALLTHEOTHERWORDSLISTEDABOVEONLYPUSHDOWNLISTISSTILLREASONABLYCOMMONPARTICULARLYINCONNECTIONWITHAUTOMATATHEORYSTACKSARISEQUITEFREQUENTLYINPRACTICEWEMIGHTFOREXAMPLEGOTHROUGHASETOFDATAANDKEEPALISTOFEXCEPTIONALCONDITIONSORTHINGSTODOLATERAFTERWEREDONEWITHTHEORIGINALSETWECANTHENDOTHERESTOFTHEPROCESSINGBYCOMINGBACKTOTHELISTREMOVINGENTRIESUNTILITBECOMESEMPTYTHESADDLEPOINTPROBLEMEXERCISESADDLEMTXISANINSTANCEOFTHISSITUATIONEITHERASTACKORAQUEUEWILLBESUITABLEFORSUCHALISTBUTASTACKISGENERALLYMORECONVENIENTWEALLHAVESTACKSINOURMINDSWHENWEARESOLVINGPROBLEMSONEPROBLEMLEADSTOANOTHERANDTHISLEADSTOANOTHERWESTACKUPPROBLEMSANDSUBPROBLEMSANDREMOVETHEMASTHEYARESOLVEDSIMILARLYTHEPROCESSOFENTERINGANDLEAVINGSUBROUTINESDURINGTHEEXECUTIONOFACOMPUTERPROGRAMHASASTACKLIKEBEHAVIORSTACKSAREPARTICULARLYUSEFULFORTHEPROCESSINGOFLANGUAGESWITHANESTEDSTRUCTURELIKEPROGRAMMINGLANGUAGESARITHMETICEXPRESSIONSANDTHELITERARYGERMANSCHACHTELSATZEINGENERALSTACKSOCCURMOSTFREQUENTLYINCONNECTIONWITHEXPLICITLYORIMPLICITLYRECURSIVEALGORITHMSANDWEWILLDISCUSSTHISCONNECTIONTHOROUGHLYINCHAPTERFIGFIGTHREEIMPORTANTCLASSESOFLINEARLISTSSPECIALTERMINOLOGYISGENERALLYUSEDWHENALGORITHMSREFERTOTHESESTRUCTURESWEPUTANITEMONTOTHETOPOFASTACKORTAKETHETOPITEMOFFSEETOPOFSTACKBOTTOMOFSTACKFIGFIGATHEBOTTOMOFTHESTACKISTHELEASTACCESSIBLEITEMANDITWILLNOTBEREMOVEDUNTILALLOTHERITEMSHAVEBEENDELETEDPEOPLEOFTENPOPUPPUSHDOWNSAYTHATTHEYPUSHANITEMDOWNONTOASTACKANDPOPTHESTACKUPWHENTHETOPITEMISDELETEDTHISTERMINOLOGYCOMESFROMANANALOGYWITHTHESTACKSOFPLATESOFTENFOUNDINCAFETERIASTHEBREVITYOFTHEWORDSPUSHANDPOPHASITSADVANTAGESBUTTHESETERMSFALSELYIMPLYAMOTIONOFTHEWHOLELISTWITHINCOMPUTERMEMORYNOTHINGISPHYSICALLYPUSHEDDOWNITEMSAREADDEDONTOTHETOPASINHAYSTACKSORSTACKSOFBOXESWITHQUEUESWESPEAKOFTHEFRONTANDTHEREAROFTHEQUEUETHINGSENTERATTHEFRONTOFQUEUEREAROFQUEUEREARANDAREREMOVEDWHENTHEYULTIMATELYREACHTHEFRONTPOSITIONSEEFIGFIGBWHENREFERRINGTODEQUESWESPEAKOFTHELEFTANDRIGHTENDSFIGFIGCTHECONCEPTSOFTOPBOTTOMFRONTANDREARARESOMETIMESAPPLIEDTODEQUESTHATAREBEINGUSEDASSTACKSORQUEUESWITHNOSTANDARDCONVENTIONSASTOWHETHERTOPBOTTOMFRONTANDREARSHOULDAPPEARATTHELEFTORTHERIGHTTHUSWEFINDITEASYTOUSEARICHVARIETYOFDESCRIPTIVEWORDSFROMENGLISHINOURALGORITHMSUPDOWNTERMINOLOGYFORSTACKSWAITINGINLINETERMINOLOGYFORQUEUESANDLEFTRIGHTTERMINOLOGYFORDEQUESALITTLEBITOFADDITIONALNOTATIONHASPROVEDTOBECONVENIENTFORDEALINGWITHSTACKSANDQUEUESWEWRITEWHENISASTACKTOMEANTHATTHEVALUEISINSERTEDONTOPINSERTIONONTOSTACKINSERTIONINTOQUEUEOFSTACKORWHENISAQUEUETOMEANTHATISINSERTEDATTHEREAROFTHEQUEUESIMILARLYTHENOTATIONISUSEDTOMEANTHATTHEVARIABLEISSETEQUALTOTHEVALUEATTHETOPDELETIONFROMSTACKDELETIONFROMQUEUEOFSTACKORATTHEFRONTOFQUEUEANDTHISVALUEISDELETEDFROMNOTATIONISMEANINGLESSWHENISEMPTYTHATISWHENCONTAINSNOVALUESIFISANONEMPTYSTACKWEMAYWRITETODENOTEITSTOPELEMENTTOPOFSTACKEXERCISESANINPUTRESTRICTEDDEQUEISALINEARLISTINWHICHITEMSMAYBEINSERTEDATONEENDBUTREMOVEDFROMEITHERENDCLEARLYANINPUTRESTRICTEDDEQUECANOPERATEEITHERASASTACKORASAQUEUEIFWECONSISTENTLYREMOVEALLITEMSFROMONEOFTHETWOENDSCANANOUTPUTRESTRICTEDDEQUEALSOBEOPERATEDEITHERASASTACKORASAQUEUEYESCONSISTENTLYINSERTALLITEMSATONEOFTHETWOENDSRAILROADINGIMAGINEFOURRAILROADCARSPOSITIONEDONTHEINPUTSIDEOFTHETRACKINFIGFIGNUMBEREDANDFROMLEFTTORIGHTSUPPOSEWEPERFORMTHEFOLLOWINGSEQUENCEOFOPERATIONSWHICHISCOMPATIBLEWITHTHEDIRECTIONOFTHEARROWSINTHEDIAGRAMANDDOESNOTREQUIRECARSTOJUMPOVEROTHERCARSIMOVECARINTOTHESTACKIIMOVECARINTOTHESTACKIIIMOVECARINTOTHEOUTPUTIVMOVECARINTOTHESTACKVMOVECARINTOTHESTACKVIMOVECARINTOTHEOUTPUTVIIMOVECARINTOTHEOUTPUTVIIIMOVECARINTOTHEOUTPUTASARESULTOFTHESEOPERATIONSTHEORIGINALORDEROFTHECARSHASBEENCHANGEDINTOITISTHEPURPOSEOFTHISEXERCISEANDTHEFOLLOWINGEXERCISESTOEXAMINEWHATPERMUTATIONSAREOBTAINABLEINSUCHAMANNERFROMPERMUTATIONSSTACKPERMUTATIONSSTACKSQUEUESORDEQUESIFTHEREARESIXRAILROADCARSNUMBEREDCANTHEYBEPERMUTEDINTOTHEORDERCANTHEYBEPERMUTEDINTOTHEORDERINCASEITISPOSSIBLESHOWHOWTODOITTOOBTAINDOSSSXXSSXSXXXINTHENOTATIONOFTHEFOLLOWINGEXERCISETHEORDERCANNOTBEACHIEVEDSINCECANPRECEDEONLYIFITISREMOVEDFROMTHESTACKBEFOREHASBEENINSERTEDSANDXTHEOPERATIONSITHROUGHVIIIINTHEPREVIOUSEXERCISECANBEMUCHMORECONCISELYDESCRIBEDBYTHECODESSXSSXXXWHERESSTANDSFORMOVEACARFROMTHEINPUTINTOTHESTACKANDXSTANDSFORMOVEACARFROMTHESTACKINTOTHEOUTPUTSOMESEQUENCESOFSSANDXSSPECIFYMEANINGLESSOPERATIONSSINCETHEREMAYBENOCARSAVAILABLEONTHESPECIFIEDTRACKFOREXAMPLETHESEQUENCESXXSSXXSCANNOTBECARRIEDOUTSINCEWEASSUMETHATTHESTACKISINITIALLYEMPTYLETUSCALLASEQUENCEOFSSANDXSADMISSIBLEIFITCONTAINSSSANDXSANDIFITSPECIFIESNOOPERATIONSTHATCANNOTBEPERFORMEDFORMULATEARULEBYWHICHITISEASYTODISTINGUISHBETWEENADMISSIBLEANDINADMISSIBLESEQUENCESSHOWFURTHERMORETHATNOTWODIFFERENTADMISSIBLESEQUENCESGIVETHESAMEOUTPUTPERMUTATIONANADMISSIBLESEQUENCEISONEINWHICHTHENUMBEROFXSNEVEREXCEEDSTHENUMBEROFSSIFWEREADFROMTHELEFTTOTHERIGHTTWODIFFERENTADMISSIBLESEQUENCESMUSTGIVEADIFFERENTRESULTSINCEIFTHETWOSEQUENCESAGREEUPTOAPOINTWHEREONEHASSANDTHEOTHERHASXTHELATTERSEQUENCEOUTPUTSASYMBOLTHATCANNOTPOSSIBLYBEOUTPUTBEFORETHESYMBOLJUSTINSERTEDBYTHESOFTHEFORMERSEQUENCEPERMSWITHSTACKMFINDASIMPLEFORMULAFORTHENUMBEROFPERMUTATIONSONELEMENTSTHATCANBEOBTAINEDWITHASTACKLIKETHATINEXERCISETHISPROBLEMISEQUIVALENTTOMANYOTHERINTERESTINGPROBLEMSSUCHASTHEENUMERATIONOFBINARYTREESTHENUMBEROFWAYSTOINSERTPARENTHESESINTOAFORMULAANDTHENUMBEROFWAYSTODIVIDEAPOLYGONINTOTRIANGLESANDITAPPEAREDASEARLYASINNOTESBYEULERANDVONSEGNERSEESECTIONTHEFOLLOWINGELEGANTSOLUTIONUSESAREFLECTIONPRINCIPLEDUETOJAEBLYANDDMIRIMANOFFLENSEIGNEMENTMATHTHEREAREOBVIOUSLYSEQUENCESOFSSANDXSTHATCONTAINOFEACHITREMAINSTOEVALUATETHENUMBEROFINADMISSIBLESEQUENCESTHOSETHATCONTAINTHERIGHTNUMBEROFSSANDXSBUTVIOLATETHEOTHERCONDITIONINANYINADMISSIBLESEQUENCELOCATETHEFIRSTXFORWHICHTHEXSOUTNUMBERTHESSTHENINTHEPARTIALSEQUENCELEADINGUPTOANDINCLUDINGTHISXREPLACEEACHXBYSANDEACHSBYXTHERESULTISASEQUENCEWITHSSANDXSCONVERSELYFOREVERYSEQUENCEOFTHELATTERTYPEWECANREVERSETHEPROCESSANDFINDTHEINADMISSIBLESEQUENCEOFTHEFORMERTYPETHATLEADSTOITFOREXAMPLETHESEQUENCEXXSXSSSXXSSSMUSTHAVECOMEFROMSSXSXXXXXSSSTHISCORRESPONDENCESHOWSTHATTHENUMBEROFINADMISSIBLESEQUENCESISHENCEUSINGTHESAMEIDEAWECANSOLVETHEMOREGENERALBALLOTPROBLEMOFBALLOTPROBLEMPROBABILITYTHEORYWHICHESSENTIALLYISTHEENUMERATIONOFALLPARTIALADMISSIBLESEQUENCESWITHAGIVENNUMBEROFSSANDXSTHISPROBLEMWASACTUALLYRESOLVEDASEARLYASBYABRAHAMDEMOIVREWHOSHOWEDTHATTHENUMBEROFSEQUENCESCONTAININGASANDBSANDCONTAININGATLEASTONEINITIALSUBSTRINGWITHMOREASTHANBSISINPARTICULARASABOVEDEMOIVRESTATEDTHISRESULTWITHOUTPROOFPHILOSTRANSBUTITISCLEARFROMOTHERPASSAGESINHISPAPERTHATHEKNEWHOWTOPROVEITSINCETHEFORMULAISOBVIOUSLYTRUEWHENANDSINCEHISGENERATINGFUNCTIONAPPROACHTOSIMILARPROBLEMSYIELDSTHESYMMETRYCONDITIONBYSIMPLEALGEBRAFORTHELATERHISTORYOFTHEBALLOTPROBLEMANDSOMEGENERALIZATIONSSEETHECOMPREHENSIVESURVEYBYDEBARTONANDCLMALLOWSANNALSOFMATHSTATISTICSSEEALSOEXERCISETREESBYDEGREESANDSECTIONWEPRESENTHEREANEWMETHODFORSOLVINGTHEBALLOTPROBLEMWITHTHEUSEOFDOUBLEGENERATINGFUNCTIONSSINCETHISMETHODLENDSITSELFTOTHESOLUTIONOFMOREDIFFICULTPROBLEMSSUCHASTHEQUESTIONINEXERCISELETBETHENUMBEROFSEQUENCESOFSSANDXSOFLENGTHINWHICHTHENUMBEROFXSNEVEREXCEEDSTHENUMBEROFSSIFWECOUNTFROMTHELEFTANDINWHICHTHEREAREMORESSTHANXSINALLTHENOBVIOUSLYISZEROUNLESSISEVENWESEEEASILYTHATTHESENUMBERSCANBEDEFINEDBYTHERECURRENCERELATIONSCONSIDERTHEDOUBLEGENERATINGFUNCTIONANDLETTHERECURRENCEABOVEISEQUIVALENTTOTHEEQUATIONTHISEQUATIONUNFORTUNATELYTELLSUSNOTHINGIFWESETBUTWECANPROCEEDBYFACTORINGTHEDENOMINATORASWHERENOTETHATWENOWPROCEEDHEURISTICALLYTHEPROBLEMISTOFINDSOMEVALUEOFSUCHTHATASGIVENBYTHEFORMULAABOVEHASANINFINITEPOWERSERIESEXPANSIONINANDTHEFUNCTIONHASAPOWERSERIESANDMOREOVERFORFIXEDTHEVALUECAUSESTHEDENOMINATOROFTOVANISHTHISSUGGESTSTHATWESHOULDCHOOSESOTHATTHENUMERATORALSOVANISHESWHENINOTHERWORDSWEPROBABLYOUGHTTOTAKEWITHTHISCHOICETHEEQUATIONFORSIMPLIFIESTOTHISISAPOWERSERIESEXPANSIONTHATSATISFIESTHEORIGINALEQUATIONSOWEMUSTHAVEFOUNDTHERIGHTFUNCTIONBALLOTPROBLEMTHECOEFFICIENTSOFARETHESOLUTIONTOOURPROBLEMACTUALLYWECANGOFURTHERANDDERIVEASIMPLEFORMFORALLTHECOEFFICIENTSOFBYTHEBINOMIALTHEOREMLETANDTHENINTHENOTATIONOFEXERCISEGENBINOMHENCEWENOWHAVESOTHEGENERALSOLUTIONISJKICONDITIONMSHOWTHATITISPOSSIBLETOOBTAINAPERMUTATIONFROMUSINGASTACKIFANDONLYIFTHEREARENOINDICESSUCHTHATIFANDWEMUSTHAVETAKENOFFTHESTACKBEFOREWASPUTONIFWEMUSTHAVELEFTONTHESTACKUNTILAFTERWASPUTONCOMBININGTHESETWORULESTHECONDITIONANDISIMPOSSIBLESINCEITMEANSTHATMUSTGOOFFBEFOREANDAFTERYETAPPEARSAFTERCONVERSELYTHEDESIREDPERMUTATIONCANBEOBTAINEDBYUSINGTHEFOLLOWINGALGORITHMFORINPUTZEROORMOREITEMSASMANYASNECESSARYUNTILFIRSTAPPEARSINTHESTACKTHENOUTPUTTHISALGORITHMCANFAILONLYIFWEREACHAFORWHICHISNOTATTHETOPOFTHESTACKBUTITISCOVEREDBYSOMEELEMENTFORSINCETHEVALUESONTHESTACKAREALWAYSMONOTONEINCREASINGWEHAVEANDTHEELEMENTMUSTHAVEGOTTENTHEREBECAUSEITWASLESSTHANFORSOMEPVRAMANANSICOMPHASSHOWNHOWTOCHARACTERIZETHEPERMUTATIONSOBTAINABLEWHENAUXILIARYSTORAGELOCATIONSCANBEUSEDFREELYINADDITIONTOASTACKTHISGENERALIZATIONOFTHEPROBLEMISSURPRISINGLYDIFFICULTCONSIDERTHEPROBLEMOFEXERCISEWITHAQUEUESUBSTITUTEDFORASTACKWHATPERMUTATIONSOFCANBEOBTAINEDWITHUSEOFAQUEUEONLYTHETRIVIALONEBYTHENATUREOFAQUEUECONSIDERTHEPROBLEMOFEXERCISEWITHADEQUESUBSTITUTEDFORASTACKAFINDAPERMUTATIONOFTHATCANBEOBTAINEDWITHANINPUTRESTRICTEDDEQUEBUTITCANNOTBEOBTAINEDWITHANOUTPUTRESTRICTEDDEQUEBFINDAPERMUTATIONOFTHATCANBEOBTAINEDWITHANOUTPUTRESTRICTEDDEQUEBUTNOTWITHANINPUTRESTRICTEDDEQUEASACONSEQUENCEOFAANDBTHEREISDEFINITELYADIFFERENCEBETWEENINPUTRESTRICTEDANDOUTPUTRESTRICTEDDEQUESCFINDAPERMUTATIONOFTHATCANNOTBEOBTAINEDWITHEITHERANINPUTRESTRICTEDORANOUTPUTRESTRICTEDDEQUEANINPUTRESTRICTEDDEQUETHATFIRSTOUTPUTSMUSTSIMPLYPUTTHEVALUESONTHEDEQUEINORDERASITSFIRSTOPERATIONSANOUTPUTRESTRICTEDDEQUETHATFIRSTOUTPUTSMUSTPUTTHEVALUESONITSDEQUEASITSFIRSTOPERATIONSTHEREFOREWEFINDTHEUNIQUEANSWERSABCARETHEREANYPERMUTATIONSOFTHATCANNOTBEOBTAINEDWITHTHEUSEOFADEQUETHATISNEITHERINPUTNOROUTPUTRESTRICTEDWHENNOWHENTHEREAREFOURSEEEXERCISEMLETBETHENUMBEROFPERMUTATIONSONELEMENTSOBTAINABLEBYTHEUSEOFANINPUTRESTRICTEDDEQUENOTETHATASSHOWNINEXERCISESHOWTHATISALSOTHENUMBEROFPERMUTATIONSONELEMENTSWITHANOUTPUTRESTRICTEDDEQUEBYOPERATINGBACKWARDSWECANGETTHEREVERSEOFTHEINVERSEOFTHEREVERSEOFANYINPUTRESTRICTEDPERMUTATIONWITHANOUTPUTRESTRICTEDDEQUEANDCONVERSELYTHISRULESETSUPAONETOONECORRESPONDENCEBETWEENTHETWOSETSOFPERMUTATIONSMSEEEXERCISELETSQANDXDENOTERESPECTIVELYTHEOPERATIONSOFINSERTINGANELEMENTATTHELEFTINSERTINGANELEMENTATTHERIGHTANDEMITTINGANELEMENTFROMTHELEFTOFANOUTPUTRESTRICTEDDEQUEFOREXAMPLETHESEQUENCEQQXSXSXXWILLTRANSFORMTHEINPUTSEQUENCEINTOTHESEQUENCESXQSXSXXGIVESTHESAMETRANSFORMATIONFINDAWAYTODEFINETHECONCEPTOFANADMISSIBLESEQUENCEOFTHESYMBOLSSQANDXSOTHATTHEFOLLOWINGPROPERTYHOLDSEVERYPERMUTATIONOFELEMENTSTHATISATTAINABLEWITHANOUTPUTRESTRICTEDDEQUECORRESPONDSTOPRECISELYONEADMISSIBLESEQUENCEITHERESHOULDBEXSANDCOMBINEDSSANDQSIITHENUMBEROFXSMUSTNEVEREXCEEDTHECOMBINEDNUMBEROFSSANDQSIFWEREADFROMTHELEFTIIIWHENEVERTHENUMBEROFXSEQUALSTHECOMBINEDNUMBEROFSSANDQSREADINGFROMTHELEFTTHENEXTCHARACTERMUSTBEAQIVTHETWOOPERATIONSXQMUSTNEVERBEADJACENTINTHISORDERCLEARLYRULESIANDIIARENECESSARYTHEEXTRARULESIIIANDIVAREADDEDTOREMOVEAMBIGUITYSINCESISTHESAMEASQWHENTHEDEQUEISEMPTYANDSINCEXQCANALWAYSBEREPLACEDBYQXTHUSANYOBTAINABLEPERMUTATIONCORRESPONDSTOATLEASTONEADMISSIBLESEQUENCETOSHOWTHATTWOADMISSIBLESEQUENCESGIVEDIFFERENTPERMUTATIONSCONSIDERSEQUENCESTHATAREIDENTICALUPTOAPOINTANDTHENONESEQUENCEHASANSWHILETHEOTHERHASANXORQSINCEBYIIITHEDEQUEISNOTEMPTYCLEARLYDIFFERENTPERMUTATIONSRELATIVETOTHEORDEROFTHEELEMENTINSERTEDBYSAREOBTAINEDBYTHETWOSEQUENCESTHEREMAININGCASEISWHERESEQUENCESAGREEUPTOAPOINTANDTHENSEQUENCEHASQSEQUENCEHASXSEQUENCEMAYHAVEFURTHERXSATTHISPOINTANDBYIVTHEYMUSTBEFOLLOWEDBYANSSOAGAINTHEPERMUTATIONSAREDIFFERENTSCHROEDERGFMASACONSEQUENCEOFEXERCISESANDTHENUMBERISTHENUMBEROFADMISSIBLESEQUENCESOFLENGTHFINDACLOSEDFORMFORTHEGENERATINGFUNCTIONPROCEEDINGASINEXERCISEWELETBETHENUMBEROFPARTIALADMISSIBLESEQUENCESOFLENGTHLEAVINGELEMENTSONTHEDEQUENOTENDINGINTHESYMBOLXISDEFINEDANALOGOUSLYFORTHOSESEQUENCESTHATDOENDWITHXWEHAVEANDDEFINEANDBYANALOGYWITHTHEDEFINITIONINEXERCISEWEHAVEDOUBLEGENERATINGFUNCTIONSETTINGWEFINDANDCONSEQUENTLYASINEXERCISEWETRYTOCHOOSESOTHATTHENUMERATORCANCELSWITHAFACTOROFTHEDENOMINATORWEFINDWHEREUSINGTHECONVENTIONTHEDESIREDGENERATINGFUNCTIONCOMESTODOUBLEGENERATINGFUNCTIONBYDIFFERENTIATIONWEFINDARECURRENCERELATIONTHATISHANDYFORCALCULATIONANOTHERWAYTOSOLVETHISPROBLEMSUGGESTEDBYVPRATTISTOUSECONTEXTFREEGRAMMARSFORTHESETOFSTRINGSSEECHAPTERTHEINFINITEGRAMMARWITHPRODUCTIONSFORALLANDISUNAMBIGUOUSANDITALLOWSUSTOCOUNTTHENUMBEROFSTRINGSWITHSASINEXERCISESCHROEDERNUMBERSSCHROEDERASYMPCOMPUTETHEASYMPTOTICVALUESOFTHEQUANTITIESANDINEXERCISESANDWEHAVEBYSTIRLINGSFORMULATOANALYZELETUSFIRSTCONSIDERTHEGENERALPROBLEMOFESTIMATINGTHECOEFFICIENTOFINTHEPOWERSERIESFORWHENWEHAVEFORSUFFICIENTLYSMALLWHEREHENCETHEDESIREDCOEFFICIENTISNOWANDBYEQRISINGASYMPTHUSWEOBTAINTHEASYMPTOTICSERIESWHEREFORWEWRITEANDLETOBTAININGTHEASYMPTOTICFORMULAMHOWMANYPERMUTATIONSOFELEMENTSAREOBTAINABLEWITHTHEUSEOFAGENERALDEQUESEEROSENSTIEHLANDTARJANJALGORITHMSFORANALGORITHMTHATDECIDESINSTEPSWHETHERORNOTAGIVENPERMUTATIONISOBTAINABLEVPRATTHASFOUNDTHATAPERMUTATIONISUNOBTAINABLEIFANDONLYIFITCONTAINSASUBSEQUENCEWHOSERELATIVEMAGNITUDESARERESPECTIVELYFORSOMEORTHESAMEWITHTHELASTTWOELEMENTSINTERCHANGEDORWITHTHEANDINTERCHANGEDORBOTHTHUSTHEFORBIDDENPATTERNSFORARESTOCSUPPOSEYOUAREALLOWEDTOUSEONLYSTACKSASDATASTRUCTURESHOWCANYOUIMPLEMENTAQUEUEEFFICIENTLYWITHTWOSTACKSSOLUTIONBYRMELVILLELETANDBESTACKSSUCHTHATTHEQUEUERUNSFROMTOPTOBOTTOMOFFOLLOWEDBYBOTTOMTOTOPOFTOINSERTATTHEREARPUSHONTOTODELETEFROMTHEFRONTPOPTHETOPOFEXCEPTTHATIFISEMPTYFIRSTPOPTHEELEMENTSOFONTOUNTILBECOMESEMPTYEACHELEMENTISFIRSTPUSHEDONTOTHENPOPPEDFROMANDPUSHEDTOTHENPOPPEDFROMWHENLEAVINGTHEQUEUEBUTIFANDAREBOTHEMPTYONEMIGHTPREFERTOPUSHDIRECTLYONTOPERMUTATIONSSTACKPERMUTATIONSOUTPUTRESTRICTEDDEQUEINPUTRESTRICTEDDEQUEDEQUEQUEUESTACKSEQUENTIALALLOCATIONTHESIMPLESTANDMOSTNATURALWAYTOKEEPALINEARLISTINSIDEACOMPUTERISSEQUENTIALALLOCATIONSEQUENTIALLINEARLISTSTACKSEQUENTIALQUEUESEQUENTIALTOPUTTHELISTITEMSINCONSECUTIVELOCATIONSONENODEAFTERTHEOTHERTHENWEWILLHAVEWHEREISTHENUMBEROFWORDSPERNODEUSUALLYWHENITISSOMETIMESMORECONVENIENTTOSPLITASINGLELISTINTOPARALLELLISTSSOTHATTHETHWORDOFNODEXISSTOREDAFIXEDDISTANCEFROMTHELOCATIONOFTHEFIRSTWORDOFJDEPENDINGONWEWILLCONTINUALLYASSUMEHOWEVERTHATADJACENTGROUPSOFWORDSFORMASINGLENODEINGENERALWHEREISACONSTANTCALLEDTHEBASEADDRESSTHELOCATIONOFANARTIFICIALLYASSUMEDNODEXTHISTECHNIQUEFORREPRESENTINGALINEARLISTISSOOBVIOUSANDWELLKNOWNTHATTHERESEEMSTOBENONEEDTODWELLONITATANYLENGTHBUTWEWILLBESEEINGMANYOTHERMORESOPHISTICATEDMETHODSOFREPRESENTATIONLATERONINTHISCHAPTERANDITISAGOODIDEATOEXAMINETHESIMPLECASEFIRSTTOSEEJUSTHOWFARWECANGOWITHITITISIMPORTANTTOUNDERSTANDTHELIMITATIONSASWELLASTHEPOWEROFTHEUSEOFSEQUENTIALALLOCATIONSEQUENTIALALLOCATIONISQUITECONVENIENTFORDEALINGWITHASTACKWESIMPLYHAVEAVARIABLETCALLEDTHESTACKPOINTERWHENTHESTACKISEMPTYWELETTOPLACEANEWELEMENTYONTOPOFTHESTACKINSERTIONONTOSTACKWESETANDWHENTHESTACKISNOTEMPTYWECANSETYEQUALTOTHETOPNODEANDDELETIONFROMSTACKDELETETHATNODEBYREVERSINGTHEACTIONSOFINSIDEACOMPUTERITISUSUALLYMOSTEFFICIENTTOMAINTAINTHEVALUETINSTEADOFTBECAUSEOFSUCHMODIFICATIONSAREEASILYMADESOWEWILLCONTINUEOURDISCUSSIONASTHOUGHTHEREPRESENTATIONOFAQUEUEORAMOREGENERALDEQUEISALITTLETRICKIERANOBVIOUSSOLUTIONISTOKEEPTWOPOINTERSSAYFANDRFORTHEFRONTANDREAROFTHEQUEUEWITHWHENTHEQUEUEISEMPTYTHENINSERTINGANELEMENTATTHEREAROFTHEQUEUEWOULDBEINSERTIONINTOQUEUEREMOVINGTHEFRONTNODEFPOINTSJUSTBELOWTHEFRONTWOULDBEDELETIONFROMQUEUEBUTNOTEWHATCANHAPPENIFRALWAYSSTAYSAHEADOFFSOTHATTHEREISALWAYSATLEASTONENODEINTHEQUEUETHETABLEENTRIESUSEDAREXXXADINFINITUMANDTHISISTERRIBLYWASTEFULOFSTORAGESPACETHESIMPLEMETHODOFANDSHOULDTHEREFOREBEUSEDONLYINTHESITUATIONWHENFISKNOWNTOCATCHUPTORQUITEREGULARLYFOREXAMPLEIFALLDELETIONSCOMEINSPURTSTHATEMPTYTHEQUEUETOCIRCUMVENTTHEPROBLEMOFTHEQUEUEOVERRUNNINGMEMORYWECANSETASIDEMNODESARRANGEDIMPLICITLYINACIRCLEWITHXFOLLOWINGXMTHENPROCESSESANDABOVEBECOMECYCLICQUEUEINSCYCLICQUEUEDELWEHAVEINFACTALREADYSEENCIRCULARQUEUINGACTIONLIKETHISWHENWELOOKEDATINPUTOUTPUTBUFFERINGINSECTIONOURDISCUSSIONSOFARHASBEENVERYUNREALISTICBECAUSEWEHAVETACITLYASSUMEDTHATNOTHINGCOULDGOWRONGWHENWEDELETEDANODEFROMASTACKORQUEUEWEASSUMEDTHATTHEREWASATLEASTONENODEPRESENTWHENWEINSERTEDANODEINTOASTACKORQUEUEWEASSUMEDTHATTHEREWASROOMFORITINMEMORYBUTCLEARLYTHEMETHODOFANDALLOWSATMOSTMNODESINTHEENTIREQUEUEANDMETHODSALLOWTANDRTOREACHONLYACERTAINMAXIMUMAMOUNTWITHINANYGIVENCOMPUTERPROGRAMTHEFOLLOWINGSPECIFICATIONSSHOWHOWTHEACTIONSSHOULDBEREWRITTENFORTHECOMMONCASEWHEREWEDONOTASSUMETHATTHESERESTRICTIONSAREAUTOMATICALLYSATISFIEDASEQSTACKINSASEQSTACKDELASEQQUEUEINSASEQQUEUEDELHEREWEASSUMETHATISTHETOTALAMOUNTOFSPACEQUEUESEQUENTIALOVERFLOWUNDERFLOWDELETIONFROMQUEUEINSERTIONINTOQUEUEDELETIONFROMSTACKINSERTIONONTOSTACKALLOWEDFORTHELISTOVERFLOWANDUNDERFLOWMEANANEXCESSORDEFICIENCYOFITEMSTHEINITIALSETTINGFORTHEQUEUEPOINTERSISNOLONGERVALIDWHENWEUSEAANDABECAUSEOVERFLOWWILLNOTBEDETECTEDWHENWESHOULDSTARTWITHSAYTHEREADERISURGEDTOWORKEXERCISEWHICHDISCUSSESANONTRIVIALASPECTOFTHISSIMPLEQUEUINGMECHANISMTHENEXTQUESTIONISWHATDOWEDOWHENUNDERFLOWOROVERFLOWOCCURSINTHECASEOFUNDERFLOWWEHAVETRIEDTOREMOVEANONEXISTENTITEMTHISISUSUALLYAMEANINGFULCONDITIONNOTANERRORSITUATIONTHATCANBEUSEDTOGOVERNTHEFLOWOFAPROGRAMFOREXAMPLEWEMIGHTWANTTODELETEITEMSREPEATEDLYUNTILUNDERFLOWOCCURSANOVERFLOWSITUATIONHOWEVERISUSUALLYANERRORITMEANSTHATTHETABLEISFULLALREADYYETTHEREISSTILLMOREINFORMATIONWAITINGTOBEPUTINTHEUSUALPOLICYINCASEOFOVERFLOWISTOREPORTRELUCTANTLYTHATTHEPROGRAMCANNOTGOONBECAUSEITSSTORAGECAPACITYHASBEENEXCEEDEDTHENTHEPROGRAMTERMINATESOFCOURSEWEHATETOGIVEUPINANOVERFLOWSITUATIONWHENONLYONEDYNAMICSTORAGEALLOCATIONLISTHASGOTTENTOOLARGEWHILEOTHERLISTSOFTHESAMEPROGRAMMAYVERYWELLHAVEPLENTYOFROOMREMAININGINTHEDISCUSSIONABOVEWEWEREPRIMARILYTHINKINGOFAPROGRAMWITHONLYONELISTHOWEVERWEFREQUENTLYENCOUNTERPROGRAMSTHATINVOLVESEVERALSTACKSEACHOFWHICHHASADYNAMICALLYVARYINGSIZEINSUCHASITUATIONWEDONTWANTTOIMPOSEAMAXIMUMSIZEONEACHSTACKSINCETHESIZEISUSUALLYUNPREDICTABLEANDEVENIFAMAXIMUMSIZEHASBEENDETERMINEDFOREACHSTACKWEWILLRARELYFINDALLSTACKSSIMULTANEOUSLYFILLINGTHEIRMAXIMUMCAPACITYWHENTHEREAREJUSTTWOTWOSTACKSVARIABLESIZELISTSTHEYCANCOEXISTTOGETHERVERYNICELYIFWELETTHELISTSGROWTOWARDEACHOTHERHERELISTEXPANDSTOTHERIGHTANDLISTSTOREDINREVERSEORDEREXPANDSTOTHELEFTOVERFLOWWILLNOTOCCURUNLESSTHETOTALSIZEOFBOTHLISTSEXHAUSTSALLMEMORYSPACETHELISTSMAYINDEPENDENTLYEXPANDANDCONTRACTSOTHATTHEEFFECTIVEMAXIMUMSIZEOFEACHONECOULDBESIGNIFICANTLYMORETHANHALFOFTHEAVAILABLESPACETHISLAYOUTOFMEMORYSPACEISUSEDVERYFREQUENTLYWECANEASILYCONVINCEOURSELVESHOWEVERTHATTHEREISNOWAYTOSTORETHREEORMOREVARIABLESIZESEQUENTIALLISTSINMEMORYSOTHATAOVERFLOWWILLOCCURONLYWHENTHETOTALSIZEOFALLLISTSEXCEEDSTHETOTALSPACEANDBEACHLISTHASAFIXEDLOCATIONFORITSBOTTOMELEMENTWHENTHEREARESAYTENORMOREVARIABLESIZELISTSANDTHISISNOTUNUSUALTHESTORAGEALLOCATIONPROBLEMBECOMESVERYSIGNIFICANTIFWEWISHTOSATISFYCONDITIONAWEMUSTGIVEUPCONDITIONBTHATISWEMUSTALLOWTHEBOTTOMELEMENTSOFTHELISTSTOCHANGETHEIRPOSITIONSTHISMEANSTHATTHELOCATIONOFEQISNOTCONSTANTANYLONGERNOREFERENCETOTHETABLEMAYBEMADETOANABSOLUTEMEMORYADDRESSSINCEALLREFERENCESMUSTBERELATIVETOTHEBASEADDRESSINTHECASEOFTHECODINGTOBRINGTHEITHONEWORDNODEINTOREGISTERAISCHANGEDFROMWHEREBASECONTAINSSUCHRELATIVEADDRESSINGEVIDENTLYTAKESLONGERTHANFIXEDBASEADDRESSINGALTHOUGHITWOULDBEONLYSLIGHTLYSLOWERIFHADANINDIRECTADDRESSINGFEATURESEEEXERCISEANIMPORTANTSPECIALCASEOCCURSWHENEACHOFTHEVARIABLESIZELISTSISASTACKTHENSINCEONLYTHETOPELEMENTOFEACHSTACKISRELEVANTATANYTIMEWECANPROCEEDALMOSTASEFFICIENTLYASBEFORESUPPOSETHATWEHAVESTACKSTHEINSERTIONANDDELETIONALGORITHMSABOVEBECOMETHEFOLLOWINGSTACKSEQUENTIALINSERTIONONTOSTACKDELETIONFROMSTACKUNDERFLOWIFIANDIARELINKVARIABLESFORTHETHSTACKANDIFEACHNODEISONEWORDLONGHEREIISTHEBASELOCATIONOFTHESTSTACKTHECONDITIONIIMEANSTHATSTACKISEMPTYINOVERFLOWISNOLONGERSUCHACRISISASITWASBEFOREWECANREPACKMEMORYMAKINGROOMFORTHETABLETHATOVERFLOWEDBYTAKINGREALLOCATESEQUENTIALTABLESSOMEAWAYFROMTABLESTHATARENTYETFILLEDSEVERALWAYSTODOTHEREPACKINGSUGGESTTHEMSELVESWEWILLNOWCONSIDERSOMEOFTHEMINDETAILSINCETHEYCANBEQUITEIMPORTANTWHENLINEARLISTSAREALLOCATEDSEQUENTIALLYWEWILLSTARTBYGIVINGTHESIMPLESTOFTHEMETHODSANDWILLTHENCONSIDERSOMEOFTHEALTERNATIVESASSUMETHATTHEREARESTACKSANDTHATTHEVALUESBASEANDTOPARETOBETREATEDASINANDTHESESTACKSAREALLSUPPOSEDTOSHAREACOMMONMEMORYAREACONSISTINGOFALLLOCATIONSLWITHHEREANDARECONSTANTSTHATSPECIFYTHETOTALNUMBEROFWORDSAVAILABLEFORUSEWEMIGHTSTARTOUTWITHALLSTACKSEMPTYANDWEALSOSETNSOTHATWILLWORKPROPERLYFORWHENOVERFLOWOCCURSWITHRESPECTTOSTACKTHEREARETHREEPOSSIBILITIESAWEFINDTHESMALLESTFORWHICHANDKKIFANYSUCHEXISTNOWMOVETHINGSUPONENOTCHTHISMUSTBEDONEFORDECREASINGNOTINCREASINGVALUESOFLTOAVOIDLOSINGINFORMATIONITISPOSSIBLETHATKIINWHICHCASENOTHINGNEEDSTOBEMOVEDFINALLYWESETJJANDJJFORBNOCANBEFOUNDASINABUTWEFINDTHELARGESTFORWHICHANDKKNOWMOVETHINGSDOWNONENOTCHTHISMUSTBEDONEFORINCREASINGVALUESOFLTHENSETJJANDJJFORCWEHAVEKKFORALLTHENOBVIOUSLYWECANNOTFINDROOMFORTHENEWSTACKENTRYANDWEMUSTGIVEUPFIGFIGEXAMPLEOFMEMORYCONFIGURATIONAFTERSEVERALINSERTIONSANDDELETIONSFIGUREFIGILLUSTRATESTHECONFIGURATIONOFMEMORYFORTHECASEAFTERTHESUCCESSIVEACTIONSHEREIANDDREFERTOINSERTIONANDDELETIONINSTACKANDANASTERISKREFERSTOANOCCURRENCEOFOVERFLOWASSUMINGTHATNOSPACEISINITIALLYALLOCATEDTOSTACKSANDITISCLEARTHATMANYOFTHEFIRSTSTACKOVERFLOWSTHATOCCURWITHTHISMETHODCOULDBEELIMINATEDIFWECHOSEOURINITIALCONDITIONSWISELYINSTEADOFALLOCATINGALLSPACEINITIALLYTOTHETHSTACKASSUGGESTEDINFOREXAMPLEIFWEEXPECTEACHSTACKTOBEOFTHESAMESIZEWECANSTARTOUTWITHOPERATINGEXPERIENCEWITHAPARTICULARPROGRAMMAYSUGGESTBETTERSTARTINGVALUESHOWEVERNOMATTERHOWWELLTHEINITIALALLOCATIONISSETUPITCANSAVEATMOSTAFIXEDNUMBEROFOVERFLOWSANDTHEEFFECTISNOTICEABLEONLYINTHEEARLYSTAGESOFAPROGRAMRUNSEEEXERCISEANOTHERPOSSIBLEWAYTOIMPROVETHEMETHODABOVEWOULDBETOMAKEROOMFORMORETHANONENEWENTRYEACHTIMEMEMORYISREPACKEDTHISIDEAHASBEENEXPLOITEDBYJGARWICKWHOSUGGESTSACOMPLETEREPACKINGOFMEMORYWHENOVERFLOWOCCURSBASEDONTHECHANGEINSIZEOFEACHSTACKSINCETHELASTREPACKINGHISALGORITHMUSESANADDITIONALARRAYCALLEDOLDTOPWHICHRETAINSTHEVALUETHATTOPHADJUSTAFTERTHEPREVIOUSALLOCATIONOFMEMORYINITIALLYTHETABLESARESETASBEFOREWITHJJTHEALGORITHMPROCEEDSASFOLLOWSALGORITHMGREALLOCATESEQUENTIALTABLESASSUMETHATOVERFLOWHASOCCURREDINSTACKACCORDINGTOAFTERALGORITHMGHASBEENPERFORMEDEITHERWEWILLFINDTHEMEMORYCAPACITYEXCEEDEDORTHEMEMORYWILLHAVEBEENREARRANGEDSOTHATTHEACTIONIMAYBEDONENOTICETHATIHASALREADYBEENINCREASEDINBEFOREALGORITHMGTAKESPLACEGINITIALIZESETTHENDOSTEPGFORTHEEFFECTWILLBETOMAKESUMEQUALTOTHETOTALAMOUNTOFMEMORYSPACELEFTANDINCEQUALTOTHETOTALAMOUNTOFINCREASESINTABLESIZESSINCETHELASTALLOCATIONAFTERTHISHASBEENDONEGOONTOSTEPGGGATHERSTATISTICSSETJJIFJJSETJJJANDJOTHERWISESETJGISMEMORYFULLIFWECANNOTPROCEEDGCOMPUTEALLOCATIONFACTORSSETHEREANDAREFRACTIONSNOTINTEGERSWHICHARETOBECOMPUTEDTOREASONABLEACCURACYTHEFOLLOWINGSTEPAWARDSTHEAVAILABLESPACETOINDIVIDUALLISTSASFOLLOWSAPPROXIMATELYPERCENTOFTHEMEMORYPRESENTLYAVAILABLEWILLBESHAREDEQUALLYAMONGTHELISTSANDTHEOTHERPERCENTWILLBEDIVIDEDPROPORTIONALLYTOTHEAMOUNTOFINCREASEINTABLESIZESINCETHEPREVIOUSALLOCATIONGCOMPUTENEWBASEADDRESSESSETANDTHENFORSETJJJJJANDGREPACKSETIITHISREFLECTSTHETRUESIZEOFTHETHLISTSOTHATNOATTEMPTWILLBEMADETOMOVEINFORMATIONFROMBEYONDTHELISTBOUNDARYPERFORMALGORITHMRBELOWANDTHENRESETIIFINALLYSETJJFORPERHAPSTHEMOSTINTERESTINGPARTOFTHISWHOLEALGORITHMISTHEGENERALREPACKINGPROCESSWHICHWESHALLNOWDESCRIBEREPACKINGISNOTTRIVIALSINCESOMEPORTIONSOFMEMORYSHIFTUPANDOTHERSSHIFTDOWNITISOBVIOUSLYIMPORTANTNOTTOOVERWRITEANYOFTHEGOODINFORMATIONINMEMORYWHILEITISBEINGMOVEDALGORITHMRRELOCATESEQUENTIALTABLESFORTHEINFORMATIONSPECIFIEDBYJANDJINACCORDWITHTHECONVENTIONSSTATEDABOVEISMOVEDTONEWPOSITIONSSPECIFIEDBYJANDTHEVALUESOFJANDJARESUITABLYADJUSTEDTHISALGORITHMISBASEDONTHEEASILYVERIFIEDFACTTHATTHEDATATOBEMOVEDDOWNWARDCANNOTOVERLAPWITHANYDATATHATISTOBEMOVEDUPWARDNORWITHANYDATATHATISSUPPOSEDTOSTAYPUTRINITIALIZESETRFINDSTARTOFSHIFTNOWALLLISTSFROMTOTHATWERETOBEMOVEDDOWNHAVEBEENSHIFTEDINTOTHEDESIREDPOSITIONINCREASEINSTEPSOFUNTILFINDINGEITHERAJJGOTORORBGOTORRSHIFTLISTDOWNSETJJSETFORJJTOPITISPOSSIBLEFORJTOEQUALJINWHICHCASENOACTIONISREQUIREDSETJJJJGOBACKTORRFINDSTARTOFSHIFTNOWALLLISTSFROMTOTHATWERETOBEMOVEDUPHAVEBEENSHIFTEDINTOTHEDESIREDPOSITIONDECREASEINSTEPSOFUNTILFINDINGEITHERAJJGOTORORBTHEALGORITHMTERMINATESRSHIFTLISTUPSETJJSETCONTENTSLFORJJJASINSTEPRNOACTIONMAYACTUALLYBENEEDEDHERESETJJJJGOBACKTORNOTICETHATSTACKNEVERNEEDSTOBEMOVEDTHEREFOREWESHOULDPUTTHELARGESTSTACKFIRSTIFWEKNOWWHICHONEWILLBELARGESTINALGORITHMSGANDRWEHAVEPURPOSELYMADEITPOSSIBLETOHAVEFORTHATISTHESETHREETABLESCANSHARECOMMONMEMORYLOCATIONSSINCETHEIRVALUESARENEVERNEEDEDATCONFLICTINGTIMESWEHAVEDESCRIBEDTHESEREPACKINGALGORITHMSFORSTACKSBUTITISCLEARTHATTHEYCANBEADAPTEDTOANYRELATIVELYADDRESSEDTABLESINWHICHTHECURRENTINFORMATIONISCONTAINEDBETWEENJANDJOTHERPOINTERSFOREXAMPLEFRONTANDREARCOULDALSOBEATTACHEDTOTHELISTSMAKINGTHEMSERVEASAQUEUEORDEQUESEEEXERCISEWHICHCONSIDERSTHECASEOFAQUEUEINDETAILTHEMATHEMATICALANALYSISOFDYNAMICSTORAGEALLOCATIONALGORITHMSLIKETHOSEABOVEISEXTREMELYDIFFICULTSOMEINTERESTINGRESULTSAPPEARINTHEEXERCISESBELOWALTHOUGHTHEYONLYBEGINTOSCRATCHTHESURFACEASFARASTHEGENERALBEHAVIORISCONCERNEDASANEXAMPLEOFTHETHEORYTHATCANBEDERIVEDSUPPOSEWECONSIDERANALYSISOFALGORITHMSTHECASEWHENTHETABLESGROWONLYBYINSERTIONDELETIONSANDSUBSEQUENTINSERTIONSTHATCANCELTHEIREFFECTAREIGNOREDLETUSASSUMEFURTHERTHATEACHTABLEISEXPECTEDTOFILLATTHESAMERATETHISSITUATIONCANBEMODELEDBYIMAGININGASEQUENCEOFINSERTIONOPERATIONSWHEREEACHISANINTEGERBETWEENANDREPRESENTINGANINSERTIONONTOPOFSTACKFOREXAMPLETHESEQUENCEMEANSTWOINSERTIONSTOSTACKFOLLOWEDBYTWOTOSTACKFOLLOWEDBYANOTHERONTOSTACKWECANREGARDEACHOFTHEPOSSIBLESPECIFICATIONSASEQUALLYLIKELYANDTHENWECANASKFORTHEAVERAGENUMBEROFTIMESITISNECESSARYTOMOVEAWORDFROMONELOCATIONTOANOTHERDURINGTHEREPACKINGOPERATIONSASTHEENTIRETABLEISBUILTFORTHEFIRSTALGORITHMSTARTINGWITHALLAVAILABLESPACEGIVENTOTHETHSTACKTHISQUESTIONISANALYZEDINEXERCISEWEFINDTHATTHEAVERAGENUMBEROFMOVEOPERATIONSREQUIREDISTHUSASWEMIGHTEXPECTTHENUMBEROFMOVESISESSENTIALLYPROPORTIONALTOTHESQUAREOFTHENUMBEROFTIMESTHETABLESGROWTHESAMEISTRUEIFTHEINDIVIDUALSTACKSARENTEQUALLYLIKELYSEEEXERCISETHEMORALOFTHESTORYSEEMSTOBETHATAVERYLARGENUMBEROFMOVESWILLBEMADEIFAREASONABLYLARGENUMBEROFITEMSISPUTINTOTHETABLESTHISISTHEPRICEWEMUSTPAYFORTHEABILITYTOPACKALARGENUMBEROFSEQUENTIALTABLESTOGETHERTIGHTLYNOTHEORYHASBEENDEVELOPEDTOANALYZETHEAVERAGEBEHAVIOROFALGORITHMGANDITISUNLIKELYTHATANYSIMPLEMODELWILLBEABLETODESCRIBETHECHARACTERISTICSOFREALLIFETABLESINSUCHANENVIRONMENTHOWEVEREXERCISEPROVIDESAWORSTCASEGUARANTEETHATTHERUNNINGTIMEWILLNOTBETOOBADIFTHEMEMORYDOESNTGETTOOFULLEXPERIENCESHOWSTHATWHENMEMORYISONLYHALFLOADEDTHATISWHENTHEAVAILABLESPACEEQUALSHALFTHETOTALSPACEWENEEDVERYLITTLEREARRANGINGOFTHETABLESWITHALGORITHMGTHEIMPORTANTTHINGISPERHAPSTHATTHEALGORITHMBEHAVESWELLINTHEHALFFULLCASEANDTHATITATLEASTDELIVERSTHERIGHTANSWERSINTHEALMOSTFULLCASEBUTLETUSTHINKABOUTTHEALMOSTFULLCASEMORECAREFULLYWHENTHETABLESNEARLYFILLMEMORYALGORITHMRTAKESRATHERLONGTOPERFORMITSJOBANDTOMAKEMATTERSWORSEOVERFLOWISMUCHMOREFREQUENTJUSTBEFORETHEMEMORYSPACEISUSEDUPTHEREAREVERYFEWPROGRAMSTHATWILLCOMECLOSETOFILLINGMEMORYWITHOUTSOONTHEREAFTERCOMPLETELYOVERFLOWINGITANDTHOSETHATDOOVERFLOWMEMORYWILLPROBABLYWASTEENORMOUSAMOUNTSOFTIMEINALGORITHMSGANDRJUSTBEFOREMEMORYISOVERRUNUNFORTUNATELYUNDEBUGGEDREALLOCATESEQUENTIALTABLESPROGRAMSWILLFREQUENTLYOVERFLOWMEMORYCAPACITYTOAVOIDWASTINGALLTHISTIMEAPOSSIBLESUGGESTIONWOULDBETOSTOPALGORITHMGINSTEPGIFSUMISLESSTHANWHERETHELATTERISCHOSENBYTHEPROGRAMMERTOPREVENTEXCESSIVEREPACKINGWHENTHEREAREMANYVARIABLESIZESEQUENTIALTABLESWESHOULDNOTEXPECTTOMAKEUSEOFPERCENTOFTHEMEMORYSPACEBEFORESTORAGEISEXCEEDEDFURTHERSTUDYOFALGORITHMGHASBEENMADEBYDSWISEANDDCWATSONBITSEEALSOASFRAENKELINFPROCLETTERSWHOSUGGESTSWORKINGWITHPAIRSOFSTACKSTHATGROWTOWARDSEACHOTHERTWOSTACKSEXERCISESINTHEQUEUEOPERATIONSGIVENBYAANDAHOWMANYITEMSCANBEINTHEQUEUEATONETIMEWITHOUTOVERFLOWOCCURRINGQUEUESEQUENTIALOVERFLOWNOTMIFWEALLOWEDMITEMSASANDDOITWOULDBEIMPOSSIBLETODISTINGUISHANEMPTYQUEUEFROMAFULLONEBYEXAMINATIONOFRANDFSINCEONLYMPOSSIBILITIESCANBEDETECTEDITISBETTERTOGIVEUPONESTORAGECELLTHANTOMAKETHEPROGRAMOVERLYCOMPLICATEDGENERALIZETHEMETHODOFAANDASOTHATITWILLAPPLYTOANYDEQUEWITHFEWERTHANMELEMENTSINOTHERWORDSGIVESPECIFICATIONSFORTHEOTHERTWOOPERATIONSDELETEFROMREARANDINSERTATFRONTDEQUESEQUENTIALINSERTIONINTODEQUEDELETIONFROMDEQUEDELETEFROMREARIFRFTHENUNDERFLOWIFRTHENOTHERWISEINSERTATFRONTSETIFFTHENOTHERWISEIFTHENOVERFLOWINDIRECTADSUPPOSETHATISEXTENDEDASFOLLOWSTHEIFIELDMIXEXTENSIONINDIRECTADDRESSINGOFEACHINSTRUCTIONISTOHAVETHEFORMWHEREINASSEMBLYLANGUAGEONEWRITESOPADDRESSIIORASPRESENTLYOPADDRESSIIFTHEMEANINGISTOPERFORMFIRSTTHEADDRESSMODIFICATIONIONADDRESSTHENTOPERFORMTHEADDRESSMODIFICATIONIONTHERESULTINGADDRESSANDFINALLYTOPERFORMTHEOPWITHTHENEWADDRESSTHEADDRESSMODIFICATIONSAREDEFINEDASFOLLOWSHEREADENOTESTHEADDRESSBEFORETHEOPERATIONANDMDENOTESTHERESULTINGADDRESSAFTERTHEADDRESSMODIFICATIONINALLCASESTHERESULTISUNDEFINEDIFTHEVALUEOFMDOESNOTFITINTWOBYTESANDASIGNTHEEXECUTIONTIMEISINCREASEDBYONEUNITFOREACHINDIRECTADDRESSINGMODIFICATIONOPERATIONPERFORMEDASANONTRIVIALEXAMPLESUPPOSETHATLOCATIONCONTAINSNOPLOCATIONCONTAINSNOPANDINDEXREGISTERSANDRESPECTIVELYCONTAINANDTHENTHECOMMANDLDAISEQUIVALENTTOLDABECAUSEAUSINGTHISINDIRECTADDRESSINGFEATUREIFNECESSARYSHOWHOWTOSIMPLIFYTHECODINGONTHERIGHTHANDSIDEOFSOTHATTWOINSTRUCTIONSARESAVEDPERREFERENCETOTHETABLEHOWMUCHFASTERISYOURCODETHANBSUPPOSETHEREARESEVERALTABLESWHOSEBASEADDRESSESARESTOREDINLOCATIONSHOWCANTHEINDIRECTADDRESSINGFEATUREBEUSEDTOBRINGTHEITHELEMENTOFTHEJTHTABLEINTOREGISTERAINONEINSTRUCTIONASSUMINGTHATIISINRIANDJISINRICWHATISTHEEFFECTOFTHEINSTRUCTIONENTXASSUMINGTHATTHEFIELDINLOCATIONXISZEROALDILDABASETHISTAKESCYCLESINSTEADOFORASINBSOLUTIONLDABASEWHEREEACHBASEADDRESSISSTOREDWITHSOLUTIONIFITISDESIREDTOSTORETHEBASEADDRESSESWITHWECOULDWRITELDAXWHERELOCATIONXCONTAINSNOPBASETHESECONDSOLUTIONTAKESONEMORECYCLEBUTITALLOWSTHEBASETABLETOBEUSEDWITHANYINDEXREGISTERSCTHISISEQUIVALENTTOLDXANDTAKESTHESAMEEXECUTIONTIMEEXCEPTTHATRIWILLBESETTOWHENXCONTAINSINDIRECTADASSUMETHATHASBEENEXTENDEDASINEXERCISESHOWHOWTOGIVEASINGLEINSTRUCTIONPLUSAUXILIARYCONSTANTSFOREACHOFTHEFOLLOWINGACTIONSATOLOOPINDEFINITELYBECAUSEINDIRECTADDRESSINGNEVERTERMINATESBTOBRINGINTOREGISTERATHEVALUELINKLINKWHERETHEVALUEOFLINKVARIABLEISSTOREDINTHEFIELDOFTHELOCATIONWHOSESYMBOLICADDRESSISXTHEVALUEOFLINKISSTOREDINTHEFIELDOFLOCATIONETCASSUMINGTHATTHEFIELDSINTHESELOCATIONSAREZEROCTOBRINGINTOREGISTERATHEVALUELINKLINKLINKUNDERASSUMPTIONSLIKETHOSEINBDTOBRINGINTOREGISTERATHECONTENTSOFLOCATIONETOQUADRUPLETHECURRENTVALUEOFRIANOPBLDAXCTHISISIMPOSSIBLETHECODELDAYWHERELOCATIONYCONTAINSNOPXBREAKSTHERESTRICTIONONSEEEXERCISEDLDAXWITHTHEAUXILIARYCONSTANTSTHEEXECUTIONTIMEISUNITSEINCXWHEREXCONTAINSNOPINDIRECTADTHEEXTENSIONOFSUGGESTEDINEXERCISEHASANUNFORTUNATERESTRICTIONTHATISNOTALLOWEDINANINDIRECTLYADDRESSEDLOCATIONAGIVEANEXAMPLETOINDICATETHATWITHOUTTHISRESTRICTIONITWOULDPROBABLYBENECESSARYFORTHEHARDWARETOBECAPABLEOFMAINTAININGALONGINTERNALSTACKOFTHREEBITITEMSTHISWOULDBEPROHIBITIVELYEXPENSIVEHARDWAREEVENFORAMYTHICALCOMPUTERLIKEBEXPLAINWHYSUCHASTACKISNOTNEEDEDUNDERTHEPRESENTRESTRICTIONINOTHERWORDSDESIGNANALGORITHMWITHWHICHTHEHARDWAREOFACOMPUTERCOULDPERFORMTHEDESIREDADDRESSMODIFICATIONSWITHOUTMUCHADDITIONALREGISTERCAPACITYCGIVEAMILDERRESTRICTIONTHANTHATOFEXERCISEONTHEUSEOFTHATALLEVIATESTHEDIFFICULTIESOFEXERCISECYETCANBECHEAPLYIMPLEMENTEDINCOMPUTERHARDWAREINDIRECTADDRESSINGMIXEXTENSIONHARDWAREORIENTEDALGORITHMACONSIDERTHEINSTRUCTIONENTAWITHTHEMEMORYCONFIGURATIONANDWITHWEFINDTHATAFASTERWAYTODOTHISDERIVATIONBYHANDWOULDBETOEVALUATESUCCESSIVELYTHEADDRESSESSPECIFIEDINLOCATIONSINTHISORDERBUTACOMPUTEREVIDENTLYNEEDSTOGOABOUTTHEEVALUATIONESSENTIALLYASSHOWNTHEAUTHORTRIEDOUTSEVERALFANCYSCHEMESFORCHANGINGTHECONTENTSOFMEMORYWHILEEVALUATINGTHEADDRESSWITHEVERYTHINGTOBERESTOREDAGAINBYTHETIMETHEFINALADDRESSHASBEENOBTAINEDSIMILARALGORITHMSAPPEARINSECTIONHOWEVERTHESEATTEMPTSWEREUNFRUITFULANDITAPPEARSTHATTHEREISJUSTNOTENOUGHROOMTOSTORETHENECESSARYINFORMATIONBCLETHANDCBEAUXILIARYREGISTERSANDLETNBEACOUNTERTOGETTHEEFFECTIVEADDRESSMFORTHEINSTRUCTIONINLOCATIONLDOTHEFOLLOWINGAAINITIALIZESETINTHISALGORITHMCISTHECURRENTLOCATIONHISUSEDTOADDTOGETHERTHECONTENTSOFVARIOUSINDEXREGISTERSANDNMEASURESTHEDEPTHOFINDIRECTADDRESSINGAEXAMINEADDRESSSETIFSETIFSETIFSETAINDIRECTIFEITHERICOREQUALSSETANDGOTOAOTHERWISESETAREDUCEDEPTHIFSETANDGOTOAOTHERWISEMISTHEDESIREDANSWERTHISALGORITHMWILLHANDLEANYSITUATIONCORRECTLYEXCEPTTHOSEINWHICHANDANDTHEEVALUATIONOFTHEADDRESSINADDRESSINVOLVESACASEWITHTHEEFFECTISASIFIWEREZEROTOUNDERSTANDTHEOPERATIONOFALGORITHMACONSIDERTHENOTATIONOFPARTATHESTATELISREPRESENTEDBYCORTHENUMBEROFTRAILINGSANDTHEPOSTINDEXINGINASOLUTIONTOPARTBOFTHISEXERCISETHECOUNTERNWILLALWAYSBEEITHERORSTARTINGWITHTHEMEMORYCONFIGURATIONSHOWNINFIGFIGDETERMINEWHICHOFTHEFOLLOWINGSEQUENCESOFOPERATIONSCAUSESOVERFLOWORUNDERFLOWAIBICIDIIIIIEDDIIICCAUSESOVERFLOWECAUSESUNDERFLOWANDIFTHEPROGRAMRESUMESITCAUSESOVERFLOWONTHEFINALSTEPGOFALGORITHMGINDICATESADIVISIONBYTHEQUANTITYINCCANINCEVERBEZEROATTHATPOINTINTHEALGORITHMNOSINCETOPMUSTBEGREATERTHANOLDTOPEXPLAINHOWTOMODIFYANDTHEREPACKINGALGORITHMSFORTHECASETHATONEORMOREOFTHELISTSISAQUEUEBEINGHANDLEDCIRCULARLYASINAANDAQUEUESEQUENTIALWITHASTACKTHEUSEFULINFORMATIONAPPEARSATONEENDWITHTHEVACANTINFORMATIONATTHEOTHERWHEREJJJWITHAQUEUEORDEQUETHEUSEFULINFORMATIONAPPEARSATTHEENDSWITHTHEVACANTINFORMATIONSOMEWHEREINTHEMIDDLEORINTHEMIDDLEWITHTHEVACANTINFORMATIONATTHEENDSWHEREJJJJTHETWOCASESAREDISTINGUISHEDBYTHECONDITIONSANDRESPECTIVELYINANONEMPTYQUEUEORIFTHEQUEUEISKNOWNNOTTOHAVEOVERFLOWEDTHEDISTINGUISHINGCONDITIONSARERESPECTIVELYANDTHEALGORITHMSSHOULDTHEREFOREBEMODIFIEDINANOBVIOUSWAYSOASTOWIDENORNARROWTHEGAPSOFVACANTINFORMATIONTHUSINCASEOFOVERFLOWWHENWEMAKEEMPTYSPACEBETWEENANDBYMOVINGONEPARTANDNOTTHEOTHERINTHECALCULATIONOFSUMANDDINSTEPGEACHQUEUESHOULDBECONSIDEREDTOOCCUPYONEMORECELLTHANITREALLYDOESSEEEXERCISESIMPLEMOVEANALMUSINGTHEMATHEMATICALMODELDESCRIBEDNEARTHEENDOFTHETEXTPROVETHATEQISTHEEXPECTEDNUMBEROFMOVESNOTETHATTHESEQUENCESPECIFIESMOVESGIVENANYSEQUENCESPECIFICATIONTHEREISONEMOVEOPERATIONREQUIREDFOREVERYPAIRSUCHTHATANDSUCHAPAIRISCALLEDANINVERSIONSEESECTIONTHENUMBEROFSUCHPAIRSISTHEREFORETHENUMBEROFMOVESREQUIREDNOWIMAGINEALLSPECIFICATIONSWRITTENOUTANDFOREACHOFTHEPAIRSWITHCOUNTHOWMANYSPECIFICATIONSHAVECLEARLYTHISEQUALSTHENUMBEROFCHOICESFORANDTIMESTHENUMBEROFWAYSTOFILLINTHEREMAININGPLACESHENCETHETOTALNUMBEROFMOVESAMONGALLSPECIFICATIONSISDIVIDETHISBYTOGETTHEAVERAGEEQMMODIFYTHEMATHEMATICALMODELOFEXERCISESOTHATSOMETABLESANALYSISOFALGORITHMSAREEXPECTEDTOBELARGERTHANOTHERSLETBETHEPROBABILITYTHATFORTHUSTHEPREVIOUSEXERCISECONSIDEREDTHESPECIALCASEFORALLDETERMINETHEEXPECTEDNUMBEROFMOVESASINEQFORTHISMOREGENERALCASEITISPOSSIBLETOREARRANGETHERELATIVEORDEROFTHELISTSSOTHATTHELISTSEXPECTEDTOBELONGERAREPUTTOTHERIGHTORTOTHELEFTOFTHELISTSTHATAREEXPECTEDTOBESHORTERWHATRELATIVEORDERFORTHELISTSWILLMINIMIZETHEEXPECTEDNUMBEROFMOVESBASEDONASINEXERCISEWEFINDTHATTHEEXPECTEDVALUEISFORTHISMODELITMAKESABSOLUTELYNODIFFERENCEWHATTHERELATIVEORDEROFTHELISTSISAMOMENTSREFLECTIONEXPLAINSWHYIFWECONSIDERALLPOSSIBLEPERMUTATIONSOFAGIVENSEQUENCEWEFINDTHATTHETOTALNUMBEROFMOVESSUMMEDOVERALLTHESEPERMUTATIONSDEPENDSONLYONTHENUMBEROFPAIRSOFDISTINCTELEMENTSMGENERALIZETHEARGUMENTOFEXERCISESOTHATTHEFIRSTINSERTIONSINANYSTACKCAUSENOMOVEMENTWHILESUBSEQUENTINSERTIONSAREUNAFFECTEDTHUSIFTHESEQUENCEINEXERCISESPECIFIESMOVESWHATISTHEAVERAGETOTALNUMBEROFMOVESUNDERTHISASSUMPTIONTHISISANAPPROXIMATIONTOTHEBEHAVIOROFTHEALGORITHMWHENEACHSTACKSTARTSWITHAVAILABLESPACESCOUNTINGASBEFOREWEFINDTHATTHEEXPECTEDNUMBERISHEREISTHENUMBEROFENTRIESINTHATEQUALTHISQUANTITYCANALSOBEEXPRESSEDINTHESIMPLERFORMISTHEREASIMPLERWAYYETTOGIVETHEANSWERAPPARENTLYNOTSINCETHEGENERATINGFUNCTIONFORGIVENANDISMTHEADVANTAGEOFHAVINGTWOTABLESCOEXISTINMEMORYBYTWOSTACKSGROWINGTOWARDSEACHOTHERRATHERTHANBYHAVINGTHEMKEPTINSEPARATEINDEPENDENTLYBOUNDEDAREASMAYBEQUANTITATIVELYESTIMATEDTOACERTAINEXTENTASFOLLOWSUSETHEMODELOFEXERCISEWITHFOREACHOFTHEEQUALLYPROBABLESEQUENCESLETTHEREBESANDSHEREANDARETHERESPECTIVESIZESOFTHETWOTABLESAFTERTHEMEMORYISFULLWEAREABLETORUNTHEALGORITHMWITHLOCATIONSWHENTHETABLESAREADJACENTINSTEADOFLOCATIONSTOGETTHESAMEEFFECTWITHSEPARATETABLESWHATISTHEAVERAGEVALUEOFIFTHEAVERAGEISTIMESTHELATTERSUMISASIMILARARGUMENTMAYBEUSEDWHENTHEANSWERISTHEVALUEINVESTIGATEDINEXERCISEWILLBEEVENGREATERIFLARGERFLUCTUATIONSINTHETABLESAREINTRODUCEDBYALLOWINGRANDOMDELETIONSASWELLASRANDOMINSERTIONSSUPPOSEWEALTERTHEMODELSOTHATWITHPROBABILITYTHESEQUENCEVALUEISINTERPRETEDASADELETIONINSTEADOFANINSERTIONTHEPROCESSCONTINUESUNTILTHETOTALNUMBEROFTABLELOCATIONSINUSEEQUALSADELETIONFROMANEMPTYLISTCAUSESNOEFFECTFOREXAMPLEIFITCANBESHOWNTHATWEGETTHEFOLLOWINGPROBABILITYDISTRIBUTIONWHENTHEPROCESSSTOPSTHUSASINCREASESTHEDIFFERENCEBETWEENANDTENDSTOINCREASEITISNOTDIFFICULTTOSHOWTHATINTHELIMITASAPPROACHESUNITYTHEDISTRIBUTIONOFBECOMESESSENTIALLYUNIFORMANDTHELIMITINGEXPECTEDVALUEOFUNIFORMDISTRIBUTIONISEXACTLYTHISBEHAVIORISQUITEDIFFERENTFROMTHATINTHEPREVIOUSEXERCISEWHENHOWEVERITMAYNOTBEEXTREMELYSIGNIFICANTSINCEWHENAPPROACHESUNITYTHEAMOUNTOFTIMETAKENTOTERMINATETHEPROCESSRAPIDLYAPPROACHESINFINITYTHEPROBLEMPOSEDINTHISEXERCISEISTOEXAMINETHEDEPENDENCEOFONANDANDTODETERMINEASYMPTOTICFORMULASFORFIXEDLIKEASAPPROACHESINFINITYTHECASEISPARTICULARLYINTERESTINGACYAOHASPROVEDTHATWEHAVEFORLARGEWHENSICOMPANDPFLAJOLETHASEXTENDEDTHEANALYSISSHOWINGINPARTICULARTHATTHEEXPECTEDVALUEISASYMPTOTICALLYWHENWHEREMOREOVERWHENTHEFINALVALUEOFTENDSTOBEUNIFORMLYDISTRIBUTEDASSOSEELECTURENOTESINCOMPSCIGENERALIZETHERESULTOFEXERCISETOARBITRARYBYSHOWINGTHATWHENISFIXEDANDAPPROACHESINFINITYTHEQUANTITYHASTHEASYMPTOTICFORMDETERMINETHECONSTANTSANDLETTHISIDEAWASSUGGESTEDBYNGDEBRUIJNSTIRLINGSAPPROXIMATIONIMPLIESTHATWHENANDWHENTHESAREUNIFORMLYBOUNDEDTHESUMOFTHELATTERQUANTITYOVERALLNONNEGATIVESATISFYINGTHISCONDITIONISANAPPROXIMATIONTOARIEMANNINTEGRALWEMAYDEDUCETHATTHEASYMPTOTICBEHAVIOROFTHESUMISWHERESINCEITISPOSSIBLETOSHOWTHATTHECORRESPONDINGSUMSCOMEWITHINOFANDFORANYWEKNOWTHATSINCETHECORRESPONDINGSUMCANBEEVALUATEDEXPLICITLYTHEINTEGRALTHATAPPEARSINTHEEXPRESSIONFOREQUALSWHEREWEMAYMAKETHESUBSTITUTIONTHENWEFINDWHEREANDNOWBYSYMMETRYISTIMESTHESAMEINTEGRALWITHREPLACEDBYHENCEWHEREHEREISWITHREPLACEDBYZEROWHENLETNOWLETTHENANDWEDEDUCETHATWHEREWHEREISTHESOLIDANGLEINDIMENSIONALSPACESPANNEDBYTHEVECTORSDIVIDEDBYTHETOTALSOLIDANGLEOFTHEWHOLESPACEHENCEWEHAVEANDTHEVALUEOFWASFOUNDBYROBERTMKOZELKAANNALSOFMATHSTATBUTTHESOLUTIONTOTHISPROBLEMFORHIGHERVALUESOFHASAPPARENTLYNEVERAPPEAREDINTHELITERATUREUSINGAMONTECARLOMETHODSIMULATETHEBEHAVIOROFALGORITHMGUNDERVARYINGDISTRIBUTIONSOFINSERTIONSANDDELETIONSWHATDOYOUREXPERIMENTSIMPLYABOUTTHEEFFICIENCYOFALGORITHMGCOMPAREITSPERFORMANCEWITHTHEALGORITHMGIVENEARLIERTHATSHIFTSUPANDDOWNONENODEATATIMETHETEXTILLUSTRATESHOWTWOSTACKSCANBELOCATEDSOTHEYGROWTOWARDSEACHOTHERTHEREBYMAKINGEFFICIENTUSEOFACOMMONMEMORYAREACANTWOQUEUESORASTACKANDAQUEUEMAKEUSEOFACOMMONMEMORYAREAWITHTHESAMEEFFICIENCYTWOSTACKSQUEUESEQUENTIALNOTUNLESSTHEQUEUESMEETTHERESTRICTIONSTHATAPPLYTOTHEPRIMITIVEMETHODOFANDIFISANYSEQUENCEOFINSERTIONSANDDELETIONSSUCHASLETBETHENUMBEROFSTACKOVERFLOWSTHATOCCURWHENTHESIMPLEMETHODOFFIGFIGISAPPLIEDTOWITHINITIALCONDITIONSANDLETBETHECORRESPONDINGNUMBEROFOVERFLOWSWITHRESPECTTOOTHERINITIALCONDITIONSSUCHASSTACKSEQUENTIALPROVETHATFIRSTSHOWTHATJJATALLTIMESTHENOBSERVETHATEACHOVERFLOWFORSTACKINTHATDOESNOTALSOOVERFLOWINOCCURSATATIMEWHENSTACKHASGOTTENLARGERTHANEVERBEFOREYETITSNEWSIZEISNOTMORETHANTHEORIGINALSIZEALLOCATEDTOSTACKINMSHOWTHATTHETOTALRUNNINGTIMEFORANYSEQUENCEOFINSERTIONSANDORDELETIONSBYALGORITHMSGANDRISWHEREISTHEFRACTIONOFMEMORYOCCUPIEDONTHEMOSTRECENTREPACKINGPREVIOUSTOTHETHOPERATIONBEFORETHEFIRSTREPACKINGTHEREFOREIFTHEMEMORYNEVERGETSMORETHANSAYFULLEACHOPERATIONTAKESATMOSTUNITSOFTIMEINANAMORTIZEDSENSEREGARDLESSOFTHETOTALMEMORYSIZEASSUMETHATSUPPOSETHECOSTOFANINSERTIONISPLUSIFREPACKINGISNEEDEDWHEREISTHENUMBEROFOCCUPIEDCELLSLETTHEDELETIONCOSTBEAFTERAREPACKINGTHATLEAVESCELLSOCCUPIEDANDCELLSVACANTIMAGINETHATEACHINSERTIONUNTILTHENEXTREPACKINGCOSTSWHEREIFINSERTIONSANDDELETIONSOCCURBEFORETHATREPACKINGTHEIMAGINEDCOSTISWHILETHEACTUALCOSTISTHELATTERISLESSTHANTHEIMAGINEDCOSTBECAUSEOURASSUMPTIONTHATIMPLIESTHATORIGININDEXINGEXPERIENCEDPROGRAMMERSLEARNTHATITISGENERALLYWISETODENOTETHEELEMENTSOFALINEARLISTBYXXXINSTEADOFUSINGTHEMORETRADITIONALNOTATIONXXXTHENFOREXAMPLETHEBASEADDRESSINPOINTSTOTHESMALLESTCELLOFTHEARRAYREVISETHEINSERTIONANDDELETIONMETHODSAAAANDAFORSTACKSANDQUEUESSOTHATTHEYCONFORMTOTHISCONVENTIONINOTHERWORDSCHANGETHEMSOTHATTHELISTELEMENTSWILLAPPEARINTHEARRAYXXXINSTEADOFXXXMINSERTONTOSTACKINSERTINTOQUEUEDELETEFROMSTACKDELETEFROMQUEUEWECOULDSIMPLYDECREASEALLTHESUBSCRIPTSBYTHEFOLLOWINGSOLUTIONISSLIGHTLYNICERINITIALLYPUSHYONTOSTACKXIFTHENOVERFLOWPOPYFROMSTACKXIFTHENUNDERFLOWINSERTYINTOQUEUEXIFTHENOVERFLOWDELETEYFROMQUEUEXIFTHENUNDERFLOWASBEFORETISTHENUMBEROFELEMENTSONTHESTACKANDISTHENUMBEROFELEMENTSONTHEQUEUEBUTTHETOPSTACKELEMENTISNOWXNOTXTEVENTHOUGHITISALMOSTALWAYSBETTERFORCOMPUTERSCIENTISTSTOSTARTCOUNTINGATTHERESTOFTHEWORLDWILLPROBABLYNEVERCHANGETOORIGININDEXINGEVENEDSGERDIJKSTRACOUNTSWHENHEPLAYSTHEPIANODYNAMICSTORAGEALLOCATIONSEQUENTIALLINEARLISTLINKEDALLOCATIONLINKEDALLOCATIONSEQUENTIALVSLINKEDSTRAIGHTLINKAGEINSTEADOFKEEPINGALINEARLISTINSEQUENTIALMEMORYLOCATIONSWECANMAKEUSEOFAMUCHMOREFLEXIBLESCHEMEINWHICHEACHNODECONTAINSALINKTOTHENEXTNODEOFTHELISTHEREABCDANDEAREARBITRARYLOCATIONSINTHEMEMORYANDISTHENULLLINKSEESECTIONTHEPROGRAMTHATUSESTHISTABLEINTHECASEOFSEQUENTIALALLOCATIONWOULDHAVEANADDITIONALVARIABLEORCONSTANTWHOSEVALUEINDICATESTHATTHETABLEISFIVEITEMSINLENGTHORELSETHISINFORMATIONWOULDBESPECIFIEDBYASENTINELCODEWITHINITEMORINTHEFOLLOWINGLOCATIONAPROGRAMFORLINKEDALLOCATIONWOULDHAVEALINKVARIABLEORLINKCONSTANTTHATPOINTSTOAALLTHEOTHERITEMSOFTHELISTCANBEFOUNDFROMADDRESSARECALLFROMSECTIONTHATLINKSAREOFTENSHOWNSIMPLYBYARROWSSINCETHEACTUALMEMORYLOCATIONSOCCUPIEDAREUSUALLYIRRELEVANTTHELINKEDTABLEABOVEMIGHTTHEREFOREBESHOWNASFOLLOWSHEREFIRSTISALINKVARIABLEPOINTINGTOTHEFIRSTNODEOFTHELISTWECANMAKESEVERALOBVIOUSCOMPARISONSBETWEENTHESETWOBASICFORMSOFSTORAGELINKEDALLOCATIONTAKESUPADDITIONALMEMORYSPACEFORTHELINKSTHISCANBETHEDOMINATINGFACTORINSOMESITUATIONSHOWEVERWEFREQUENTLYFINDTHATTHEINFORMATIONINANODEDOESNOTTAKEUPAWHOLEWORDANYWAYSOTHEREISALREADYSPACEFORALINKFIELDPRESENTALSOITISPOSSIBLEINMANYLINKEDMEMORYPHILOSOPHYAPPLICATIONSTOCOMBINESEVERALITEMSINTOONENODESOTHATTHEREISONLYONELINKFORSEVERALITEMSOFINFORMATIONSEEEXERCISEOPTNODESIZEBUTEVENMOREIMPORTANTLYTHEREISOFTENANIMPLICITGAININSTORAGEBYTHELINKEDMEMORYAPPROACHSINCETABLESCANOVERLAPSHARINGCOMMONPARTSANDINMANYCASESSEQUENTIALALLOCATIONWILLNOTBEASEFFICIENTASLINKEDALLOCATIONUNLESSARATHERLARGENUMBEROFADDITIONALMEMORYLOCATIONSARELEFTVACANTANYWAYFOREXAMPLETHEDISCUSSIONATTHEENDOFTHEPREVIOUSSECTIONEXPLAINSWHYTHESYSTEMSDESCRIBEDTHEREARENECESSARILYINEFFICIENTWHENMEMORYISDENSELYLOADEDITISEASYTODELETEANITEMFROMWITHINALINKEDLISTDELETIONFROMLINKEDLISTFOREXAMPLETODELETEITEMWENEEDONLYCHANGETHELINKASSOCIATEDWITHITEMBUTWITHSEQUENTIALALLOCATIONSUCHADELETIONGENERALLYIMPLIESMOVINGALARGEPARTOFTHELISTUPINTODIFFERENTLOCATIONSITISEASYTOINSERTANITEMINTOTHEMIDSTOFALISTWHENINSERTIONINTOLINKEDLISTTHELINKEDSCHEMEISBEINGUSEDFOREXAMPLETOINSERTANITEMINTOWENEEDTOCHANGEONLYTWOLINKSBYCOMPARISONTHISOPERATIONWOULDBEEXTREMELYTIMECONSUMINGINALONGSEQUENTIALTABLEREFERENCESTORANDOMPARTSOFTHELISTAREMUCHFASTERINTHESEQUENTIALCASETOGAINACCESSTOTHETHITEMINTHELISTWHENISAVARIABLETAKESAFIXEDTIMEINTHESEQUENTIALCASEBUTWENEEDITERATIONSTOMARCHDOWNTOTHERIGHTPLACEINTHELINKEDCASETHUSTHEUSEFULNESSOFLINKEDMEMORYISPREDICATEDONTHEFACTTHATINTHELARGEMAJORITYOFAPPLICATIONSWEWANTTOWALKTHROUGHLISTSSEQUENTIALLYNOTRANDOMLYIFITEMSINTHEMIDDLEORATTHEBOTTOMOFTHELISTARENEEDEDWETRYTOKEEPANADDITIONALLINKVARIABLEORLISTOFLINKVARIABLESPOINTINGTOTHEPROPERPLACESTHELINKEDSCHEMEMAKESITEASIERTOJOINTWOLISTSTOGETHERORTOBREAKONEAPARTINTOTWOTHATWILLGROWINDEPENDENTLYTHELINKEDSCHEMELENDSITSELFIMMEDIATELYTOMOREINTRICATESTRUCTURESTHANSIMPLELINEARLISTSWECANHAVEAVARIABLENUMBEROFVARIABLESIZELISTSANYNODEOFTHELISTMAYBEASTARTINGPOINTFORANOTHERLISTTHENODESMAYSIMULTANEOUSLYBELINKEDTOGETHERINSEVERALORDERSCORRESPONDINGTODIFFERENTLISTSANDSOONSIMPLEOPERATIONSLIKEPROCEEDINGSEQUENTIALLYTHROUGHALISTARESLIGHTLYFASTERFORSEQUENTIALLISTSONMANYCOMPUTERSFORTHECOMPARISONISBETWEENINCANDLDLINKWHICHISONLYONECYCLEDIFFERENTBUTMANYMACHINESDONOTENJOYTHEPROPERTYOFBEINGABLETOLOADANINDEXREGISTERFROMANINDEXEDLOCATIONIFTHEELEMENTSOFALINKEDLISTBELONGTODIFFERENTPAGESINABULKMEMORYTHEMEMORYACCESSESMIGHTTAKESIGNIFICANTLYLONGERTHUSWESEETHATTHELINKINGTECHNIQUEWHICHFREESUSFROMANYCONSTRAINTSIMPOSEDBYTHECONSECUTIVENATUREOFCOMPUTERMEMORYGIVESUSAGOODDEALMOREEFFICIENCYINSOMEOPERATIONSWHILEWELOSESOMECAPABILITIESINOTHERCASESITISUSUALLYCLEARWHICHALLOCATIONTECHNIQUEWILLBEMOSTAPPROPRIATEINAGIVENSITUATIONANDBOTHMETHODSAREOFTENUSEDINDIFFERENTLISTSOFTHESAMEPROGRAMINTHENEXTFEWEXAMPLESWEWILLASSUMEFORCONVENIENCETHATANODEHASONEWORDANDTHATITISBROKENINTOTHETWOFIELDSINFOANDLINKSEQUENTIALVSLINKEDLINKEDALLOCATIONTHEUSEOFLINKEDALLOCATIONGENERALLYIMPLIESTHEEXISTENCEOFSOMEMECHANISMFORFINDINGEMPTYSPACEAVAILABLEFORANEWNODEWHENWEWISHTOINSERTSOMENEWLYCREATEDINFORMATIONONTOALISTTHISISUSUALLYDONEBYHAVINGASPECIALLISTCALLEDTHELISTOFAVAILABLESPACEWEWILLCALLITTHEAVAILLISTLIBERATIONOVERFLOWDYNAMICSTORAGEALLOCATIONRESERVATIONAVAILLISTORTHEAVAILSTACKSINCEITISUSUALLYTREATEDINALASTINFIRSTOUTMANNERTHESETOFALLNODESNOTCURRENTLYINUSEISLINKEDTOGETHERINALISTJUSTLIKEANYOTHERLISTTHELINKVARIABLEAVAILREFERSTOTHETOPELEMENTOFTHISLISTTHUSIFWEWANTTOSETLINKVARIABLEXTOTHEADDRESSOFANEWNODEANDTORESERVETHATNODEFORFUTUREUSEWECANPROCEEDASFOLLOWSTHISEFFECTIVELYREMOVESTHETOPOFTHEAVAILSTACKANDMAKESXPOINTTOTHENODEJUSTREMOVEDOPERATIONOCCURSSOOFTENTHATWEHAVEASPECIALNOTATIONFORITWILLMEANXISSETTOPOINTTOANEWNODEWHENANODEISDELETEDANDNOLONGERNEEDEDPROCESSCANBEREVERSEDTHISOPERATIONPUTSTHENODEADDRESSEDBYXBACKONTOTHELISTOFRAWMATERIALWEDENOTEBYSEVERALIMPORTANTTHINGSHAVEBEENOMITTEDFROMTHISDISCUSSIONOFTHEAVAILSTACKWEDIDNOTSAYHOWTOSETITUPATTHEBEGINNINGOFAPROGRAMCLEARLYTHISCANBEDONEBYALINKINGTOGETHERALLNODESTHATARETOBEUSEDFORLINKEDMEMORYBSETTINGAVAILTOTHEADDRESSOFTHEFIRSTOFTHESENODESANDCMAKINGTHELASTNODELINKTOTHESETOFALLNODESTHATCANBEALLOCATEDISCALLEDTHESTORAGEPOOLAMOREIMPORTANTOMISSIONINOURDISCUSSIONWASTHETESTFOROVERFLOWWENEGLECTEDTOCHECKINIFALLAVAILABLEMEMORYSPACEHASBEENTAKENTHEOPERATIONSHOULDREALLYBEDEFINEDASFOLLOWSGETAVAILTHEPOSSIBILITYOFOVERFLOWMUSTALWAYSBECONSIDEREDHEREOVERFLOWGENERALLYMEANSTHATWETERMINATETHEPROGRAMWITHREGRETSORELSEWECANGOINTOAGARBAGECOLLECTIONROUTINETHATATTEMPTSTOFINDMOREAVAILABLESPACEGARBAGECOLLECTIONISDISCUSSEDINSECTIONTHEREISANOTHERIMPORTANTTECHNIQUEFORHANDLINGTHEAVAILSTACKWEOFTENDONOTKNOWINADVANCEHOWMUCHMEMORYSPACESHOULDBEUSEDFORTHESTORAGEPOOLTHEREMAYBEASEQUENTIALTABLEOFVARIABLESIZETHATWANTSTOCOEXISTINMEMORYWITHTHELINKEDTABLESINSUCHACASEWEDONOTWANTTHELINKEDMEMORYAREATOTAKEANYMORESPACETHANISABSOLUTELYNECESSARYSOSUPPOSETHATWEWISHTOPLACETHELINKEDMEMORYAREAINASCENDINGLOCATIONSBEGINNINGWITHANDTHATTHISAREAISNEVERTOEXTENDPASTTHEVALUEOFVARIABLESEQMINWHICHREPRESENTSTHECURRENTLOWERBOUNDOFTHESEQUENTIALTABLETHENWECANPROCEEDASFOLLOWSUSINGANEWVARIABLEPOOLMAXAINITIALLYSETANDBTHEOPERATIONBECOMESTHEFOLLOWINGPOOLMAXIFTHENOTHERWISESETANDWHEREISTHENODESIZEOVERFLOWNOWOCCURSIFCWHENOTHERPARTSOFTHEPROGRAMATTEMPTTODECREASETHEVALUEOFSEQMINTHEYSHOULDSOUNDTHEOVERFLOWALARMIFDTHEOPERATIONISUNCHANGEDFROMTHISIDEAACTUALLYREPRESENTSLITTLEMORETHANTHEPREVIOUSMETHODWITHASPECIALRECOVERYPROCEDURESUBSTITUTEDFORTHEOVERFLOWSITUATIONINTHENETEFFECTISTOKEEPTHESTORAGEPOOLASSMALLASPOSSIBLEMANYPEOPLELIKETOUSETHISIDEAEVENWHENALLLISTSOCCUPYTHESTORAGEPOOLAREASOTHATSEQMINISCONSTANTSINCEITAVOIDSTHERATHERTIMECONSUMINGOPERATIONOFINITIALLYLINKINGALLAVAILABLECELLSTOGETHERANDITFACILITATESDEBUGGINGWECOULDOFCOURSEPUTTHESEQUENTIALLISTONTHEBOTTOMANDTHEPOOLONTHETOPHAVINGPOOLMINANDSEQMAXINSTEADOFPOOLMAXANDSEQMINTHUSITISQUITEEASYTOMAINTAINAPOOLOFAVAILABLENODESSTRAIGHTLINKAGEINSUCHAWAYTHATFREENODESCANEFFICIENTLYBEFOUNDANDLATERRETURNEDTHESEMETHODSGIVEUSASOURCEOFRAWMATERIALTOUSEINLINKEDTABLESOURDISCUSSIONWASPREDICATEDONTHEIMPLICITASSUMPTIONTHATALLNODESHAVEAFIXEDSIZETHECASESTHATARISEWHENDIFFERENTSIZESOFNODESAREPRESENTAREVERYIMPORTANTBUTWEWILLDEFERTHATDISCUSSIONUNTILSECTIONNOWWEWILLCONSIDERAFEWOFTHEMOSTCOMMONLISTOPERATIONSINTHESPECIALCASEWHERESTACKSANDQUEUESAREINVOLVEDTHESIMPLESTKINDOFLINKEDLISTISASTACKFIGUREFIGSHOWSATYPICALSTACKWITHAPOINTERTTOTHETOPOFTHESTACKWHENTHESTACKISSTACKPOINTEREMPTYTHISPOINTERWILLHAVETHEVALUEFIGFIGALINKEDSTACKFIGPAGEITISCLEARHOWTOINSERTPUSHDOWNNEWINFORMATIONYONTOTHETOPINSERTIONONTOSTACKSTACKLINKEDOFSUCHASTACKUSINGANAUXILIARYPOINTERVARIABLEPCONVERSELYTOSETYEQUALTOTHEINFORMATIONATTHETOPOFTHESTACKANDTOPOPUPTHESTACKTHESEOPERATIONSSHOULDBECOMPAREDWITHTHEANALOGOUSMECHANISMSFORSEQUENTIALLYALLOCATEDSTACKSSEQSTACKINSANDSEQSTACKDELINSECTIONTHEREADERSHOULDSTUDYANDCAREFULLYSINCETHEYAREEXTREMELYIMPORTANTOPERATIONSBEFORELOOKINGATTHECASEOFQUEUESLETUSSEEHOWTHESTACKOPERATIONSCANBEEXPRESSEDCONVENIENTLYINPROGRAMSFORAPROGRAMFORINSERTIONWITHCANBEWRITTENASFOLLOWSTHISTAKESUNITSOFTIMECOMPAREDTOUNITSFORTHECOMPARABLEOPERATIONWITHASEQUENTIALTABLEALTHOUGHOVERFLOWINTHESEQUENTIALCASEWOULDINMANYCASESTAKECONSIDERABLYLONGERINTHISPROGRAMASINOTHERSTOFOLLOWINTHISCHAPTEROVERFLOWDENOTESEITHERANENDINGROUTINEORASUBROUTINEOVERFLOWRESERVATIONTHATFINDSMORESPACEANDRETURNSTOLOCATIONAPROGRAMFORDELETIONISEQUALLYSIMPLEDELETIONFROMSTACKITISINTERESTINGTOOBSERVETHATEACHOFTHESEOPERATIONSINVOLVESACYCLICUNDERFLOWLIBERATIONPERMUTATIONOFTHREELINKSFOREXAMPLEINTHEINSERTIONOPERATIONLETPBETHEVALUEOFAVAILBEFORETHEINSERTIONIFWEFINDTHATAFTERTHEOPERATIONTHEVALUEOFAVAILHASBECOMETHEPREVIOUSVALUEOFLINKPTHEVALUEOFLINKPHASBECOMETHEPREVIOUSVALUEOFTANDTHEVALUEOFTHASBECOMETHEPREVIOUSVALUEOFAVAILSOTHEINSERTIONPROCESSEXCEPTFORSETTINGISTHECYCLICPERMUTATIONSIMILARLYINTHECASEOFDELETIONWHEREPHASTHEVALUEOFTBEFORETHEOPERATIONANDWEASSUMETHATWEHAVEANDTHEFACTTHATTHEPERMUTATIONISCYCLICISNOTREALLYARELEVANTISSUESINCEANYPERMUTATIONOFTHREEELEMENTSTHATMOVESEVERYELEMENTISCYCLICTHEIMPORTANTPOINTISRATHERTHATPRECISELYTHREELINKSAREPERMUTEDINTHESEOPERATIONSDYNAMICSTORAGEALLOCATIONTHEINSERTIONANDDELETIONALGORITHMSOFANDHAVEBEENDESCRIBEDFORSTACKSBUTTHEYAPPLYMUCHMOREGENERALLYTOINSERTIONANDDELETIONINANYLINEARLISTINSERTIONFOREXAMPLEISPERFORMEDJUSTBEFORETHENODEPOINTEDTOBYLINKVARIABLETTHEINSERTIONOFITEMINABOVEWOULDBEDONEBYUSINGOPERATIONWITHTLINKLINKFIRSTLINKEDALLOCATIONAPPLIESINAPARTICULARLYCONVENIENTWAYTOQUEUESINTHISQUEUELINKEDCASEITISEASYTOSEETHATTHELINKSSHOULDRUNFROMTHEFRONTOFTHEQUEUETOWARDSTHEREARSOTHATWHENANODEISREMOVEDFROMTHEFRONTTHENEWFRONTNODEISDIRECTLYSPECIFIEDWEWILLMAKEUSEOFPOINTERSFANDRTOTHEFRONTANDREAREXCEPTFORRTHISDIAGRAMISABSTRACTLYIDENTICALTOFIGFIGONSTRAIGHTLINKAGEPAGEFIGPAGEWHENEVERTHELAYOUTOFALISTISDESIGNEDITISIMPORTANTTOSPECIFYALLCONDITIONSCAREFULLYPARTICULARLYFORTHECASEWHENTHELISTISEMPTYONEOFTHEMOSTCOMMONPROGRAMMINGERRORSCONNECTEDWITHLINKEDALLOCATIONISTHEFAILURETOHANDLEEMPTYLISTSPROPERLYTHEOTHERCOMMONERRORISTOFORGETABOUTCHANGINGSOMEOFTHELINKSWHENASTRUCTUREISBEINGMANIPULATEDINORDERTOAVOIDTHEFIRSTTYPEOFERRORWESHOULDALWAYSEXAMINETHEBOUNDARYCONDITIONSCAREFULLYTOAVOIDMAKINGTHESECONDTYPEOFERRORITISHELPFULTODRAWBEFOREANDAFTERDIAGRAMSANDTOCOMPARETHEMINORDERTOSEEWHICHLINKSMUSTCHANGELETSILLUSTRATETHEREMARKSOFTHEPRECEDINGPARAGRAPHBYAPPLYINGTHEMERRORSAVOIDINGBEFOREANDAFTERLINKMANIPULATIONINSERTIONINTOQUEUETOTHECASEOFQUEUESFIRSTCONSIDERTHEINSERTIONOPERATIONIFISTHESITUATIONBEFOREINSERTIONTHEPICTUREAFTERINSERTIONATTHEREAROFTHEQUEUESHOULDBETHENOTATIONUSEDHEREIMPLIESTHATANEWNODEHASBEENOBTAINEDFROMTHEAVAILLISTCOMPARINGANDSHOWSUSHOWTOPROCEEDWHENINSERTINGTHEINFORMATIONYATTHEREAROFTHEQUEUELETUSNOWCONSIDERTHEBOUNDARYSITUATIONWHENTHEQUEUEISEMPTYINTHISCASETHESITUATIONBEFOREINSERTIONISYETTOBEDETERMINEDANDTHESITUATIONAFTERISITISDESIRABLETOHAVEOPERATIONSAPPLYINTHISCASEALSOEVENIFINSERTIONINTOANEMPTYQUEUEMEANSTHATWEMUSTCHANGEBOTHFANDRNOTONLYRWEFINDTHATWILLWORKPROPERLYIFWHENTHEQUEUEISEMPTYASSUMINGTHATTHEVALUEOFVARIABLEFMUSTBESTOREDINTHELINKFIELDOFITSLOCATIONIFTHISIDEAISTOWORKINORDERTOMAKETHETESTINGFORANEMPTYQUEUEASEFFICIENTASPOSSIBLEWEWILLLETINTHISCASEOURPOLICYISTHEREFORETHATIFTHEOPERATIONSAREAPPLIEDUNDERTHESECIRCUMSTANCESWEOBTAINTHEDELETIONOPERATIONFORQUEUESISDERIVEDINASIMILARFASHIONIFISTHESITUATIONBEFOREDELETIONTHESITUATIONAFTERWARDSISFORTHEBOUNDARYCONDITIONSWEMUSTMAKESURETHATTHEDELETIONOPERATIONWORKSWHENTHEQUEUEISEMPTYEITHERBEFOREORAFTERTHEOPERATIONTHESECONSIDERATIONSLEADUSTOTHEFOLLOWINGWAYTODOQUEUEDELETIONINGENERALDELETIONFROMQUEUENOTICETHATRMUSTBECHANGEDWHENTHEQUEUEBECOMESEMPTYTHISISPRECISELYTHETYPEOFBOUNDARYCONDITIONWESHOULDALWAYSBEWATCHINGFORLINKMANIPULATIONAVAILLISTBEFOREANDAFTERERRORSAVOIDINGQUEUELINKEDTHESESUGGESTIONSARENOTTHEONLYWAYTOREPRESENTQUEUESINALINEARLYLINKEDFASHIONEXERCISEEZQDESCRIBESAMOREEFFICIENTALTERNATIVEANDWEWILLDISCUSSOTHERMETHODSLATERINTHISCHAPTERINDEEDNONEOFTHEOPERATIONSABOVEAREMEANTTOBEPRESCRIBEDASTHEONLYWAYTODOSOMETHINGTHEYAREINTENDEDASEXAMPLESOFTHEBASICMEANSOFOPERATINGWITHLINKEDLISTSTHEREADERWHOHASHADONLYALITTLEPREVIOUSEXPERIENCEWITHSUCHTECHNIQUESWILLFINDITHELPFULTOREREADTHEPRESENTSECTIONUPTOTHISPOINTBEFOREGOINGONSOFARINTHISCHAPTERWEHAVEDISCUSSEDHOWTOPERFORMCERTAINOPERATIONSONTABLESBUTOURDISCUSSIONSHAVEALWAYSBEENABSTRACTINTHESENSETHATWENEVEREXHIBITEDACTUALPROGRAMSINWHICHTHEPARTICULARTECHNIQUESWEREUSEFULPEOPLEARENTGENERALLYMOTIVATEDTOSTUDYABSTRACTIONSOFAPROBLEMUNTILTHEYVESEENENOUGHSPECIALINSTANCESOFTHEPROBLEMTOAROUSETHEIRINTERESTTHEOPERATIONSDISCUSSEDSOFARMANIPULATIONSOFVARIABLESIZELISTSOFINFORMATIONBYINSERTIONANDDELETIONANDTHEUSEOFTABLESASSTACKSORQUEUESAREOFSUCHWIDEAPPLICATIONITISHOPEDTHATTHEREADERWILLHAVEENCOUNTEREDTHEMOFTENENOUGHALREADYTOGRANTTHEIRIMPORTANCEBUTNOWWEWILLLEAVETHEREALMOFTHEABSTRACTASWEBEGINTOSTUDYASERIESOFSIGNIFICANTPRACTICALEXAMPLESOFTHETECHNIQUESOFTHISCHAPTEROURFIRSTEXAMPLEISAPROBLEMCALLEDTOPOLOGICALSORTINGWHICHTOPOLOGICALSORTINGPERTPARTIALORDERINGISANIMPORTANTPROCESSNEEDEDINCONNECTIONWITHNETWORKPROBLEMSWITHSOCALLEDPERTCHARTSANDEVENWITHLINGUISTICSINFACTITISOFPOTENTIALUSEWHENEVERWEHAVEAPROBLEMINVOLVINGAPARTIALORDERINGAPARTIALORDERINGOFASETISARELATIONBETWEENTHEOBJECTSOFWHICHWEMAYDENOTEBYTHESYMBOLSATISFYINGTHEFOLLOWINGPROPERTIESFORANYOBJECTSANDNOTNECESSARILYDISTINCTINIIFANDTHENTRANSITIVITYIIIFANDTHENANTISYMMETRYIIIREFLEXIVITYTHENOTATIONMAYBEREADPRECEDESOREQUALSIFANDWEWRITEANDSAYPRECEDESITISEASYTOSEEFROMIIIANDIIITHATWEALWAYSHAVEIIFANDTHENTRANSITIVITYIIIFTHENASYMMETRYIIIIRREFLEXIVITYTHERELATIONDENOTEDBYMEANSDOESNOTPRECEDEIFWESTARTWITHARELATIONSATISFYINGPROPERTIESIIIANDIIIWECANREVERSETHEPROCESSABOVEANDDEFINEIFORTHENPROPERTIESIIIANDIIIARETRUETHEREFOREWEMAYREGARDEITHERPROPERTIESIIIIIIORPROPERTIESIIIIIIASTHEDEFINITIONOFPARTIALORDERNOTICETHATPROPERTYIIISACTUALLYACONSEQUENCEOFIANDIIIALTHOUGHIIDOESNOTFOLLOWFROMIANDIIIPARTIALORDERINGSOCCURQUITEFREQUENTLYINEVERYDAYLIFEASWELLASINMATHEMATICSASEXAMPLESFROMMATHEMATICSWECANMENTIONTHERELATIONBETWEENREALNUMBERSANDTHERELATIONBETWEENSETSOFOBJECTSTHERELATIONDIVIDESBETWEENPOSITIVEINTEGERSINTHECASEOFPERTNETWORKSISASETOFJOBSTHATPERTMUSTBEDONEANDTHERELATIONMEANSMUSTBEDONEBEFOREEXAMPLEPOSETFIGWEWILLNATURALLYASSUMETHATISAFINITESETSINCEWEWANTTOWORKWITHINSIDEACOMPUTERAPARTIALORDERINGONAFINITESETCANALWAYSBEILLUSTRATEDBYDRAWINGADIAGRAMSUCHASFIGEXAMPLEPOSETFIGINWHICHTHEOBJECTSAREREPRESENTEDBYSMALLBOXESANDTHERELATIONISREPRESENTEDBYARROWSBETWEENTHESEBOXESMEANSTHEREISAPATHFROMTHEBOXLABELEDTOBOXTHATFOLLOWSTHEDIRECTIONOFTHEARROWSPROPERTYIIOFPARTIALORDERINGMEANSTHEREARENOCLOSEDLOOPSNOPATHSTHATCLOSEONTHEMSELVESINTHEDIAGRAMIFANARROWWEREDRAWNFROMFIGEXAMPLEPOSETFIGWEWOULDNOLONGERHAVEAPARTIALORDERINGPARTIALORDERINGTHEPROBLEMOFTOPOLOGICALSORTINGISTOEMBEDTHEPARTIALORDERINALINEARORDERINGEMBEDDINGOFPOSETLINEARORDERTHATISTOARRANGETHEOBJECTSINTOALINEARSEQUENCESUCHTHATWHENEVERWEHAVEGRAPHICALLYTHISMEANSTHATTHEBOXESARETOBEREARRANGEDINTOALINESOTHATALLARROWSGOTOWARDSTHERIGHTSEEFIGSORTEDPOSETFIGITISNOTIMMEDIATELYOBVIOUSTHATSUCHAREARRANGEMENTISPOSSIBLEINEVERYCASEALTHOUGHSUCHAREARRANGEMENTCERTAINLYCOULDNOTBEDONEIFANYLOOPSWEREPRESENTTHEREFORETHEALGORITHMWEWILLGIVEISINTERESTINGNOTONLYBECAUSEITDOESAUSEFULOPERATIONBUTALSOBECAUSEITPROVESTHATTHISOPERATIONISPOSSIBLEFOREVERYPARTIALORDERINGPLUSMINUSSORTEDPOSETFIGFIGTHEORDERINGRELATIONOFFIGEXAMPLEPOSETFIGAFTERTOPOLOGICALSORTINGASANEXAMPLEOFTOPOLOGICALSORTINGIMAGINEALARGEGLOSSARYCONTAININGDEFINITIONSOFTECHNICALTERMSWECANWRITEIFTHEDEFINITIONOFWORDDEPENDSDIRECTLYORINDIRECTLYONTHATOFWORDTHISRELATIONISAPARTIALORDERINGPROVIDEDTHATTHEREARENOCIRCULARDEFINITIONSTHEPROBLEMOFTOPOLOGICALSORTINGINTHISCASECIRCULARDEFINITIONISTOFINDAWAYTOARRANGETHEWORDSINTHEGLOSSARYSOTHATNOTERMISUSEDBEFOREITHASBEENDEFINEDANALOGOUSPROBLEMSARISEINWRITINGPROGRAMSTOPROCESSTHEDECLARATIONSINCERTAINASSEMBLYANDCOMPILERLANGUAGESTHEYALSOARISEINWRITINGAUSERSMANUALDESCRIBINGACOMPUTERLANGUAGEORINWRITINGTEXTBOOKSABOUTINFORMATIONSTRUCTURESTHEREISAVERYSIMPLEWAYTODOTOPOLOGICALSORTINGWESTARTBYTAKINGANOBJECTTHATISNOTPRECEDEDBYANYOTHEROBJECTINTHEORDERINGTHISOBJECTMAYBEPLACEDFIRSTINTHEOUTPUTNOWWEREMOVETHISOBJECTFROMTHESETTHERESULTINGSETISAGAINPARTIALLYORDEREDANDTHEPROCESSCANBEREPEATEDUNTILTHEWHOLESETHASBEENSORTEDFOREXAMPLEINFIGEXAMPLEPOSETFIGWECOULDSTARTBYREMOVINGORAFTERHASBEENREMOVEDCANBETAKENANDSOONTHEONLYWAYINWHICHTHISALGORITHMCOULDFAILWOULDBEIFTHEREWEREANONEMPTYPARTIALLYORDEREDSETINWHICHEVERYELEMENTWASPRECEDEDBYANOTHERFORINSUCHACASETHEALGORITHMWOULDFINDNOTHINGTODOBUTIFEVERYELEMENTISPRECEDEDBYANOTHERWECOULDCONSTRUCTANARBITRARILYLONGSEQUENCEINWHICHSINCEISFINITEWEMUSTHAVEFORSOMEBUTIMPLIESTHATHENCECONTRADICTSIIINORDERTOIMPLEMENTTHISPROCESSEFFICIENTLYBYCOMPUTERWENEEDTOBEREADYTOPERFORMTHEACTIONSDESCRIBEDABOVENAMELYTOLOCATEOBJECTSTHATARENOTPRECEDEDBYANYOTHERSANDTOREMOVETHEMFROMTHESETOURIMPLEMENTATIONISALSOINFLUENCEDBYTHEDESIREDINPUTANDOUTPUTCHARACTERISTICSTHEMOSTGENERALPROGRAMWOULDACCEPTALPHABETICNAMESFORTHEOBJECTSANDWOULDALLOWGIGANTICSETSOFOBJECTSTOBESORTEDMORETHANCOULDPOSSIBLYFITINTHECOMPUTERMEMORYATONCESUCHCOMPLICATIONSWOULDOBSCURETHEMAINPOINTSWEARETRYINGTOMAKEHEREHOWEVERTHEHANDLINGOFALPHABETICDATACANBEDONEEFFICIENTLYBYUSINGTHEMETHODSOFCHAPTERANDTHEHANDLINGOFLARGENETWORKSISLEFTASANINTERESTINGPROJECTFORTHEREADERTHEREFOREWEWILLASSUMETHATTHEOBJECTSTOBESORTEDARENUMBEREDFROMANYORDERTHEINPUTOFTHEPROGRAMWILLBEONTAPEUNITEACHTAPERECORDCONTAINSPAIRSOFNUMBERSWHERETHEPAIRMEANSTHATOBJECTPRECEDESOBJECTTHEFIRSTPAIRHOWEVERISWHEREISTHENUMBEROFOBJECTSTHEPAIRTERMINATESTHEINPUTWESHALLASSUMETHATPLUSTHENUMBEROFRELATIONPAIRSWILLFITCOMFORTABLYINMEMORYANDWESHALLASSUMETHATITISNOTNECESSARYTOCHECKTHEINPUTFORVALIDITYTHEOUTPUTISTOBETHENUMBERSOFTHEOBJECTSINSORTEDORDERFOLLOWEDBYTHENUMBERONTAPEUNITASANEXAMPLEOFTHEINPUTWEMIGHTHAVETHERELATIONSITISNOTNECESSARYTOGIVEANYMORERELATIONSTHANARENEEDEDTOCHARACTERIZETHEDESIREDPARTIALORDERINGTHUSADDITIONALRELATIONSLIKEWHICHCANBEDEDUCEDFROMANDMAYBEOMITTEDFROMORADDEDTOTHEINPUTWITHOUTHARMINGENERALITISNECESSARYTOGIVEONLYTHERELATIONSCORRESPONDINGTOARROWSONADIAGRAMSUCHASFIGEXAMPLEPOSETFIGTHEALGORITHMTHATFOLLOWSUSESASEQUENTIALTABLELINKEDLINEARLISTSEQUENTIALLINEARLISTXXXANDEACHNODEXHASTHEFORMHERECOUNTISTHENUMBEROFDIRECTPREDECESSORSOFOBJECTTHENUMBEROFRELATIONSTHATHAVEAPPEAREDINTHEINPUTANDTOPISALINKTOTHEBEGINNINGOFTHELISTOFDIRECTSUCCESSORSOFOBJECTTHELATTERLISTCONTAINSENTRIESINTHEFORMATWHERESUCISADIRECTSUCCESSOROFANDNEXTISTHENEXTITEMOFTHELISTASANEXAMPLEOFTHESECONVENTIONSFIGFIGSHOWSTHESCHEMATICCONTENTSOFMEMORYCORRESPONDINGTOTHEINPUTUSINGTHISMEMORYLAYOUTITISNOTDIFFICULTTOWORKOUTTHEALGORITHMWEWANTTOOUTPUTTHENODESWHOSECOUNTFIELDISZEROTHENTODECREASETHECOUNTFIELDSOFALLSUCCESSORSOFTHOSENODESBYONETHETRICKISTOAVOIDDOINGANYSEARCHINGFORNODESWHOSECOUNTFIELDISZEROANDTHISCANBEDONEBYMAINTAININGAQUEUECONTAININGTHOSENODESTHELINKSFORTHISQUEUEAREKEPTINTHECOUNTFIELDWHICHBYNOWHASQUEUESERVEDITSPREVIOUSPURPOSEFORCLARITYINTHEALGORITHMBELOWWEUSETHENOTATIONQLINKTOSTANDFORCOUNTWHENTHATFIELDISNOLONGERBEINGUSEDTOKEEPACOUNTTTOPSORTALGALGORITHMTTOPOLOGICALSORTTHISALGORITHMINPUTSASEQUENCEOFRELATIONSINDICATINGTHATOBJECTPRECEDESOBJECTINACERTAINPARTIALORDERINGASSUMINGTHATTHEOUTPUTISTHESETOFOBJECTSEMBEDDEDINALINEARORDERTHEINTERNALTABLESUSEDAREQLINKNNTOPTOPTOPASTORAGEPOOLWITHONENODEFOREACHINPUTRELATIONANDWITHSUCANDNEXTFIELDSASSHOWNABOVEPALINKVARIABLEUSEDTOREFERTOTHENODESINTHESTORAGEPOOLFANDRINTEGERVALUEDVARIABLESUSEDTOREFERTOTHEFRONTANDREAROFAQUEUEWHOSELINKSAREINTHEQLINKTABLEANDNAVARIABLETHATCOUNTSHOWMANYOBJECTSHAVEYETTOBEOUTPUTTINITIALIZEINPUTTHEVALUEOFSETKANDKFORSETTNEXTRELATIONGETTHENEXTRELATIONFROMTHEINPUTIFTHEINPUTHASBEENEXHAUSTEDHOWEVERGOTOTTRECORDTHERELATIONINCREASECOUNTBYONESETTHISISOPERATIONGOBACKTOTTSCANFORZEROSATTHISPOINTWEHAVECOMPLETEDTHEINPUTPHASETHEINPUTWOULDNOWHAVEBEENTRANSFORMEDINTOTHECOMPUTERREPRESENTATIONSHOWNINFIGFIGTHENEXTJOBISTOINITIALIZETHEQUEUEOFOUTPUTWHICHISLINKEDTOGETHERINTHEQLINKFIELDSETANDFOREXAMINEKANDIFITISZEROSETANDAFTERTHISHASBEENDONEFORALLSETWHICHWILLCONTAINTHEFIRSTVALUEENCOUNTEREDFORWHICHCOUNTWASZEROTOUTPUTFRONTOFQUEUEOUTPUTTHEVALUEOFFIFDELETIONFROMQUEUEGOTOTOTHERWISESETANDSETSINCETHEQLINKANDCOUNTTABLESOVERLAPWEHAVETHEREFORETHECONDITIONOCCURSWHENTHEQUEUEISEMPTYTERASERELATIONSIFGOTOTOTHERWISEDECREASECOUNTSUCPBYONEANDIFITHASTHEREBYGONEDOWNTOZEROSETANDSETINSERTIONINTOQUEUEANDREPEATTHISSTEPWEAREREMOVINGALLRELATIONSOFTHEFORMFORSOMEFROMTHESYSTEMANDPUTTINGNEWNODESINTOTHEQUEUEWHENALLTHEIRPREDECESSORSHAVEBEENOUTPUTTREMOVEFROMQUEUESETANDGOBACKTOTTENDOFPROCESSTHEALGORITHMTERMINATESIFWEHAVEOUTPUTALLOFTHEOBJECTNUMBERSINTHEDESIREDTOPOLOGICALORDERFOLLOWEDBYAZEROOTHERWISETHENOBJECTNUMBERSNOTYETOUTPUTCONTAINALOOPINVIOLATIONOFTHEHYPOTHESISOFPARTIALORDERSEEEXERCISEFORANALGORITHMTHATPRINTSOUTTHECONTENTSOFONESUCHLOOPTHEREADERWILLFINDITHELPFULTOTRYTHISALGORITHMBYHANDONTHEINPUTALGORITHMTSHOWSANICEINTERPLAYBETWEENSEQUENTIALMEMORYANDLINKEDMEMORYTECHNIQUESSEQUENTIALMEMORYISUSEDFORTHEMAINTABLEXXWHICHCONTAINSTHECOUNTANDTOPENTRIESBECAUSEWEWANTTOMAKEREFERENCESTORANDOMPARTSOFTHISTABLEINSTEPTIFTHEINPUTWEREALPHABETICHOWEVERANOTHERTYPEOFTABLEWOULDBEUSEDFORSPEEDIERSEARCHASINCHAPTERLINKEDMEMORYISUSEDFORTHETABLESOFIMMEDIATESUCCESSORSSINCETHOSETABLEENTRIESHAVENOPARTICULARORDERINTHEINPUTTHEQUEUEOFNODESWAITINGTOBEOUTPUTISKEPTINTHEMIDSTOFTHESEQUENTIALTABLEBYLINKINGQUEUESEQUENTIALLINEARLISTLINKEDLINEARLISTTHENODESTOGETHERINOUTPUTORDERTHISLINKINGISDONEBYTABLEINDEXINSTEADOFBYADDRESSINOTHERWORDSWHENTHEFRONTOFTHEQUEUEISXWEHAVEINSTEADOFKTHEQUEUEOPERATIONSUSEDINSTEPSTTANDTARENOTIDENTICALTOTHOSEINANDSINCEWEARETAKINGADVANTAGEOFSPECIALPROPERTIESOFTHEQUEUEINTHISSYSTEMNONODESNEEDTOBECREATEDORRETURNEDTOAVAILABLESPACEDURINGTHISPARTOFTHEALGORITHMTHECODINGOFALGORITHMTINASSEMBLYLANGUAGEHASAFEWADDITIONALPOINTSOFINTERESTSINCENODELETIONFROMTABLESISMADEINTHEALGORITHMBECAUSENOSTORAGEMUSTBEFREEDFORLATERUSETHEOPERATIONAVAILLISTCANBEDONEINANEXTREMELYSIMPLEWAYASSHOWNINLINESANDBELOWWENEEDNOTKEEPANYLINKEDPOOLOFMEMORYANDWECANCHOOSENEWNODESCONSECUTIVELYTHEPROGRAMINCLUDESCOMPLETEINPUTANDOUTPUTWITHMAGNETICTAPEACCORDINGTOTHECONVENTIONSMENTIONEDABOVEBUTBUFFERINGISOMITTEDFORTHESAKEOFSIMPLICITYTHEREADERSHOULDNOTFINDITVERYDIFFICULTTOFOLLOWTHEDETAILSOFTHECODINGINTHISPROGRAMSINCEITCORRESPONDSDIRECTLYTOALGORITHMTBUTWITHSLIGHTCHANGESFOREFFICIENCYTHEEFFICIENTUSEOFINDEXREGISTERSWHICHISANIMPORTANTASPECTOFLINKEDMEMORYPROCESSINGISILLUSTRATEDHERETHEANALYSISOFALGORITHMTISQUITESIMPLEWITHTHEAIDOFKIRCHHOFFSLAWTHEEXECUTIONTIMEHASTHEAPPROXIMATEFORMANALYSISOFALGORITHMSWHEREISTHENUMBEROFINPUTRELATIONSISTHENUMBEROFOBJECTSANDANDARECONSTANTSITISHARDTOIMAGINEAFASTERALGORITHMFORTHISPROBLEMTHEEXACTQUANTITIESINTHEANALYSISAREGIVENWITHPROGRAMTABOVEWHERENUMBEROFOBJECTSWITHNOPREDECESSORNUMBEROFTAPERECORDSININPUTANDNUMBEROFTAPERECORDSINOUTPUTEXCLUSIVEOFINPUTOUTPUTOPERATIONSTHETOTALRUNNINGTIMEINTHISCASEISONLYATOPOLOGICALSORTINGTECHNIQUESIMILARTOALGORITHMTBUTWITHOUTTHEIMPORTANTFEATUREOFTHEQUEUELINKSWASFIRSTPUBLISHEDBYABKAHNCACMTHEFACTTHATTOPOLOGICALSORTINGOFAPARTIALORDERINGISALWAYSPOSSIBLEWASFIRSTPROVEDINPRINTBYESZPILRAJNFUNDAMENTAMATHEMATICAHEPROVEDITFORINFINITESETSASWELLASFINITESETSANDMENTIONEDTHATTHERESULTWASALREADYKNOWNTOSEVERALOFHISCOLLEAGUESINSECTIONWEWILLSTUDYANEFFICIENTWAYTOFINDALLOFTHETOPOLOGICALSORTSOFAGIVENPARTIALORDERRELATIONEXERCISESOPERATIONFORPOPPINGUPASTACKMENTIONSTHEPOSSIBILITYOVERFLOWUNDERFLOWOFUNDERFLOWWHYDOESNTOPERATIONPUSHINGDOWNASTACKMENTIONTHEPOSSIBILITYOFOVERFLOWOVERFLOWISIMPLICITINTHEOPERATIONWRITEAGENERALPURPOSESUBROUTINETODOTHEINSERTIONSUBROUTINESINSERTIONONTOSTACKSTACKLINKEDOPERATIONTHISSUBROUTINESHOULDHAVETHEFOLLOWINGSPECIFICATIONSASINSECTIONCALLINGSEQUENCEENTRYCONDITIONSINFORMATIONTOBEPUTINTOTHEINFOFIELDOFANEWNODEEXITCONDITIONSTHESTACKWHOSEPOINTERISTHELINKVARIABLETHASTHENEWNODEONTOPRIRIAREALTEREDWRITEAGENERALPURPOSESUBROUTINETODOTHEDELETIONOPERATIONTHISSUBROUTINESHOULDHAVETHEFOLLOWINGSPECIFICATIONSDELETIONFROMSTACKUNDERFLOWMULTIPLEEXITSCALLINGSEQUENCEENTRYCONDITIONSNONEEXITCONDITIONSIFTHESTACKWHOSEPOINTERISTHELINKVARIABLETISEMPTYTHEFIRSTEXITISTAKENOTHERWISETHETOPNODEOFTHATSTACKISDELETEDANDEXITISMADETOTHETHIRDLOCATIONFOLLOWINGJMPDELETEINTHELATTERCASEANDRAISTHECONTENTSOFTHEINFOFIELDOFTHEDELETEDNODEINEITHERCASERIANDRIAREUSEDBYTHISSUBROUTINETHEPROGRAMINISBASEDONTHEOPERATIONASGIVENINSHOWHOWTOWRITEANOVERFLOWSUBROUTINESOTHATWITHOUTOVERFLOWAVAILLISTANYCHANGEINTHECODINGTHEOPERATIONMAKESUSEOFSEQMINASGIVENBYFORGENERALPURPOSEUSEYOURSUBROUTINESHOULDNOTCHANGETHECONTENTSOFANYREGISTERSEXCEPTRJANDPOSSIBLYTHECOMPARISONINDICATORITSHOULDEXITTOLOCATIONINSTEADOFTHEUSUALRJOPERATIONSANDGIVETHEEFFECTOFAQUEUESHOWHOWTODEFINETHEFURTHEROPERATIONINSERTATFRONTSOASTOOBTAINALLTHEACTIONSOFANOUTPUTRESTRICTEDDEQUEHOWCOULDTHEOPERATIONDELETEFROMREARBEDEFINEDSOTHATWEWOULDHAVEAGENERALDEQUEOUTPUTRESTRICTEDDEQUEDEQUEINSERTINGATTHEFRONTISESSENTIALLYLIKETHEBASICINSERTIONOPERATIONWITHANADDITIONALTESTFOREMPTYQUEUEIFTHENTODELETEFROMTHEREARWEWOULDHAVETOFINDWHICHNODELINKSTONODERANDTHATISNECESSARILYINEFFICIENTSINCEWEHAVETOSEARCHALLTHEWAYFROMFTHISCOULDBEDONEFOREXAMPLEASFOLLOWSAIFTHENUNDERFLOWOTHERWISESETBIFTHENSETANDREPEATTHISSTEPUNTILCSETDANGLINGLINKINOPERATIONWESETWHILETHEVERYNEXTINSERTIONATTHEREAROFTHEQUEUEWILLCHANGETHEVALUEOFQUEUELINKEDTHISSAMELINKFIELDSHOWHOWTHESETTINGOFLINKPINCOULDBEAVOIDEDIFWEMAKEACHANGETOTHETESTINGOFINWECOULDREMOVETHEOPERATIONFROMIFWEDELETETHECOMMANDSANDIFTHENSETFROMTHELATTERARETOBEREPLACEDBYIFTHENANDOTHERWISESETTHEEFFECTOFTHESECHANGESISTHATTHELINKFIELDOFTHEREARNODEINTHEQUEUEWILLCONTAINSPURIOUSINFORMATIONTHATISNEVERINTERROGATEDBYTHEPROGRAMATRICKLIKETHISSAVESEXECUTIONTIMEANDITISQUITEUSEFULINPRACTICEALTHOUGHITVIOLATESONEOFTHEBASICASSUMPTIONSOFGARBAGECOLLECTIONSEESECTIONSOITCANNOTBEUSEDINCONJUNCTIONWITHSUCHALGORITHMSINVERTLISTDESIGNANALGORITHMTOINVERTALINKEDLINEARLISTSUCHASREVERSINGALISTINVERTINGALISTTHATISTOCHANGEITSLINKSSOTHATTHEITEMSAPPEARINTHEOPPOSITEORDERIFFOREXAMPLETHELISTWEREINVERTEDWEWOULDHAVEFIRSTLINKINGTOTHENODECONTAININGITEMTHATNODEWOULDLINKTOTHEONECONTAININGITEMETCASSUMETHATTHENODESHAVETHEFORMLINKEDLINEARLISTMAKESURETHATYOURSOLUTIONWORKSFOREMPTYLISTSIISETIIFSETANDREPEATTHISSTEPISETINESSENCEWEAREPOPPINGNODESOFFONESTACKANDPUSHINGTHEMONTOANOTHERWRITEAPROGRAMFORTHEPROBLEMOFEXERCISEATTEMPTINGTODESIGNYOURPROGRAMTOOPERATEASFASTASPOSSIBLETHETIMEISBETTERSPEEDISATTAINABLESEEEXERCISEAVOIDRENAMINGWHICHOFTHEFOLLOWINGRELATIONSISAPARTIALORDERINGONTHEPARTIALORDERINGSPECIFIEDSETNOTEIFTHERELATIONISDEFINEDBELOWTHEINTENTISTODEFINETHERELATIONANDTHENTODETERMINEWHETHERISAPARTIALORDERINGAALLRATIONALNUMBERSMEANSBALLPEOPLEMEANSISANANCESTOROFCALLINTEGERSMEANSISAMULTIPLEOFTHATISDALLTHEMATHEMATICALRESULTSPROVEDINTHISBOOKMEANSTHEPROOFOFDEPENDSUPONTHETRUTHOFEALLPOSITIVEINTEGERSMEANSISEVENFASETOFSUBROUTINESMEANSCALLSTHATISMAYBEINOPERATIONWHILEISINOPERATIONWITHRECURSIONNOTALLOWEDAYESBYESIFBIOLOGICALPARENTHOODISCONSIDEREDNOIFLEGALPARENTHOODISCONSIDEREDAMANSDAUGHTERMIGHTMARRYHISFATHERASINTHESONGIMMYOWNGRAMPACNOANDDLETUSHOPESOORELSETHEREISACIRCULARARGUMENTEANDFTHESTATEMENTISAMBIGUOUSIFWETAKETHEPOSITIONTHATTHESUBROUTINESCALLEDBYAREDEPENDENTUPONWHICHSUBROUTINECALLSWEWOULDHAVETOCONCLUDETHATTHETRANSITIVELAWDOESNOTNECESSARILYHOLDFOREXAMPLEAGENERALINPUTOUTPUTSUBROUTINEMIGHTCALLONDIFFERENTPROCESSINGROUTINESFOREACHIODEVICEPRESENTBUTTHESEPROCESSINGSUBROUTINESAREUSUALLYNOTALLNEEDEDINASINGLEPROGRAMTHISISAPROBLEMTHATPLAGUEDMANYAUTOMATICPROGRAMMINGSYSTEMSINTHEOLDDAYSMGIVENTHATISARELATIONTHATSATISFIESPROPERTIESIANDIIOFAPARTIALORDERINGPROVETHATTHERELATIONDEFINEDBYTHERULEIFANDONLYIFORSATISFIESALLTHREEPROPERTIESOFAPARTIALORDERINGFORITHEREARETHREECASESANDANDFORIITHEREARETWOCASESEACHCASEISHANDLEDTRIVIALLYASISIIITHERESULTOFTOPOLOGICALSORTINGISNOTALWAYSCOMPLETELYDETERMINEDSINCETHEREMAYBESEVERALWAYSTOARRANGETHENODESANDTOSATISFYTHECONDITIONSOFTOPOLOGICALORDERFINDALLPOSSIBLEWAYSTOARRANGETHENODESOFFIGEXAMPLEPOSETFIGINTOTOPOLOGICALORDERMULTIPLYOUTTHEFOLLOWINGTOGETALLSOLUTIONSMTHEREARESUBSETSOFASETOFELEMENTSANDTHESESUBSETSAREPARTIALLYORDEREDBYTHESETINCLUSIONRELATIONGIVETWOINTERESTINGWAYSTOARRANGETHESESUBSETSINTOPOLOGICALORDERFOREXAMPLEALISTALLSETSWITHELEMENTSINANYORDERBEFOREALLSETSWITHELEMENTSBREPRESENTASUBSETBYASEQUENCEOFSANDSSHOWINGWHICHELEMENTSAREINTHESETTHISGIVESACORRESPONDENCEBETWEENALLSUBSETSANDTHEINTEGERSTHROUGHVIATHEBINARYNUMBERSYSTEMTHEORDEROFCORRESPONDENCEISATOPOLOGICALSEQUENCEHOWMANYWAYSARETHERETOARRANGETHESUBSETSDESCRIBEDINEXERCISEINTOTOPOLOGICALORDERTRYFORASHARPASYMPTOTICESTIMATEASSHAANDKLEITMANDISCRETEMATHPROVEDTHATTHENUMBERISATMOSTBRIGHTWELLANDTETALIORDERIMPROVEDTHISUPPERBOUNDTOWHERETHEOBVIOUSLOWERBOUNDISFORTHEINITIALVALUESUPTOSEEOEISSEQUENCEALINORDMALINEARORDERINGOFASETALSOCALLEDATOTALORDERINGISAPARTIALORDERINGTHATSATISFIESTHEADDITIONALCOMPARABILITYCONDITIONPROVEDIRECTLYFROMTHEDEFINITIONSGIVENTHATATOPOLOGICALSORTCANRESULTINONLYONEPOSSIBLEOUTPUTIFANDONLYIFTHERELATIONISALINEARORDERINGYOUMAYASSUMETHATTHESETISFINITEIFANDARETWOPOSSIBLETOPOLOGICALSORTSLETBEMINIMALSUCHTHATTHENANDFORSOMENOWSINCEANDSINCEHENCEIVFAILSCONVERSELYIFTHEREISONLYONETOPOLOGICALSORTWEMUSTHAVEFORSINCEOTHERWISEANDCOULDBEINTERCHANGEDTHISANDTRANSITIVITYIMPLYIVNOTETHEFOLLOWINGALTERNATIVEPROOFSWORKALSOFORINFINITESETSAEVERYPARTIALORDERINGCANBEEMBEDDEDINALINEARORDERINGFORIFWEHAVETWOELEMENTSWITHANDWECANGENERATEANOTHERPARTIALORDERINGBYTHERULEORANDTHELATTERORDERINGINCLUDESTHEFORMERANDHASNOWAPPLYZORNSLEMMAORTRANSFINITEINDUCTIONINTHEUSUALWAYTOCOMPLETETHEPROOFBOBVIOUSLYALINEARORDERINGCANNOTBEEMBEDDEDINANYDIFFERENTLINEARORDERINGCAPARTIALORDERINGTHATHASINCOMPARABLEELEMENTSANDASINACANBEEXTENDEDTOTWOLINEARORDERINGSINWHICHANDRESPECTIVELYSOATLEASTTWOLINEARORDERINGSEXISTMSHOWTHATFORANYPARTIALORDERINGONAFINITESETTHEREISAUNIQUESETOFIRREDUNDANTRELATIONSTHATCHARACTERIZESTHISORDERINGASINANDFIGEXAMPLEPOSETFIGISTHESAMEFACTTRUEALSOWHENISANINFINITESETIFISFINITEWECANLISTALLRELATIONSTHATARETRUEINTHEGIVENPARTIALORDERINGBYSUCCESSIVELYREMOVINGONEATATIMEANYRELATIONSTHATAREIMPLIEDBYOTHERSWEARRIVEATANIRREDUNDANTSETTHEPROBLEMISTOSHOWTHEREISJUSTONESUCHSETNOMATTERINWHATORDERWEGOABOUTREMOVINGREDUNDANTRELATIONSIFTHEREWERETWOIRREDUNDANTSETSANDINWHICHAPPEARSINBUTNOTINTHEREARERELATIONSINFORSOMEBUTITISPOSSIBLETODEDUCEANDFROMWITHOUTUSINGTHERELATIONSINCEANDHENCETHERELATIONISREDUNDANTINTHERESULTISFALSEFORINFINITESETSWHENTHEREISATMOSTONEIRREDUNDANTSETOFRELATIONSFOREXAMPLEIFDENOTESTHEINTEGERSPLUSTHEELEMENTANDWEDEFINEANDFORALLTHEREISNOIRREDUNDANTSETOFRELATIONSTHATCHARACTERIZESTHISPARTIALORDERINGMGIVENANYPARTIALORDERINGONASETWECANCONSTRUCTITSINCIDENCEMATRIXWHEREIFANDOTHERWISESHOWTHATTHEREISAWAYTOPERMUTETHEROWSANDCOLUMNSOFTHISMATRIXSOTHATALLENTRIESBELOWTHEDIAGONALAREZEROPARTIALORDERINGLETBEATOPOLOGICALSORTINGOFAPPLYTHEPERMUTATIONTOBOTHROWSANDCOLUMNSWHATOUTPUTDOESALGORITHMTPRODUCEIFITISPRESENTEDWITHTHEINPUTIFINCREASESFROMSTEPTTHEOUTPUTISIFDECREASESFROMTOINSTEPTASITDOESINPROGRAMTTHEOUTPUTISWHATIFANYTHINGISTHESIGNIFICANCEOFTHEVALUESOFQLINKQLINKQLINKWHENALGORITHMTTERMINATESTHEYLINKTOGETHERTHEITEMSINSORTEDORDERQLINKFIRSTQLINKQLINKSECONDANDSOONLASTINALGORITHMTWEEXAMINETHEFRONTPOSITIONOFTHEQUEUEINSTEPTBUTDONOTREMOVETHATELEMENTFROMTHEQUEUEUNTILSTEPTWHATWOULDHAPPENIFWESETATTHECONCLUSIONOFSTEPTINSTEADOFINTTHISWOULDFAILINCERTAINCASESWHENTHEQUEUECONTAINSONLYONEELEMENTINSTEPTTHEMODIFIEDMETHODWOULDSETTHEREBYEMPTYINGTHEQUEUEBUTOTHERENTRIESCOULDBEPLACEDINTHEQUEUEINSTEPTTHESUGGESTEDMODIFICATIONWOULDTHEREFOREREQUIREANADDITIONALTESTOFINSTEPTALGORITHMTUSESFRANDTHEQLINKTABLETOOBTAINTHEEFFECTOFAQUEUETHATCONTAINSTHOSENODESWHOSECOUNTSTACKLINKEDFIELDHASBECOMEZEROBUTWHOSESUCCESSORRELATIONSHAVENOTYETBEENREMOVEDCOULDASTACKBEUSEDFORTHISPURPOSEINSTEADOFAQUEUEIFSOCOMPARETHERESULTINGALGORITHMWITHALGORITHMTINDEEDASTACKCOULDBEUSEDINTHEFOLLOWINGWAYSTEPTDISAPPEARSTTSETFORIFKISZERODOTHEFOLLOWINGSETKOUTPUTTHEVALUEOFTIFGOTOTOTHERWISESETTSAMEASBEFOREEXCEPTGOTOTINSTEADOFTANDWHENCOUNTSUCPGOESDOWNTOZEROSETANDWOULDALGORITHMTSTILLPERFORMAVALIDTOPOLOGICALSORTIFONEOFTHERELATIONSWEREREPEATEDSEVERALTIMESINTHEINPUTWHATIFTHEINPUTCONTAINEDARELATIONOFTHEFORMREPEATEDRELATIONSONLYMAKETHEALGORITHMALITTLESLOWERANDTAKEUPMORESPACEINTHESTORAGEPOOLARELATIONWOULDBETREATEDLIKEALOOPANARROWFROMABOXTOITSELFINTHECORRESPONDINGDIAGRAMWHICHVIOLATESPARTIALORDERPROGRAMTASSUMESTHATITSINPUTTAPECONTAINSVALIDINFORMATIONBUTAPROGRAMTHATISINTENDEDFORGENERALUSESHOULDALWAYSMAKECAREFULTESTSONITSINPUTSOTHATCLERICALERRORSCANBEDETECTEDANDSOTHATTHEPROGRAMCANNOTDESTROYITSELFFOREXAMPLEIFONEOFTHEINPUTRELATIONSFORWERENEGATIVEPROGRAMTMAYERRONEOUSLYCHANGEONEOFITSOWNINSTRUCTIONSWHENSTORINGINTOXSUGGESTWAYSTOMODIFYPROGRAMTSOTHATITISSUITABLEFORGENERALUSEFAILSAFEPROGRAMTOMAKETHEPROGRAMFAILSAFEWESHOULDACHECKTHATSOMEAPPROPRIATEMAXIMUMBCHECKEACHRELATIONFORTHECONDITIONSCMAKESURETHATTHENUMBEROFRELATIONSDOESNTOVERFLOWTHESTORAGEPOOLAREAWHENTHETOPOLOGICALSORTALGORITHMCANNOTPROCEEDBECAUSEITHASDETECTEDALOOPINTHEINPUTSEESTEPTITISUSUALLYOFNOUSETOSTOPANDSAYTHEREWASALOOPITISHELPFULTOPRINTOUTONEOFTHELOOPSTHEREBYSHOWINGPARTOFTHEINPUTTHATWASINERROREXTENDALGORITHMTSOTHATITWILLDOTHISADDITIONALPRINTINGOFALOOPWHENNECESSARYHINTTHETEXTGIVESAPROOFFORTHEEXISTENCEOFALOOPWHENINSTEPTTHATPROOFSUGGESTSANALGORITHMCYCLEDETECTIONATTHEENDOFSTEPTADDTHENATALLTIMESNPOINTTOALLTHERELATIONSNOTYETCANCELEDINSTEPTIFPRINTLOOPDETECTEDININPUTANDSETKFORNOWADDTHEFOLLOWINGSTEPSTTFORSETKKANDPERFORMSTEPTTHISWILLSETQLINKTOONEOFTHEPREDECESSORSOFOBJECTFOREACHNOTYETOUTPUTTHENGOTOTTIFSETANDREPEATTHISSTEPTFINDAWITHKTSETKANDKNOWIFKREPEATTHISSTEPTWEHAVEFOUNDTHESTARTOFALOOPPRINTTHEVALUEOFSETKKANDIFKREPEATTHISSTEPTPRINTTHEVALUEOFTHEBEGINNINGANDENDOFTHELOOPANDSTOPNOTETHELOOPHASBEENPRINTEDBACKWARDSIFITISDESIREDTOPRINTTHELOOPINFORWARDORDERANALGORITHMLIKETHATINEXERCISESHOULDBEUSEDBETWEENSTEPSTANDTINCORPORATETHEEXTENSIONSOFALGORITHMTMADEINEXERCISEINTOPROGRAMTINSERTTHREELINESINTHEPROGRAMOFTHETEXTREPLACELINESBYTHEFOLLOWINGNOTEIFTHERELATIONSANDAREADDEDTOTHEDATATHISPROGRAMWILLPRINTASTHELOOPEXTERNTOPSORTDESIGNASEFFICIENTANALGORITHMASPOSSIBLEFORDOINGATOPOLOGICALSORTOFVERYLARGESETSHAVINGCONSIDERABLYMORENODESTHANTHECOMPUTERMEMORYCANCONTAINASSUMETHATTHEINPUTOUTPUTANDTEMPORARYWORKINGSPACEAREDONEWITHMAGNETICTAPEPOSSIBLEHINTACONVENTIONALSORTOFTHEINPUTALLOWSUSTOASSUMETHATALLRELATIONSFORAGIVENNODEAPPEARTOGETHERBUTTHENWHATCANBEDONEINPARTICULARWEMUSTCONSIDERTHEWORSTCASEINWHICHTHEGIVENORDERINGISALREADYALINEARORDERINGTHATHASBEENWILDLYPERMUTEDEXERCISEENDTOENDINTHEINTRODUCTIONTOCHAPTEREXPLAINSHOWTOHANDLETHISCASEWITHPASSESOVERTHEDATATOPOLOGICALSORTSUBRALLOCSUBROUTINEALLOCATIONSUPPOSETHATWEHAVEATAPECONTAININGTHEMAINSUBROUTINELIBRARYINRELOCATABLEFORMFORASSTYLECOMPUTERINSTALLATIONTHELOADINGROUTINEWANTSTODETERMINETHEAMOUNTOFRELOCATIONFOREACHSUBROUTINEUSEDSOTHATITCANMAKEONEPASSTHROUGHTHETAPETOLOADTHENECESSARYROUTINESTHEPROBLEMISTHATSOMESUBROUTINESREQUIREOTHERSTOBEPRESENTINMEMORYINFREQUENTLYUSEDSUBROUTINESWHICHAPPEARTOWARDTHEENDOFTHETAPEMAYCALLONFREQUENTLYUSEDSUBROUTINESWHICHAPPEARTOWARDTHEBEGINNINGOFTHETAPEANDWEWANTTOKNOWALLOFTHESUBROUTINESTHATAREREQUIREDBEFOREPASSINGTHROUGHTHETAPESUBROUTINEALLOCATIONLOADINGROUTINEMARKINGALGORITHMONEWAYTOTACKLETHISPROBLEMISTOHAVEATAPEDIRECTORYTHATFITSINMEMORYTHELOADINGROUTINEHASACCESSTOTWOTABLESATHETAPEDIRECTORYTHISTABLEISCOMPOSEDOFVARIABLELENGTHNODESHAVINGTHEFORMWHERESPACEISTHENUMBEROFWORDSOFMEMORYREQUIREDBYTHESUBROUTINELINKISALINKTOTHEDIRECTORYENTRYFORTHESUBROUTINETHATAPPEARSONTHETAPEFOLLOWINGTHISSUBROUTINEARELINKSTOTHEDIRECTORYENTRIESFORANYOTHERSUBROUTINESREQUIREDBYTHISONEBONALLWORDSEXCEPTTHELASTBONTHELASTWORDOFANODETHEADDRESSOFTHEDIRECTORYENTRYFORTHEFIRSTSUBROUTINEONTHELIBRARYTAPEISSPECIFIEDBYTHELINKVARIABLEFIRSTBTHELISTOFSUBROUTINESDIRECTLYREFERREDTOBYTHEPROGRAMTOBELOADEDTHISISSTOREDINCONSECUTIVELOCATIONSXXXNWHEREISAVARIABLEKNOWNTOTHELOADINGROUTINEEACHENTRYINTHISLISTISALINKTOTHEDIRECTORYENTRYFORTHESUBROUTINEDESIREDTHELOADINGROUTINEALSOKNOWSMLOCTHEAMOUNTOFRELOCATIONTOBEUSEDFORTHEFIRSTSUBROUTINELOADEDASASMALLEXAMPLECONSIDERTHEFOLLOWINGCONFIGURATIONTHETAPEDIRECTORYINTHISCASESHOWSTHATTHESUBROUTINESONTAPEAREANDINTHATORDERSUBROUTINETAKESLOCATIONSANDIMPLIESTHEUSEOFSUBROUTINESANDETCTHEPROGRAMTOBELOADEDREQUIRESSUBROUTINESANDWHICHARETOBEPLACEDINTOLOCATIONSTHESESUBROUTINESINTURNIMPLYTHATANDMUSTALSOBELOADEDTHESUBROUTINEALLOCATORISTOCHANGETHEXTABLESOTHATEACHENTRYXXXHASTHEFORMEXCEPTTHELASTENTRYWHICHISEXPLAINEDBELOWWHERESUBISASUBROUTINETOBELOADEDANDBASEISTHEAMOUNTOFRELOCATIONTHESEENTRIESARETOBEINTHEORDERINWHICHTHESUBROUTINESAPPEARONTAPEONEPOSSIBLEANSWERFORTHEEXAMPLEABOVEWOULDBETHELASTENTRYCONTAINSTHEFIRSTUNUSEDMEMORYADDRESSCLEARLYTHISISNOTTHEONLYWAYTOTREATALIBRARYOFSUBROUTINESTHEPROPERWAYTODESIGNALIBRARYISHEAVILYDEPENDENTUPONTHECOMPUTERUSEDANDTHEAPPLICATIONSTOBEHANDLEDLARGEMODERNCOMPUTERSREQUIREANENTIRELYDIFFERENTAPPROACHTOSUBROUTINELIBRARIESBUTTHISISANICEEXERCISEANYWAYBECAUSEITINVOLVESINTERESTINGMANIPULATIONSONBOTHSEQUENTIALANDLINKEDDATATHEPROBLEMINTHISEXERCISEISTODESIGNANALGORITHMFORTHESTATEDTASKYOURALLOCATORMAYTRANSFORMTHETAPEDIRECTORYINANYWAYASITPREPARESITSANSWERSINCETHETAPEDIRECTORYCANBEREADINANEWBYTHESUBROUTINEALLOCATORONITSNEXTASSIGNMENTANDTHETAPEMARKINGALGORITHMSUBROUTINEALLOCATIONLOADINGROUTINEDIRECTORYISNOTNEEDEDBYOTHERPARTSOFTHELOADINGROUTINEONESOLUTIONISTOPROCEEDINTWOPHASESASFOLLOWSPHASEWEUSETHEXTABLEASASEQUENTIALSTACKASWEMARKORFOREACHSUBROUTINETHATNEEDSTOBEUSEDAAFORSETIFAIFGOTOPHASEOTHERWISESETANDDECREASENBYAIFGOTOAOTHERWISESETAIFSETIFANDDOASIMILARSETOFACTIONSWITHSUBPGOTOAPHASEWEGOTHROUGHTHETABLEANDALLOCATEMEMORYBSETBIFSETANDTERMINATETHEALGORITHMBIFSETBSETANDRETURNTOBWRITEAPROGRAMFORTHESUBROUTINEALLOCATIONALGORITHMOFEXERCISECOMMENTSONTHEFOLLOWINGCODEARELEFTTOTHEREADERSOLVEGAMETHEFOLLOWINGCONSTRUCTIONSHOWSHOWTOSOLVEAFAIRLYGENERALTYPEOFTWOPERSONGAMEINCLUDINGCHESSNIMANDMANYSIMPLERGAMESGAMESCONSIDERAFINITESETOFNODESEACHOFWHICHREPRESENTSAPOSSIBLEPOSITIONINTHEGAMEFOREACHPOSITIONTHEREAREZEROORMOREMOVESTHATTRANSFORMTHATPOSITIONINTOSOMEOTHERPOSITIONWESAYTHATPOSITIONISAPREDECESSOROFPOSITIONANDISASUCCESSOROFIFTHEREISAMOVEFROMTOCERTAINPOSITIONSTHATHAVENOSUCCESSORSARECLASSIFIEDASWONORLOSTPOSITIONSTHEPLAYERTOMOVEINPOSITIONISTHEOPPONENTOFTHEPLAYERTOMOVEINTHESUCCESSORSOFPOSITIONGIVENSUCHACONFIGURATIONOFPOSITIONSWECANCOMPUTETHECOMPLETESETOFWONPOSITIONSTHOSEINWHICHTHENEXTPLAYERTOMOVECANFORCEAVICTORYANDTHECOMPLETESETOFLOSTPOSITIONSTHOSEINWHICHTHEPLAYERMUSTLOSEAGAINSTANEXPERTOPPONENTBYREPEATEDLYDOINGTHEFOLLOWINGOPERATIONUNTILITYIELDSNOCHANGEMARKAPOSITIONLOSTIFALLITSSUCCESSORSAREMARKEDWONMARKAPOSITIONWONIFATLEASTONEOFITSSUCCESSORSISMARKEDLOSTAFTERTHISOPERATIONHASBEENREPEATEDASMANYTIMESASPOSSIBLETHEREMAYBESOMEPOSITIONSTHATHAVENOTBEENMARKEDATALLAPLAYERINSUCHAPOSITIONCANNEITHERFORCEAVICTORYNORBECOMPELLEDTOLOSETHISPROCEDUREFOROBTAININGTHECOMPLETESETOFWONANDLOSTPOSITIONSCANBEADAPTEDTOANEFFICIENTALGORITHMFORCOMPUTERSTHATCLOSELYRESEMBLESALGORITHMTWEMAYKEEPWITHEACHPOSITIONACOUNTOFTHENUMBEROFITSSUCCESSORSTHATHAVENOTBEENMARKEDWONANDALISTOFALLITSPREDECESSORSTHEPROBLEMINTHISEXERCISEISTOWORKOUTTHEDETAILSOFTHEALGORITHMTHATHASJUSTBEENSOVAGUELYDESCRIBEDANDTOAPPLYITTOSOMEINTERESTINGGAMESTHATDONOTINVOLVETOOMANYPOSSIBLEPOSITIONSLIKETHEMILITARYGAMEELUCASRECREATIONSMATHEMATIQUESPARISERBERLEKAMPJHCONWAYANDRKGUYWINNINGWAYSAKPETERSCHAPTERHAREANDHOUNDSSEETHEMILITARYGAMEMILITARYGAMEGAMESWEGIVEHEREONLYAFEWCOMMENTSRELATEDTOTHEMILITARYGAMELETBETHEPLAYERWITHTHREEMENWHOSEPIECESSTARTONNODESALETBETHEOTHERPLAYERINTHISGAMEMUSTTRAPANDIFCANCAUSEAPOSITIONTOBEREPEATEDFORASECONDTIMEWECANCONSIDERTHEWINNERTOAVOIDKEEPINGTHEENTIREPASTHISTORYOFTHEGAMEASANINTEGRALPARTOFTHEPOSITIONSHOWEVERWESHOULDMODIFYTHEALGORITHMINTHEFOLLOWINGWAYSTARTBYMARKINGTHEPOSITIONSBWITHTOMOVEASLOSTANDAPPLYTHESUGGESTEDALGORITHMNOWTHEIDEAISFORPLAYERTOMOVEONLYTOSLOSTPOSITIONSBUTMUSTALSOTAKEPRECAUTIONSAGAINSTREPEATINGPRIORMOVESAGOODCOMPUTERGAMEPLAYINGPROGRAMWILLUSEARANDOMNUMBERGENERATORTOSELECTBETWEENSEVERALWINNINGMOVESWHENMORETHANONEISPRESENTSOANOBVIOUSTECHNIQUEWOULDBETOMAKETHECOMPUTERPLAYINGJUSTCHOOSERANDOMLYAMONGTHOSEMOVESTHATLEADTOALOSTPOSITIONFORBUTTHEREAREINTERESTINGSITUATIONSTHATMAKETHISPLAUSIBLEPROCEDUREFAILFOREXAMPLECONSIDERPOSITIONWITHTOMOVETHISISAWONPOSITIONFROMPOSITIONPLAYERMIGHTTRYMOVINGTOWHICHISALOSTPOSITIONFORACCORDINGTOTHEALGORITHMBUTTHENPLAYSTOBANDTHISFORCESTOPLAYTOBAFTERWHICHPLAYSBACKTOHASWONSINCETHEFORMERPOSITIONHASBEENREPEATEDTHISEXAMPLESHOWSTHATTHEALGORITHMMUSTBEREINVOKEDAFTEREVERYMOVEHASBEENMADESTARTINGWITHEACHPOSITIONTHATHASPREVIOUSLYOCCURREDMARKEDLOSTIFISTOMOVEORWONIFISTOMOVETHEMILITARYGAMEMAKESAVERYSATISFACTORYCOMPUTERDEMONSTRATIONPROGRAMABOARDFORTHEMILITARYGAMEAGIVEANALGORITHMTOERASEANENTIRELISTLIKEERASEALINEARLISTBYPUTTINGALLOFITSNODESONTHEAVAILSTACKGIVENONLYTHEVALUEOFFIRSTTHEALGORITHMSHOULDOPERATEASFASTASPOSSIBLEBREPEATPARTAFORALISTLIKEGIVENTHEVALUESOFFANDRAIFDONOTHINGOTHERWISESETANDTHENREPEATEDLYSETZEROORMORETIMESUNTILFINALLYSETANDANDPROBABLYALSOBIFDONOTHINGOTHERWISESETANDANDPROBABLYALSOEZQXXIESUPPOSETHATQUEUESAREREPRESENTEDALMOSTASINBUTWITHRPOINTINGTOABLANKNODEJUSTAFTERTHEREARTHEQUEUEISEMPTYIFANDONLYIFTHECONTENTSOFINFORAREIRRELEVANTWHATINSERTIONANDDELETIONPROCEDURESSHOULDREPLACEANDTOINSERTSETWENEEDNOTSETLINKPBUTTHATLACKOFDISCIPLINEMIGHTCONFUSEAGARBAGECOLLECTIONALGORITHMASINEXERCISETODELETEUNDERFLOWIFOTHERWISESETCIRCULARLISTSCIRCULARLINKINGQUEUELINKEDSTACKLINKEDASLIGHTCHANGEINTHEMANNEROFLINKINGFURNISHESUSWITHANIMPORTANTALTERNATIVETOTHEMETHODSOFTHEPRECEDINGSECTIONACIRCULARLYLINKEDLISTBRIEFLYACIRCULARLISTHASTHEPROPERTYTHATITSLASTNODELINKSBACKTOTHEFIRSTINSTEADOFTOITISTHENPOSSIBLETOACCESSALLOFTHELISTSTARTINGATANYGIVENPOINTWEALSOACHIEVEANEXTRADEGREEOFSYMMETRYANDIFWECHOOSEWENEEDNOTTHINKOFTHELISTASHAVINGALASTORFIRSTNODETHEFOLLOWINGSITUATIONISTYPICALASSUMETHATTHENODESHAVETWOFIELDSINFOANDLINKASINTHEPRECEDINGSECTIONTHEREISALINKVARIABLEPTRTHATPOINTSTOTHERIGHTMOSTNODEOFTHELISTANDLINKPTRISTHEADDRESSOFTHELEFTMOSTNODETHEFOLLOWINGPRIMITIVEOPERATIONSAREMOSTIMPORTANTINSERTIONONTOSTACKINSERTIONINTOQUEUEDELETIONFROMSTACKDELETIONFROMQUEUEAINSERTYATLEFTBINSERTYATRIGHTINSERTYATLEFTTHENCSETYTOLEFTNODEANDDELETEOPERATIONBISALITTLESURPRISINGATFIRSTGLANCETHEOPERATIONEFFECTIVELYMOVESTHELEFTMOSTNODETOTHERIGHTINTHEDIAGRAMANDTHISISQUITEEASYTOUNDERSTANDIFTHELISTISREGARDEDASACIRCLEINSTEADOFASASTRAIGHTLINEWITHCONNECTEDENDSTHEALERTREADERBARRYSUBTLEREFERENCETOWILLOBSERVETHATWEHAVEMADEASERIOUSMISTAKEINOPERATIONSABANDCWHATISITANSWERWEHAVEFORGOTTENTOCONSIDERTHEPOSSIBILITYOFANEMPTYLISTIFFOREXAMPLEOPERATIONCISAPPLIEDFIVETIMESTOTHELISTWEWILLHAVEPTRPOINTINGTOANODEINTHEAVAILLISTANDTHISCANLEADTOSERIOUSDIFFICULTIESFOREXAMPLEIMAGINEAPPLYINGOPERATIONCONCEMOREIFWETAKETHEPOSITIONTHATPTRWILLEQUALINTHECASEOFANEMPTYLISTWECOULDREMEDYTHEOPERATIONSBYINSERTINGTHEADDITIONALINSTRUCTIONSIFTHENOTHERWISEAFTERINAPRECEDINGCBYTHETESTIFTHENUNDERFLOWANDFOLLOWINGCBYIFTHENUNDERFLOWNOTICETHATOPERATIONSABANDCGIVEUSTHEACTIONSOFANOUTPUTRESTRICTEDDEQUEINTHESENSEOFSECTIONTHEREFOREWEFINDINPARTICULARTHATACIRCULARLISTCANBEUSEDASEITHERASTACKORAQUEUEOPERATIONSAANDCCOMBINEDGIVEUSASTACKOPERATIONSBANDCGIVEUSAQUEUETHESEOPERATIONSAREONLYSLIGHTLYLESSDIRECTTHANTHEIRCOUNTERPARTSINTHEPREVIOUSSECTIONWHEREWESAWTHATOPERATIONSABANDCCANBEPERFORMEDONLINEARLISTSUSINGTWOPOINTERSFANDRDELETIONFROMQUEUEDELETIONFROMSTACKINSERTIONINTOQUEUEINSERTIONONTOSTACKSTACKLINKEDQUEUELINKEDOTHERIMPORTANTOPERATIONSBECOMEEFFICIENTWITHCIRCULARLISTSFOREXAMPLEITISVERYCONVENIENTTOERASEALISTTHATISTOPUTANENTIRECIRCULARERASEALINEARLISTLISTONTOTHEAVAILSTACKATONCERECALLTHATTHEOPERATIONDENOTESINTERCHANGEEXCHANGEOPERATIONISCLEARLYVALIDIFPTRPOINTSANYWHEREINTHECIRCULARLISTAFTERWARDSWESHOULDOFCOURSESETUSINGASIMILARTECHNIQUEIFPTRANDPTRPOINTTODISJOINTCIRCULARLISTSLANDLRESPECTIVELYWECANINSERTTHEENTIRELISTLATTHERIGHTOFLSPLITTINGONECIRCULARLISTINTOTWOINVARIOUSWAYSISANOTHERSIMPLEOPERATIONTHATCANBEDONETHESEOPERATIONSCORRESPONDTOTHECONCATENATIONANDDECONCATENATIONOFSTRINGSTHUSWESEETHATACIRCULARLISTCANBEUSEDNOTONLYTOREPRESENTINHERENTLYCIRCULARSTRUCTURESBUTALSOTOREPRESENTLINEARSTRUCTURESACIRCULARLISTWITHONEPOINTERTOTHEREARNODEISESSENTIALLYEQUIVALENTTOASTRAIGHTLINEARLISTWITHTWOPOINTERSTOTHEFRONTANDREARTHENATURALQUESTIONTOASKINCONNECTIONWITHTHISOBSERVATIONISHOWDOWEFINDTHEENDOFTHELISTWHENTHEREISCIRCULARSYMMETRYTHEREISNOLINKTOSIGNALTHEENDTHEANSWERISTHATWHENWEAREOPERATINGONANENTIRELISTMOVINGFROMONENODETOTHENEXTWESHOULDSTOPWHENWEGETBACKTOOURSTARTINGPLACEASSUMINGOFCOURSETHATTHESTARTINGPLACEISSTILLPRESENTINTHELISTANALTERNATIVESOLUTIONTOTHEPROBLEMJUSTPOSEDISTOPUTASPECIALRECOGNIZABLENODEINTOEACHCIRCULARLISTASACONVENIENTSTOPPINGPLACETHISSPECIALNODEISCALLEDTHELISTHEADANDINAPPLICATIONSWEOFTENFINDITISQUITECONVENIENTTOINSISTTHATEVERYCIRCULARLISTMUSTHAVEEXACTLYONENODETHATISITSLISTHEADONEADVANTAGEISTHATTHECIRCULARLISTWILLTHENNEVERBEEMPTYWITHALISTHEADDIAGRAMBECOMESREFERENCESTOLISTSLIKEAREUSUALLYMADEVIATHELISTHEADWHICHMIGHTOCCUPYAFIXEDMEMORYLOCATIONBUTAFIXEDLISTHEADLEAVESUSWITHOUTANYPOINTERTOTHERIGHTENDSOITFORCESUSTOSACRIFICEOPERATIONBSTATEDABOVEINSTEADWECANRETAINBBYLETTINGTHELISTHEADBEMOBILESEEEXERCISEDIAGRAMMAYBECOMPAREDWITHLINKEDLISTATTHEBEGINNINGOFTHEPREVIOUSSECTIONINWHICHTHELINKASSOCIATEDWITHITEMNOWPOINTSTOLOCFIRSTINSTEADOFTOTHEVARIABLEFIRSTISNOWTHOUGHTOFASALINKWITHINANODENAMELYTHELINKTHATISINNODELOCFIRSTTHEPRINCIPALDIFFERENCEBETWEENANDLINKEDLISTISTHATMAKESITPOSSIBLETHOUGHNOTNECESSARILYEFFICIENTTOGETTOANYPOINTOFTHELISTFROMANYOTHERPOINTASANEXAMPLEOFTHEUSEOFCIRCULARLISTSWEWILLDISCUSSARITHMETICONPOLYNOMIALSINTHEVARIABLESANDWITHINTEGERCOEFFICIENTSADDITIONOFPOLYNOMIALSREPRESENTATIONOFPOLYNOMIALSTHEREAREMANYPROBLEMSINWHICHASCIENTISTWANTSTOMANIPULATEPOLYNOMIALSINSTEADOFJUSTNUMBERSWEARETHINKINGOFOPERATIONSLIKETHEMULTIPLICATIONOFTOGETLINKEDALLOCATIONISANATURALTOOLFORTHISPURPOSESINCEPOLYNOMIALSCANGROWTOUNPREDICTABLESIZESANDWEMAYWANTTOREPRESENTMANYPOLYNOMIALSINMEMORYATTHESAMETIMEWEWILLCONSIDERHERETHETWOOPERATIONSOFADDITIONANDMULTIPLICATIONLETUSSUPPOSETHATAPOLYNOMIALISREPRESENTEDASALISTINWHICHEACHNODESTANDSFORONENONZEROTERMANDHASTHETWOWORDFORMHERECOEFISTHECOEFFICIENTOFTHETERMINWEWILLASSUMETHATTHECOEFFICIENTSANDEXPONENTSWILLALWAYSLIEINTHERANGEALLOWEDBYTHISFORMATANDTHATITISNOTNECESSARYTOCHECKTHERANGESDURINGOURCALCULATIONSTHENOTATIONABCWILLBEUSEDTOSTANDFORTHEABCFIELDSOFTHENODETREATEDASASINGLEUNITTHESIGNOFABCNAMELYTHESIGNOFTHESECONDWORDINWILLALWAYSBEPLUSEXCEPTTHATTHEREISASPECIALNODEATTHEENDOFEVERYPOLYNOMIALTHATHASABCANDCOEFTHISSPECIALNODEISAGREATCONVENIENCEANALOGOUSTOOURDISCUSSIONOFALISTHEADABOVEBECAUSEITPROVIDESACONVENIENTSENTINELANDITAVOIDSTHEPROBLEMOFANEMPTYLISTCORRESPONDINGTOTHEPOLYNOMIALTHENODESOFTHELISTALWAYSAPPEARINDECREASINGORDEROFTHEABCFIELDIFWEFOLLOWTHEDIRECTIONOFTHELINKSEXCEPTTHATTHESPECIALNODEWHICHHASABCLINKSTOTHELARGESTVALUEOFABCFOREXAMPLETHEPOLYNOMIALWOULDBEREPRESENTEDTHUSREPRESENTATIONOFPOLYNOMIALSAPOLYADDALGORITHMAADDITIONOFPOLYNOMIALSTHISALGORITHMADDSPOLYNOMIALPTOPOLYNOMIALQASSUMINGTHATPANDQAREPOINTERVARIABLESPOINTINGTOPOLYNOMIALSHAVINGTHEFORMABOVETHELISTPWILLBEUNCHANGEDTHELISTQWILLRETAINTHESUMPOINTERVARIABLESPANDQRETURNTOTHEIRSTARTINGPOINTSATTHECONCLUSIONOFTHISALGORITHMAUXILIARYPOINTERVARIABLESQANDQAREALSOUSEDAINITIALIZESETNOWBOTHPANDQPOINTTOTHELEADINGTERMSOFTHEIRPOLYNOMIALSTHROUGHOUTMOSTOFTHISALGORITHMTHEVARIABLEQWILLBEONESTEPBEHINDQINTHESENSETHATAABCPABCQIFSETANDANDREPEATTHISSTEPIFGOTOSTEPAIFGOTOSTEPAAADDCOEFFICIENTSWEVEFOUNDTERMSWITHEQUALEXPONENTSIFTHEALGORITHMTERMINATESOTHERWISESETNOWIFGOTOAOTHERWISESETANDGOTOACURIOUSLYTHELATTEROPERATIONSAREIDENTICALTOSTEPAADELETEZEROTERMSETDELETIONFROMLINKEDLISTANDAZEROTERMCREATEDINSTEPAHASBEENREMOVEDFROMPOLYNOMIALQSETANDGOBACKTOAAINSERTNEWTERMPOLYNOMIALPCONTAINSATERMINSERTIONINTOLINKEDLISTTHATISNOTPRESENTINPOLYNOMIALQSOWEINSERTITINPOLYNOMIALQSETANDRETURNTOSTEPAONEOFTHEMOSTNOTEWORTHYFEATURESOFALGORITHMAISTHEMANNERINWHICHTHEPOINTERVARIABLEQFOLLOWSTHEPOINTERQAROUNDTHELISTTHISISVERYTYPICALOFLISTPROCESSINGALGORITHMSANDWEWILLSEEADOZENMOREALGORITHMSWITHTHESAMECHARACTERISTICCANTHEREADERSEEWHYTHISIDEAWASUSEDINALGORITHMAAREADERWHOHASLITTLEPRIOREXPERIENCEWITHLINKEDLISTSWILLFINDITVERYINSTRUCTIVETOSTUDYALGORITHMACAREFULLYASATESTCASETRYADDINGTOGIVENALGORITHMATHEMULTIPLICATIONOPERATIONISSURPRISINGLYEASYALGORITHMMMULTIPLICATIONOFPOLYNOMIALSTHISALGORITHMANALOGOUSTOALGORITHMAREPLACESPOLYNOMIALQBYMNEXTMULTIPLIERSETIFTHEALGORITHMTERMINATESMMULTIPLYCYCLEPERFORMALGORITHMAEXCEPTTHATWHEREVERTHENOTATIONABCPAPPEARSINTHATALGORITHMREPLACEITBYIFTHENOTHERWISEWHEREVERCOEFPAPPEARSINTHATALGORITHMREPLACEITBYTHENGOBACKTOSTEPMTHEPROGRAMMINGOFALGORITHMAINLANGUAGESHOWSAGAINTHEEASEWITHWHICHLINKEDLISTSAREMANIPULATEDINACOMPUTERINTHEFOLLOWINGCODEWEASSUMETHATOVERFLOWISASUBROUTINETHATEITHERTERMINATESTHEPROGRAMDUETOLACKOFMEMORYSPACEORFINDSFURTHERAVAILABLESPACEANDEXITSTONOTETHATALGORITHMATRAVERSESEACHOFTHETWOLISTSJUSTONCEITISNOTNECESSARYTOLOOPAROUNDSEVERALTIMESUSINGKIRCHHOFFSLAWWEFINDTHATANANALYSISOFTHEINSTRUCTIONCOUNTSPRESENTSNODIFFICULTIESTHEEXECUTIONANALYSISOFALGORITHMSTIMEDEPENDSONFOURQUANTITIESTHEANALYSISGIVENWITHPROGRAMAUSESTHEABBREVIATIONSTHERUNNINGTIMEFORISTHETOTALNUMBEROFNODESINTHESTORAGEPOOLNEEDEDDURINGTHEEXECUTIONOFTHEALGORITHMISATLEASTANDATMOSTEXERCISESTHETEXTSUGGESTSATTHEBEGINNINGOFTHISSECTIONTHATANEMPTYCIRCULARLISTCOULDBEREPRESENTEDBYITMIGHTBEMORECONSISTENTWITHTHEPHILOSOPHYOFCIRCULARLISTSTOHAVEINDICATEANEMPTYLISTDOESTHISCONVENTIONFACILITATEOPERATIONSABORCDESCRIBEDATTHEBEGINNINGOFTHISSECTIONNOITDOESNOTHELPITSEEMSTOHINDERIFANYTHINGTHESTATEDCONVENTIONISNOTESPECIALLYCONSISTENTWITHTHECIRCULARLISTPHILOSOPHYUNLESSWEPUTNODELOCPTRINTOTHELISTASITSLISTHEADDRAWBEFOREANDAFTERDIAGRAMSILLUSTRATINGTHEEFFECTOFTHECONCATENATIONOPERATIONASSUMINGTHATPTRANDPTRAREBEFOREAAFTERACIRCSPLITWHATDOESOPERATIONDOIFPTRANDPTRAREBOTHPOINTINGTONODESINTHESAMECIRCULARLISTIFTHEONLYEFFECTISIFTHEEXCHANGEOFLINKSBREAKSTHELISTINTOTWOPARTSASIFACIRCLEHADBEENBROKENINTWOBYCUTTINGATTWOPOINTSTHESECONDPARTOFTHEOPERATIONTHENMAKESPOINTTOACIRCULARLISTTHATCONSISTSOFTHENODESTHATWOULDHAVEBEENTRAVERSEDIFINTHEORIGINALLISTWEFOLLOWEDTHELINKSFROMTOXXIESTATEINSERTIONANDDELETIONOPERATIONSTHATGIVETHEEFFECTOFANOUTPUTRESTRICTEDDEQUEINPARTICULAROFASTACKANDORQUEUEUSINGREPRESENTATIONWITHPTRPOINTINGTOTHECURRENTLISTHEADINSERTIONONTOSTACKINSERTIONONTOQUEUEDELETIONFROMSTACKDELETIONFROMQUEUETHETEXTSOPERATIONAISUNCHANGEDSOISOPERATIONCBUTITSNOWPRECEDEDBYIFTHENUNDERFLOWOPERATIONBBECOMESDESIGNANALGORITHMTHATTAKESACIRCULARLISTSUCHASANDREVERSESTHEDIRECTIONOFALLTHEARROWSREVERSINGALISTCOMPAREWITHEXERCISEINVERTLISTSETANDTHENWHILEREPEATEDLYSETAFTERWARDSFIGFIGADDITIONOFPOLYNOMIALSGIVEDIAGRAMSOFTHELISTREPRESENTATIONFORTHEPOLYNOMIALSDIAGRAMSABABWHYISITUSEFULTOASSUMETHATTHEABCFIELDSOFAPOLYNOMIALLISTAPPEARINDECREASINGORDERMATCHINGTERMSINTHEPOLYNOMIALARELOCATEDINONEPASSOVERTHELISTSOREPEATEDRANDOMSEARCHESAREAVOIDEDALSOINCREASINGORDERWOULDBEINCOMPATIBLEWITHTHESENTINELTRAILINGPTRWHYISITUSEFULTOHAVEQTRAILINGONESTEPBEHINDQINALGORITHMAWEMUSTKNOWWHATNODEPOINTSTOTHECURRENTNODEOFINTERESTIFWEAREGOINGTODELETETHATNODEORTOINSERTANOTHERONEAHEADOFITTHEREAREALTERNATIVESHOWEVERWECOULDDELETENODEQBYSETTINGANDTHENSETTINGWECOULDINSERTANODEQINFRONTOFNODEQBYFIRSTINTERCHANGINGTHENSETTINGTHESECLEVERTRICKSALLOWTHEDELETIONANDINSERTIONWITHOUTKNOWINGWHICHNODELINKSTONODEQTHEYWEREUSEDINEARLYVERSIONSOFIPLBUTTHEYHAVETHEDISADVANTAGETHATTHESENTINELNODEATTHEENDOFAPOLYNOMIALWILLOCCASIONALLYMOVEANDOTHERLINKVARIABLESMAYBEPOINTINGTOTHISNODEWOULDALGORITHMAWORKPROPERLYIFIEBOTHPOINTERVARIABLESPOINTATTHESAMEPOLYNOMIALWOULDALGORITHMMWORKPROPERLYIFIFORIFALGORITHMAWITHSIMPLYDOUBLESPOLYNOMIALQASITSHOULDEXCEPTINTHEANOMALOUSCASETHATFORSOMETERMWITHWHENITFAILSBADLYALGORITHMMWITHALSOGIVESTHEEXPECTEDRESULTALGORITHMMWITHSETSPOLYNOMIALPOLYNOMIALPTIMESIFALTHOUGHTHISISNOTIMMEDIATELYOBVIOUSWHENALGORITHMMSURPRISINGLYGIVESTHEEXPECTEDRESULTPOLYNOMIALPOLYNOMIALQPOLYNOMIALQPOLYNOMIALPEXCEPTTHATTHECOMPUTATIONBLOWSUPWHENTHECONSTANTTERMOFPOLYNOMIALPISTHEALGORITHMSINTHISSECTIONASSUMETHATWEAREUSINGTHREEVARIABLESANDINTHEPOLYNOMIALSANDTHATTHEIREXPONENTSINDIVIDUALLYNEVEREXCEEDWHEREISTHEBYTESIZEINSCASESUPPOSEINSTEADTHATWEWANTTODOADDITIONANDMULTIPLICATIONOFPOLYNOMIALSINONLYONEVARIABLEANDTOLETITSEXPONENTTAKEONVALUESUPTOWHATCHANGESSHOULDBEMADETOALGORITHMSAANDMNONETHEONLYPOSSIBLEDIFFERENCEWOULDBEINSTEPMREMOVINGERRORCHECKSTHATABORCMIGHTINDIVIDUALLYOVERFLOWTHESEERRORCHECKSWERENOTSPECIFIEDBECAUSEWEASSUMEDTHATTHEYWERENOTNECESSARYINOTHERWORDSTHEALGORITHMSINTHISSECTIONMAYBEREGARDEDASOPERATIONSONTHEPOLYNOMIALBBINSTEADOFONTHEPURPOSEOFTHISEXERCISEANDMANYOFTHOSEFOLLOWINGISTOCREATEAPACKAGEOFSUBROUTINESUSEFULFORPOLYNOMIALARITHMETICINCONJUNCTIONWITHPROGRAMASINCEALGORITHMSAANDMCHANGETHEVALUEOFPOLYNOMIALQITISSOMETIMESDESIRABLETOHAVEASUBROUTINETHATMAKESACOPYOFAGIVENPOLYNOMIALWRITEASUBROUTINEWITHTHEFOLLOWINGSPECIFICATIONSSUBROUTINESCOPYALINEARLISTCALLINGSEQUENCEJMPCOPYENTRYCONDITIONSEXITCONDITIONSRIPOINTSTOANEWLYCREATEDPOLYNOMIALEQUALTOPOLYNOMIALPRIISUNCHANGEDOTHERREGISTERSAREUNDEFINEDCOMPARETHERUNNINGTIMEOFTHEPROGRAMINEXERCISEWITHTHATOFPROGRAMAWHENPOLYNOMIALLETTHEPOLYNOMIALCOPIEDHAVETERMSPROGRAMATAKESANDTOMAKEITAFAIRCOMPARISONWESHOULDADDTHETIMETOCREATEAZEROPOLYNOMIALSAYWITHEXERCISETHEPROGRAMOFEXERCISETAKESABOUTASMUCHWRITEASUBROUTINEWITHTHEFOLLOWINGSPECIFICATIONSERASEALINEARLISTCALLINGSEQUENCEJMPERASEENTRYCONDITIONSEXITCONDITIONSPOLYNOMIALPHASBEENADDEDTOTHEAVAILLISTALLREGISTERCONTENTSAREUNDEFINEDNOTETHISSUBROUTINECANBEUSEDINCONJUNCTIONWITHTHESUBROUTINEOFEXERCISEINTHESEQUENCELDQJMPERASELDPJMPCOPYSTQTOACHIEVETHEEFFECTPOLYNOMIALPOLYNOMIALPWRITEASUBROUTINEWITHTHEFOLLOWINGSPECIFICATIONSCALLINGSEQUENCEJMPZEROENTRYCONDITIONSNONEEXITCONDITIONSRIPOINTSTOANEWLYCREATEDPOLYNOMIALEQUALTOOTHERREGISTERCONTENTSAREUNDEFINEDWRITEASUBROUTINETOPERFORMALGORITHMMHAVINGTHEFOLLOWINGSPECIFICATIONSCALLINGSEQUENCEJMPMULTENTRYCONDITIONSEXITCONDITIONSRIRIRIAREUNCHANGEDOTHERREGISTERSUNDEFINEDNOTEUSEPROGRAMAASASUBROUTINECHANGINGTHESETTINGSOFSWSWANDSWMESTIMATETHERUNNINGTIMEOFTHESUBROUTINEINEXERCISEINTERMSOFSOMERELEVANTPARAMETERSMULTIPLICATIONOFPOLYNOMIALSSUBROUTINESANALYSISOFALGORITHMSADDITIONOFPOLYNOMIALSLETBETHENUMBEROFTERMSINPOLYNOMIALMTHESUBROUTINEREQUIRESUNITSOFTIMEWHERETHESUMMATIONSREFERTOTHECORRESPONDINGQUANTITIESDURINGTHEACTIVATIONSOFPROGRAMATHENUMBEROFTERMSINPOLYNOMIALQGOESUPBYEACHACTIVATIONOFPROGRAMAIFWEMAKETHENOTUNREASONABLEASSUMPTIONTHATANDWHEREWEGETTHERESPECTIVESUMSEQUALTOANDWHEREISTHEVALUEOFINTHEFIRSTITERATIONTHEGRANDTOTALISTHISANALYSISINDICATESTHATTHEMULTIPLIEROUGHTTOHAVEFEWERTERMSTHANTHEMULTIPLICANDSINCEWEHAVETOSKIPOVERUNMATCHINGTERMSINPOLYNOMIALQMOREOFTENSEEEXERCISEBROWNPOLYMULTFORAFASTERALGORITHMWHATADVANTAGEISTHEREINREPRESENTINGPOLYNOMIALSWITHACIRCULARLISTASINTHISSECTIONINSTEADOFWITHASTRAIGHTLINEARLINKEDLISTTERMINATEDBYASINTHEPREVIOUSSECTIONREPRESENTATIONOFPOLYNOMIALSTHEREACTUALLYISVERYLITTLEADVANTAGEADDITIONANDMULTIPLICATIONROUTINESWITHEITHERTYPEOFLISTWOULDBEVIRTUALLYTHESAMETHEEFFICIENCYOFTHEERASESUBROUTINESEEEXERCISEISAPPARENTLYTHEONLYIMPORTANTDIFFERENCEXORTRICKDEVISEAWAYTOREPRESENTCIRCULARLISTSINSIDEACOMPUTERINSUCHAWAYTHATTHELISTCANBETRAVERSEDEFFICIENTLYINBOTHDIRECTIONSYETONLYONELINKFIELDISUSEDPERNODEHINTIFWEAREGIVENTWOPOINTERSTOTWOSUCCESSIVENODESANDITSHOULDBEPOSSIBLETOLOCATEBOTHANDTWOWAYLINKAGELETTHELINKFIELDOFNODECONTAINXIXIWHEREDENOTESEXCLUSIVEOROTHERINVERTIBLEOPERATIONSSUCHASADDITIONORSUBTRACTIONMODULOTHEPOINTERFIELDSIZECOULDALSOBEUSEDITISCONVENIENTTOINCLUDETWOADJACENTLISTHEADSINTHECIRCULARLISTTOHELPGETTHINGSSTARTEDPROPERLYTHEORIGINOFTHISINGENIOUSTECHNIQUEISUNKNOWNCIRCULARLINKINGDOUBLYLINKEDLISTSDOUBLYLINKEDLISTSFOREVENGREATERFLEXIBILITYINTHEMANIPULATIONOFLINEARLISTSWECANINCLUDETWOLINKSINEACHNODEPOINTINGTOTHEITEMSONEITHERSIDEOFTHATNODEHERELEFTANDRIGHTAREPOINTERVARIABLESTOTHELEFTANDRIGHTOFTHELISTEACHNODEOFTHELISTINCLUDESTWOLINKSCALLEDFOREXAMPLELLINKANDRLINKTHEOPERATIONSOFAGENERALDEQUEAREREADILYDEQUELINKEDPERFORMEDWITHSUCHAREPRESENTATIONSEEEXERCISEHOWEVERMANIPULATIONSOFDOUBLYLINKEDLISTSALMOSTALWAYSBECOMEMUCHEASIERIFALISTHEADLISTHEADLLINKRLINKNODEISPARTOFEACHLISTASDESCRIBEDINTHEPRECEDINGSECTIONWHENALISTHEADISPRESENTWEHAVETHEFOLLOWINGTYPICALDIAGRAMOFADOUBLYLINKEDLISTTHERLINKANDLLINKFIELDSOFTHELISTHEADTAKETHEPLACEOFLEFTANDRIGHTINTHEREISCOMPLETESYMMETRYBETWEENLEFTANDRIGHTTHELISTHEADCOULDEQUALLYWELLHAVEBEENSHOWNATTHERIGHTOFIFTHELISTISEMPTYBOTHLINKFIELDSOFTHELISTHEADPOINTTOTHEHEADITSELFTHELISTREPRESENTATIONCLEARLYSATISFIESTHECONDITIONIFXISTHELOCATIONOFANYNODEINTHELISTINCLUDINGTHEHEADTHISFACTISTHEPRINCIPALREASONTHATREPRESENTATIONISPREFERABLETOLISTHEADADOUBLYLINKEDLISTUSUALLYTAKESMOREMEMORYSPACETHANASINGLYLINKEDONEDOESALTHOUGHTHEREISSOMETIMESROOMFORANOTHERLINKINANODETHATDOESNTFILLACOMPLETECOMPUTERWORDBUTTHEADDITIONALOPERATIONSTHATCANBEPERFORMEDEFFICIENTLYWITHTWOWAYLINKSAREOFTENMORETHANAMPLECOMPENSATIONFORTHEEXTRASPACEREQUIREMENTBESIDESTHEOBVIOUSADVANTAGEOFBEINGABLETOGOBACKANDFORTHATWILLWHENEXAMININGADOUBLYLINKEDDELETIONFROMDOUBLYLINKEDLISTLISTONEOFTHEPRINCIPALNEWABILITIESISTHEFACTTHATWECANDELETENODEXFROMTHELISTITISINGIVENONLYTHEVALUEOFTHISDELETIONOPERATIONISEASYTODERIVEFROMABEFOREANDAFTERDIAGRAMFIGFIGANDITISVERYSIMPLEINALISTTHATHASONLYONEWAYLINKSWECANNOTDELETENODEXWITHOUTKNOWINGWHICHNODEPRECEDESITINTHECHAINSINCETHEPRECEDINGNODENEEDSTOHAVEITSLINKALTEREDWHENNODEXISDELETEDINALLTHEALGORITHMSCONSIDEREDINSECTIONSANDTHISADDITIONALKNOWLEDGEWASPRESENTDOUBLYLINKEDVSSINGLYLINKEDWHENEVERANODEWASTOBEDELETEDSEEINPARTICULARALGORITHMPOLYADDWHEREWEHADPOINTERQFOLLOWINGPOINTERQFORJUSTTHISPURPOSEBUTWEWILLMEETSEVERALALGORITHMSTHATREQUIREREMOVINGRANDOMNODESFROMTHEMIDDLEOFALISTANDDOUBLYLINKEDLISTSAREFREQUENTLYUSEDJUSTFORTHISREASONWESHOULDPOINTOUTTHATINACIRCULARLISTITISPOSSIBLETODELETENODEXGIVENXIFWEGOAROUNDTHEENTIRECIRCLETOFINDTHEPREDECESSOROFXBUTTHISOPERATIONISCLEARLYINEFFICIENTWHENTHELISTISLONGSOITISRARELYANACCEPTABLESUBSTITUTEFORDOUBLYLINKINGTHELISTSEEALSOTHEANSWERTOEXERCISETRAILINGPTRSIMILARLYADOUBLYLINKEDLISTPERMITSTHEEASYINSERTIONOFANODEADJACENTINSERTIONINTODOUBLYLINKEDLISTTONODEXATEITHERTHELEFTORTHERIGHTTHESTEPSDOSUCHANINSERTIONTOTHERIGHTOFNODEXANDBYINTERCHANGINGLEFTANDRIGHTWEGETTHECORRESPONDINGALGORITHMFORINSERTIONTOTHELEFTOPERATIONCHANGESTHESETTINGSOFFIVELINKSSOITISALITTLESLOWERTHANANINSERTIONOPERATIONINAONEWAYLISTWHEREONLYTHREELINKSNEEDRLINKLLINKDOUBLYLINKEDLISTSTWOWAYLINKAGETOBECHANGEDASANEXAMPLEOFTHEUSEOFDOUBLYLINKEDLISTSWEWILLNOWCONSIDERTHEWRITINGOFADISCRETESIMULATIONPROGRAMDISCRETESIMULATIONDISCRETESIMULATIONELEVATORMEANSTHESIMULATIONOFASYSTEMINWHICHALLCHANGESINTHESTATEOFTHESYSTEMMAYBEASSUMEDTOHAPPENATCERTAINDISCRETEINSTANTSOFTIMETHESYSTEMBEINGSIMULATEDISUSUALLYASETOFINDIVIDUALACTIVITIESTHATARELARGELYINDEPENDENTALTHOUGHTHEYINTERACTWITHEACHOTHEREXAMPLESARECUSTOMERSATASTORESHIPSINAHARBORPEOPLEINACORPORATIONINADISCRETESIMULATIONWEPROCEEDBYDOINGWHATEVERISTOBEDONEATACERTAININSTANTOFSIMULATEDTIMETHENADVANCETHESIMULATEDCLOCKTOTHENEXTTIMEWHENSOMEACTIONISSCHEDULEDTOOCCURBYCONTRASTACONTINUOUSSIMULATIONWOULDBESIMULATIONOFACTIVITIESTHATAREUNDERCONTINUOUSCHANGESSUCHASTRAFFICMOVINGONAHIGHWAYSPACESHIPSTRAVELINGTOOTHERPLANETSETCCONTINUOUSSIMULATIONCANOFTENBESATISFACTORILYAPPROXIMATEDBYDISCRETESIMULATIONWITHVERYSMALLTIMEINTERVALSBETWEENSTEPSHOWEVERINSUCHACASEWEUSUALLYHAVESYNCHRONOUSDISCRETESIMULATIONINWHICHMANYPARTSOFTHESYSTEMARESLIGHTLYALTEREDATEACHDISCRETETIMEINTERVALANDSUCHANAPPLICATIONGENERALLYCALLSFORASOMEWHATDIFFERENTTYPEOFPROGRAMORGANIZATIONTHANTHEKINDCONSIDEREDHERETHEPROGRAMDEVELOPEDBELOWSIMULATESTHEELEVATORSYSTEMINTHEMATHEMATICSBUILDINGOFTHECALIFORNIAINSTITUTEOFTECHNOLOGYTHERESULTSOFSUCHASIMULATIONWILLPERHAPSBEOFUSEONLYTOPEOPLEWHOMAKEREASONABLYFREQUENTVISITSTOCALTECHANDEVENFORTHEMITMAYBESIMPLERJUSTTOTRYUSINGTHEELEVATORSEVERALTIMESINSTEADOFWRITINGACOMPUTERPROGRAMBUTASISUSUALWITHSIMULATIONSTUDIESTHEMETHODSWEWILLUSEAREOFMUCHMOREINTERESTTHANTHEANSWERSGIVENBYTHEPROGRAMTHEMETHODSTOBEDISCUSSEDBELOWILLUSTRATETYPICALIMPLEMENTATIONTECHNIQUESUSEDWITHDISCRETESIMULATIONPROGRAMSTHEMATHEMATICSBUILDINGHASFIVEFLOORSSUBBASEMENTBASEMENTFIRSTSECONDANDTHIRDTHEREISASINGLEELEVATORWHICHHASAUTOMATICCONTROLSANDCANSTOPATEACHFLOORFORCONVENIENCEWEWILLRENUMBERTHEFLOORSANDORIGINONEACHFLOORTHEREARETWOCALLBUTTONSONEFORUPANDONEFORDOWNACTUALLYFLOORHASONLYUPANDFLOORHASONLYDOWNBUTWEMAYIGNORETHATANOMALYSINCETHEEXCESSBUTTONSWILLNEVERBEUSEDCORRESPONDINGTOTHESEBUTTONSTHEREARETENVARIABLESCALLUPANDCALLDOWNTHEREAREALSOVARIABLESCALLCARREPRESENTINGBUTTONSWITHINTHEELEVATORCARWHICHDIRECTITTOADESTINATIONFLOORWHENAPERSONPRESSESABUTTONTHEAPPROPRIATEVARIABLEISSETTOTHEELEVATORCLEARSTHEVARIABLETOAFTERTHEREQUESTHASBEENFULFILLEDSOFARWEHAVEDESCRIBEDTHEELEVATORFROMAUSERSPOINTOFVIEWTHESITUATIONISMOREINTERESTINGASVIEWEDBYTHEELEVATORTHEELEVATORISINONEOFTHREESTATESGOINGUPGOINGDOWNORNEUTRALTHECURRENTSTATEISINDICATEDTOPASSENGERSBYLIGHTEDARROWSINSIDETHEELEVATORIFITISINNEUTRALSTATEANDNOTONFLOORTHEMACHINEWILLCLOSEITSDOORSANDIFNOCOMMANDISGIVENBYTHETIMEITSDOORSARESHUTITWILLCHANGETOGOINGUPORGOINGDOWNHEADINGFORFLOORTHISISTHEHOMEFLOORSINCEMOSTPASSENGERSGETINTHEREONFLOORINNEUTRALSTATETHEDOORSWILLEVENTUALLYCLOSEANDTHEMACHINEWILLWAITSILENTLYFORANOTHERCOMMANDTHEFIRSTCOMMANDRECEIVEDFORANOTHERFLOORSETSTHEMACHINEGOINGUPORGOINGDOWNASAPPROPRIATEITSTAYSINTHISSTATEUNTILTHEREARENOCOMMANDSWAITINGINTHESAMEDIRECTIONANDTHENITSWITCHESDIRECTIONORSWITCHESTONEUTRALJUSTBEFOREOPENINGTHEDOORSDEPENDINGONWHATOTHERCOMMANDSAREINTHECALLVARIABLESTHEELEVATORTAKESACERTAINAMOUNTOFTIMETOOPENANDCLOSEITSDOORSTOACCELERATEANDDECELERATEANDTOGETFROMONEFLOORTOANOTHERALLOFTHESEQUANTITIESAREINDICATEDINTHEALGORITHMBELOWWHICHISMUCHMOREPRECISETHANANINFORMALDESCRIPTIONCANBETHEALGORITHMWEWILLNOWSTUDYMAYNOTREFLECTTHEELEVATORSTRUEPRINCIPLESOFOPERATIONBUTITISBELIEVEDTOBETHESIMPLESTSETOFRULESTHATEXPLAINALLTHEPHENOMENAOBSERVEDDURINGSEVERALHOURSOFEXPERIMENTATIONBYTHEAUTHORDURINGTHEWRITINGOFTHISSECTIONTHEELEVATORSYSTEMISSIMULATEDBYUSINGTWOCOROUTINESONEFORTHEPASSENGERSANDONEFORTHEELEVATORTHESEROUTINESSPECIFYALLTHECOROUTINESCLOCKSIMULATEDACTIONSTOBEPERFORMEDASWELLASVARIOUSTIMEDELAYSTHATARETOBEUSEDINTHESIMULATIONINTHEFOLLOWINGDESCRIPTIONTHEVARIABLETIMEREPRESENTSTHECURRENTVALUEOFTHESIMULATEDTIMECLOCKALLUNITSOFTIMEAREGIVENINTENTHSOFSECONDSTHEREAREALSOSEVERALOTHERVARIABLESFLOORTHECURRENTPOSITIONOFTHEELEVATORTODAVARIABLETHATISZEROEXCEPTDURINGTHETIMEPEOPLEAREGETTINGINOROUTOFTHEELEVATORTODAVARIABLETHATBECOMESZEROIFTHEELEVATORHASSATONONEFLOORWITHOUTMOVINGFORSECORMORETODAVARIABLETHATISZEROEXCEPTWHENTHEDOORSAREOPENBUTNOBODYISGETTINGINOROUTOFTHEELEVATORSTATETHECURRENTSTATEOFTHEELEVATORGOINGUPGOINGDOWNORNEUTRALINITIALLYANDCOROUTINEUUSERSEVERYONEWHOENTERSTHESYSTEMBEGINSTOPERFORMTHEACTIONSSPECIFIEDBELOWSTARTINGATSTEPUUENTERPREPAREFORSUCCESSORTHEFOLLOWINGQUANTITIESAREDETERMINEDINSOMEMANNERTHATWILLNOTBESPECIFIEDHEREINTHEFLOORONWHICHTHENEWUSERHASENTEREDTHESYSTEMOUTTHEFLOORTOWHICHTHISUSERWANTSTOGOGIVEUPTIMETHEAMOUNTOFTIMETHISUSERWILLWAITFORTHEELEVATORBEFORERUNNINGOUTOFPATIENCEANDDECIDINGTOWALKINTERTIMETHEAMOUNTOFTIMEBEFOREANOTHERUSERWILLENTERTHESYSTEMAFTERTHESEQUANTITIESHAVEBEENCOMPUTEDTHESIMULATIONPROGRAMSETSTHINGSUPSOTHATANOTHERUSERENTERSTHESYSTEMATUSIGNALANDWAITTHEPURPOSEOFTHISSTEPISTOCALLFORTHEELEVATORSOMESPECIALCASESARISEIFTHEELEVATORISALREADYONTHERIGHTFLOORIFANDIFTHEELEVATORSNEXTACTIONISSTEPEBELOWTHATISIFTHEELEVATORDOORSARENOWCLOSINGSENDTHEELEVATORIMMEDIATELYTOITSSTEPEANDCANCELITSACTIVITYETHISMEANSTHATTHEDOORSWILLOPENAGAINBEFORETHEELEVATORMOVESIFANDIFSETSETDTOANONZEROVALUEANDSTARTUPTHEELEVATORSACTIVITYEAGAINTHISMEANSTHATTHEELEVATORDOORSAREOPENONTHISFLOORBUTEVERYONEELSEHASALREADYGOTTENONOROFFELEVATORSTEPEISASEQUENCINGSTEPTHATGRANTSPEOPLEPERMISSIONTOENTERTHEELEVATORACCORDINGTONORMALLAWSOFCOURTESYTHEREFORERESTARTINGEGIVESTHISUSERACHANCETOGETINBEFORETHEDOORSCLOSEINALLOTHERCASESTHEUSERSETSORACCORDINGASORANDIFORTHEELEVATORISINITSDORMANTPOSITIONETHEDECISIONSUBROUTINESPECIFIEDBELOWISPERFORMEDTHEDECISIONSUBROUTINEISUSEDTOTAKETHEELEVATOROUTOFNEUTRALSTATEATCERTAINCRITICALTIMESUENTERQUEUEINSERTTHISUSERATTHEREAROFQUEUEINWHICHISALINEARLISTREPRESENTINGTHEPEOPLEWAITINGONTHISFLOORNOWTHEUSERWAITSPATIENTLYFORGIVEUPTIMEUNITSOFTIMEUNLESSTHEELEVATORARRIVESFIRSTMOREPRECISELYUNLESSSTEPEOFTHEELEVATORROUTINEBELOWSENDSTHISUSERTOUANDCANCELSTHESCHEDULEDACTIVITYUUGIVEUPIFORDELETETHISUSERFROMQUEUEINANDFROMTHESIMULATEDSYSTEMTHEUSERHASDECIDEDTHATTHEELEVATORISTOOSLOWORTHATABITOFEXERCISEWILLBEBETTERTHANANELEVATORRIDEIFANDTHEUSERSTAYSANDWAITSKNOWINGTHATTHEWAITWONTBELONGUGETINTHISUSERNOWLEAVESQUEUEINANDENTERSELEVATORWHICHISASTACKLIKELISTREPRESENTINGTHEPEOPLENOWONBOARDTHEELEVATORSETNOWIFSETORGOINGDOWNASAPPROPRIATEANDSETTHEELEVATORSACTIVITYETOBEEXECUTEDAFTERUNITSOFTIMETHISISASPECIALFEATUREOFTHEELEVATORALLOWINGTHEDOORSTOCLOSEFASTERTHANUSUALIFTHEELEVATORISINNEUTRALSTATEWHENTHEUSERSELECTSADESTINATIONFLOORTHEUNITTIMEINTERVALGIVESSTEPETHEOPPORTUNITYTOMAKESURETHATDISPROPERLYSETUPBYTHETIMESTEPETHEDOORCLOSINGACTIONOCCURSNOWTHEUSERWAITSUNTILBEINGSENTTOSTEPUBYSTEPEBELOWWHENTHEELEVATORHASREACHEDTHEDESIREDFLOORUGETOUTDELETETHISUSERFROMTHEELEVATORLISTANDFROMTHESIMULATEDSYSTEMCOROUTINEEELEVATORTHISCOROUTINEREPRESENTSTHEACTIONSOFTHEELEVATORSTEPEALSOHANDLESTHECONTROLOFWHENPEOPLEGETINANDOUTEWAITFORCALLATTHISPOINTTHEELEVATORISSITTINGATFLOORWITHTHEDOORSCLOSEDWAITINGFORSOMETHINGTOHAPPENIFSOMEONEPRESSESABUTTONTHEDECISIONSUBROUTINEWILLTAKEUSTOSTEPEOREMEANWHILEWAITECHANGEOFSTATEIFANDJJJFORALLTHENSETORACCORDINGASJFORALLORNOTANDSETALLCALLVARIABLESFORTHECURRENTFLOORTOZEROIFDOSIMILARACTIONSWITHDIRECTIONSREVERSEDEOPENDOORSSETDANDDTOANYNONZEROVALUESSETELEVATORACTIVITYETOSTARTUPINDEPENDENTLYAFTERUNITSOFTIMETHISACTIVITYMAYBECANCELEDINSTEPEBELOWBEFOREITOCCURSIFITHASALREADYBEENSCHEDULEDANDNOTCANCELEDWECANCELITANDRESCHEDULEITALSOSETELEVATORACTIVITYETOSTARTUPINDEPENDENTLYAFTERUNITSOFTIMETHENWAITUNITSOFTIMETOSIMULATEOPENINGOFTHEDOORSANDGOTOEELETPEOPLEOUTINIFANYONEINTHEELEVATORLISTHASSENDTHEUSEROFTHISTYPEWHOHASMOSTRECENTLYENTEREDIMMEDIATELYTOSTEPUWAITUNITSANDREPEATSTEPEIFNOSUCHUSERSEXISTBUTQUEUEFLOORISNOTEMPTYSENDTHEFRONTPERSONOFTHATQUEUEIMMEDIATELYTOSTEPUINSTEADOFUWAITUNITSANDREPEATSTEPEBUTIFQUEUEFLOORISEMPTYSETMAKEDNONZEROANDWAITFORSOMEOTHERACTIVITYTOINITIATEFURTHERACTIONSTEPEWILLSENDUSTOEORSTEPUWILLRESTARTEECLOSEDOORSIFWAITUNITSANDREPEATTHISSTEPTHEDOORSFLUTTERALITTLEBUTTHEYSPRINGOPENAGAINSINCESOMEONEISSTILLGETTINGOUTORINOTHERWISESETANDSETTHEELEVATORTOSTARTATSTEPEAFTERUNITSOFTIMETHISSIMULATESCLOSINGTHEDOORSAFTERPEOPLEHAVEFINISHEDGETTINGINOROUTBUTIFANEWUSERENTERSONTHISFLOORWHILETHEDOORSARECLOSINGTHEYWILLOPENAGAINASSTATEDINSTEPUTABTIMESTATEFLOORSTEPACTIONNUUSERARRIVESATFLOORDESTINATIONISDEELEVATORMOVINGDOWNDUUSERARRIVESATFLOORDESTINATIONISDEELEVATORMOVINGDOWNDUUSERARRIVESATFLOORDESTINATIONISDUUSERARRIVESATFLOORDESTINATIONISDUUSERDECIDESTOGIVEUPLEAVESTHESYSTEMDEELEVATORSTOPSNXEELEVATORDOORSSTARTTOOPENNXXEDOORSOPENNOBODYISTHERENXXEELEVATORDOORSSTARTTOCLOSEUXUUSERARRIVESATFLOORDESTINATIONISUXEELEVATORMOVINGUPUXEELEVATORMOVINGUPUXUUSERARRIVESATFLOORDESTINATIONISUXEELEVATORMOVINGUPUXEELEVATORMOVINGUPUXEELEVATORSTOPSNXEELEVATORDOORSSTARTTOOPENNXXUUSERGETSINDXXUUSERDECIDESTOGIVEUPLEAVESTHESYSTEMDXXEELEVATORDOORSSTARTTOCLOSEDXEELEVATORMOVINGDOWNDXUUSERARRIVESATFLOORDESTINATIONISDXEELEVATORSTOPSDXEELEVATORDOORSSTARTTOOPENDXXUUSERGETSINDXXEELEVATORDOORSSTARTTOCLOSEDXEELEVATORMOVINGDOWNDXUUSERARRIVESATFLOORDESTINATIONISDXEELEVATORSTOPSDXEELEVATORDOORSSTARTTOOPENDXXUUSERARRIVESATFLOORDESTINATIONISDXXUUSERGETSINDXXUUSERGETSINDXXEELEVATORDOORSSTARTTOCLOSEDXEELEVATORMOVINGDOWNDXUUSERARRIVESATFLOORDESTINATIONISDXEELEVATORSTOPSDXEELEVATORDOORSSTARTTOOPENTIMESTATEFLOORSTEPACTIONDXXUUSERGETSOUTLEAVESTHESYSTEMDXXUUSERGETSOUTLEAVESTHESYSTEMDXXUUSERGETSOUTLEAVESTHESYSTEMDXXEDOORSFLUTTERDXXUUSERGETSOUTLEAVESTHESYSTEMDXXEDOORSFLUTTERDXXUUSERGETSINDXXUUSERGETSINDXXEDOORSFLUTTERDXXUUSERGETSINDXXEELEVATORDOORSSTARTTOCLOSEDXEELEVATORMOVINGDOWNDXEELEVATORSTOPSUXEELEVATORDOORSSTARTTOOPENUXXUUSERGETSOUTLEAVESTHESYSTEMUXXUUSERGETSINUXXEELEVATORDOORSSTARTTOCLOSEUXEELEVATORMOVINGUPUXEELEVATORSTOPSUXEELEVATORDOORSSTARTTOOPENUXXEELEVATORDOORSSTARTTOCLOSEUXEELEVATORMOVINGUPNXEELEVATORDORMANTNXUUSERARRIVESATFLOORDESTINATIONISNXEELEVATORDOORSSTARTTOOPENNXXUUSERGETSINUXXEELEVATORDOORSSTARTTOCLOSEUXEELEVATORMOVINGUPUXEELEVATORSTOPSNXEELEVATORDOORSSTARTTOOPENNXXUUSERGETSOUTLEAVESTHESYSTEMNXXEELEVATORDOORSSTARTTOCLOSEDXEELEVATORMOVINGDOWNDXEELEVATORSTOPSNXEELEVATORDOORSSTARTTOOPENNXXEDOORSOPENNOBODYISTHERENXXEELEVATORDOORSSTARTTOCLOSENXEELEVATORDORMANTUSERDECIDESTOGIVEUPLEAVESTHESYSTEMTOTOTABLESPREADSOMEACTIONSOFTHEELEVATORSYSTEMSCALEEPREPARETOMOVESETCALLCARFLOORTOZEROALSOSETCALLUPFLOORTOZEROIFANDALSOSETCALLDOWNFLOORTOZEROIFNOTEIFTHEELEVATORDOESNOTCLEAROUTCALLDOWNSINCEITASSUMESTHATPEOPLEWHOAREGOINGDOWNWILLNOTHAVEENTEREDBUTSEEEXERCISENOWPERFORMTHEDECISIONSUBROUTINEIFEVENAFTERTHEDECISIONSUBROUTINEHASACTEDGOTOEOTHERWISEIFCANCELTHEELEVATORACTIVITYEFINALLYIFWAITUNITSOFTIMEFORTHEELEVATORTOBUILDUPSPEEDANDGOTOEIFWAITUNITSANDGOTOEEGOUPAFLOORSETANDWAITUNITSOFTIMEIFNOWORORIFORANDJJJFORALLWAITUNITSFORDECELERATIONANDGOTOEOTHERWISEREPEATTHISSTEPEGODOWNAFLOORTHISSTEPISLIKEEWITHDIRECTIONSREVERSEDANDALSOTHETIMESANDARECHANGEDTOANDRESPECTIVELYITTAKESTHEELEVATORLONGERTOGODOWNTHANUPESETINACTIONINDICATORSETANDPERFORMTHEDECISIONSUBROUTINETHISINDEPENDENTACTIONISINITIATEDINSTEPEBUTITISALMOSTALWAYSCANCELEDINSTEPESEEEXERCISESUBROUTINEDDECISIONSUBROUTINETHISSUBROUTINEISPERFORMEDATCERTAINCRITICALTIMESASSPECIFIEDINTHECOROUTINESABOVEWHENADECISIONABOUTTHEELEVATORSNEXTDIRECTIONISTOBEMADEDDECISIONNECESSARYIFEXITFROMTHISSUBROUTINEDSHOULDDOORSOPENIFTHEELEVATORISPOSITIONEDATEANDIFCALLUPCALLCARANDCALLDOWNARENOTALLZEROCAUSETHEELEVATORTOSTARTITSACTIVITYEAFTERUNITSOFTIMEANDEXITFROMTHISSUBROUTINEIFTHEDECISIONSUBROUTINEISCURRENTLYBEINGINVOKEDBYTHEINDEPENDENTACTIVITYEITISPOSSIBLEFORTHEELEVATORCOROUTINETOBEPOSITIONEDATEDANYCALLSFINDTHESMALLESTFORWHICHCALLUPCALLCARORCALLDOWNISNONZEROANDGOONTOSTEPDBUTIFNOSUCHEXISTSTHENSETIFTHEDECISIONSUBROUTINEISCURRENTLYBEINGINVOKEDBYSTEPEOTHERWISEEXITFROMTHISSUBROUTINEDSETSTATEIFFLOORSETIFFLOORSETDELEVATORDORMANTIFTHEELEVATORCOROUTINEISPOSITIONEDATSTEPEANDIFSETTHEELEVATORTOPERFORMSTEPEAFTERUNITSOFTIMEEXITFROMTHESUBROUTINETHEELEVATORSYSTEMDESCRIBEDABOVEISQUITECOMPLICATEDBYCOMPARISONWITHOTHERALGORITHMSWEHAVESEENINTHISBOOKBUTTHECHOICEOFAREALLIFESYSTEMISMORETYPICALOFASIMULATIONPROBLEMTHANANYCOOKEDUPTEXTBOOKEXAMPLEWOULDEVERBETOHELPUNDERSTANDTHESYSTEMCONSIDERTABLETABWHICHGIVESPARTOFTHEHISTORYOFONESIMULATIONITISPERHAPSBESTTOSTARTBYEXAMININGTHESIMPLECASESTARTINGATTIMETHEELEVATORISSITTINGIDLYATFLOORWITHITSDOORSSHUTWHENAUSERARRIVESTIMELETSSAYTHEUSERSNAMEISDONTWOSECONDSLATERTHEDOORSOPENANDDONGETSINAFTERTWOMORESECONDSBYPUSHINGBUTTONHESTARTSTHEELEVATORMOVINGUPULTIMATELYHEGETSOFFATFLOORANDTHEELEVATORRETURNSTOFLOORTHEFIRSTENTRIESINTABLETABSHOWAMUCHMOREDRAMATICSCENARIOAUSERCALLSTHEELEVATORTOFLOORBUTLOSESPATIENCEANDGIVESUPAFTERSECTHEELEVATORSTOPSATFLOORBUTFINDSNOBODYTHERETHENITHEADSTOFLOORSINCETHEREARESEVERALCALLSWANTINGTOGODOWNWARDETCTHEPROGRAMMINGOFTHISSYSTEMFORACOMPUTERINOURCASEMERITSCAREFULSTUDYATANYGIVENTIMEDURINGTHESIMULATIONWEMAYHAVEMANYSIMULATEDUSERSINTHESYSTEMINVARIOUSQUEUESANDREADYTOGIVEUPATVARIOUSTIMESANDTHEREISALSOTHEPOSSIBILITYOFESSENTIALLYSIMULTANEOUSEXECUTIONOFSTEPSEEANDEIFMANYPEOPLEARETRYINGTOGETOUTASTHEELEVATORISTRYINGTOCLOSEITSDOORSTHEPASSINGOFSIMULATEDTIMEANDTHEHANDLINGOFSIMULTANEITYMAYBEPROGRAMMEDBYHAVINGEACHENTITYREPRESENTEDBYANODETHATINCLUDESANEXTTIMEFIELDDENOTINGTHETIMEWHENTHENEXTACTIONFORTHISENTITYISTOTAKEPLACEANDANEXTINSTFIELDDENOTINGTHEMEMORYADDRESSWHERETHISENTITYISTOSTARTEXECUTINGINSTRUCTIONSANALOGOUSTOORDINARYCOROUTINELINKAGEEACHENTITYWAITINGFORTIMETOPASSISPLACEDINADOUBLYLINKEDLISTCALLEDTHEWAITLISTTHISAGENDAISSORTEDONTHENEXTTIMEFIELDSOFITSNODESSOTHATTHEACTIONSMAYBEPROCESSEDINTHECORRECTSEQUENCEOFSIMULATEDTIMESTHEPROGRAMALSOUSESDOUBLYLINKEDLISTSCLOCKSIMULATEDFORTHEELEVATORANDFORTHEQUEUELISTSEACHNODEREPRESENTINGANACTIVITYWHETHERAUSERORANELEVATORACTIONHASTHEFORMHERELLINKANDRLINKARETHELINKSFORTHEWAITLISTLLINKRLINKDOUBLYLINKEDLISTSMULTILINKEDSTRUCTURESLISTHEADLLINKANDRLINKAREUSEDASLINKSINTHEQUEUELISTSORTHEELEVATORTHELATTERTWOFIELDSANDTHEINANDOUTFIELDARERELEVANTWHENNODEREPRESENTSAUSERBUTTHEYARENOTRELEVANTFORNODESTHATREPRESENTELEVATORACTIONSTHETHIRDWORDOFTHENODEISACTUALLYAJMPINSTRUCTIONJMPFIGUREFIGSHOWSTYPICALCONTENTSOFTHEWAITLISTELEVATORLISTANDONEOFTHEQUEUELISTSEACHNODEINTHEQUEUELISTISSIMULTANEOUSLYINTHEWAITLISTWITHUBUTTHISHASNOTBEENINDICATEDINTHEFIGURESINCETHECOMPLEXITYOFTHELINKINGWOULDOBSCURETHEBASICIDEAQUEUELINKEDFIGFIGSOMELISTSUSEDINTHEELEVATORSIMULATIONPROGRAMLISTHEADSAPPEARATTHELEFTNOWLETUSCONSIDERTHEPROGRAMITSELFITISQUITELONGALTHOUGHASWITHALLLONGPROGRAMSITDIVIDESINTOSMALLPARTSEACHOFWHICHISQUITESIMPLEINITSELFFIRSTCOMESANUMBEROFLINESOFCODETHATJUSTSERVETODEFINETHEINITIALCONTENTSOFTHETABLESTHEREARESEVERALPOINTSOFINTERESTHEREWEHAVELISTHEADSFORTHEWAITLISTLINESTHEQUEUELISTSLINESANDTHEELEVATORLISTLINESEACHOFTHEMISANODEOFTHEFORMBUTWITHUNIMPORTANTWORDSDELETEDTHEWAITLISTHEADCONTAINSONLYTHEFIRSTTWOWORDSOFANODEANDTHEQUEUEANDELEVATORLISTHEADSREQUIREONLYTHELASTWORDOFANODELISTHEADMULTILINKEDSTRUCTURESWEALSOHAVEFOURNODESTHATAREALWAYSPRESENTINTHESYSTEMLINESUSERANODETHATISALWAYSPOSITIONEDATSTEPUREADYTOENTERANEWUSERINTOTHESYSTEMELEVANODETHATGOVERNSTHEMAINACTIONSOFTHEELEVATORATSTEPSEEEEEEANDEANDELEVANDELEVNODESTHATAREUSEDFORTHEELEVATORACTIONSEANDEWHICHTAKEPLACEINDEPENDENTLYOFOTHERELEVATORACTIONSWITHRESPECTTOSIMULATEDTIMEEACHOFTHESEFOURNODESCONTAINSONLYTHREEWORDSSINCETHEYNEVERAPPEARINTHEQUEUEORELEVATORLISTSTHENODESREPRESENTINGEACHACTUALUSERINTHESYSTEMWILLAPPEARINASTORAGEPOOLFOLLOWINGTHEMAINPROGRAMTHENEXTPARTOFTHEPROGRAMCODINGCONTAINSBASICSUBROUTINESANDTHEMAINCONTROLROUTINESFORTHESIMULATIONPROCESSSUBROUTINESINSERTANDSUBROUTINESDELETEPERFORMTYPICALMANIPULATIONSONDOUBLYLINKEDLISTSTHEYPUTTHECURRENTNODEINTOORTAKEITOUTOFAQUEUEORELEVATORLISTINTHEPROGRAMTHECURRENTNODECISALWAYSREPRESENTEDBYINDEXREGISTERTHEREAREALSOSUBROUTINESFORTHEWAITLISTSUBROUTINESORTINADDSTHECURRENTNODETOTHEWAITLISTSORTINGITINTOTHERIGHTPLACEBASEDONITSNEXTTIMEFIELDSUBROUTINEIMMEDINSERTSTHECURRENTNODEATTHEFRONTOFTHEWAITLISTSUBROUTINEHOLDPUTSTHECURRENTNODEINTOTHEWAITLISTWITHNEXTTIMEEQUALTOTHECURRENTTIMEPLUSTHEAMOUNTINREGISTERASUBROUTINEDELETEWDELETESTHECURRENTNODEFROMTHEWAITLISTTHEROUTINECYCLEISTHEHEARTOFTHESIMULATIONCONTROLITDECIDESWHICHACTIVITYISTOACTNEXTNAMELYTHEFIRSTELEMENTOFTHEWAITLISTWHICHWEKNOWISNONEMPTYANDJUMPSTOITTHEREARETWOSPECIALENTRANCESTOCYCLECYCLEFIRSTSETSNEXTINSTINTHECURRENTNODEANDHOLDCISTHESAMEWITHANADDITIONALCALLONTHEHOLDSUBROUTINETHUSTHEEFFECTOFTHEINSTRUCTIONJMPHOLDCWITHAMOUNTINREGISTERAISTOSUSPENDACTIVITYFORUNITSOFSIMULATEDTIMEANDTHENTORETURNTOTHEFOLLOWINGLOCATIONNOWCOMESTHEPROGRAMFORCOROUTINEUATTHEBEGINNINGOFSTEPUTHECURRENTNODECISUSERSEELINESABOVEANDLINESOFTHEPROGRAMCAUSEUSERTOBEREINSERTEDINTOTHEWAITLISTSOTHATAGENDASUBROUTINESAVAILLISTRESERVATIONLIBERATIONCOROUTINELINKAGETHENEXTUSERWILLBEGENERATEDAFTERINTERTIMEUNITSOFSIMULATEDTIMETHEFOLLOWINGLINESTAKECAREOFSETTINGUPANODEFORTHENEWLYGENERATEDUSERTHEINANDOUTFLOORSARERECORDEDINTHISNODEPOSITIONTHEAVAILSTACKISSINGLYLINKEDINTHERLINKFIELDOFEACHNODENOTETHATLINESPERFORMTHEACTIONUSINGTHEPOOLMAXTECHNIQUEPOOLMAXNOTESTFOROVERFLOWISNECESSARYHERESINCETHETOTALSIZEOFTHESTORAGEPOOLTHENUMBEROFUSERSINTHESYSTEMATANYONETIMERARELYEXCEEDSNODESWORDSTHERETURNOFANODETOTHEAVAILSTACKAPPEARSINLINESTHROUGHOUTTHEPROGRAMINDEXREGISTEREQUALSTHEVARIABLEFLOORANDINDEXREGISTERISPOSITIVENEGATIVEORZERODEPENDINGONWHETHERGOINGDOWNORNEUTRALTHEVARIABLESCALLUPCALLCARANDCALLDOWNOCCUPYTHERESPECTIVEFIELDSANDOFLOCATIONTHEPROGRAMFORCOROUTINEEISARATHERSTRAIGHTFORWARDRENDITIONOFTHESEMIFORMALDESCRIPTIONGIVENEARLIERPERHAPSTHEMOSTINTERESTINGPORTIONISTHEPREPARATIONFORTHEELEVATORSINDEPENDENTACTIONSINSTEPEANDTHESEARCHINGOFTHEELEVATORANDQUEUELISTSINSTEPEWEWILLNOTCONSIDERHERETHEDECISIONSUBROUTINESEEEXERCISENORTHEVALUESSUBROUTINETHATISUSEDTOSPECIFYTHEDEMANDSONTHEELEVATORATTHEVERYENDOFTHEPROGRAMCOMESTHECODEENDTHEPROGRAMABOVEDOESAFINEJOBOFSIMULATINGTHEELEVATORSYSTEMASITGOESTHROUGHITSPACESBUTITWOULDBEUSELESSTORUNTHISPROGRAMSINCETHEREISNOOUTPUTACTUALLYTHEAUTHORADDEDAPRINTSUBROUTINETHATWASCALLEDATMOSTOFTHECRITICALSTEPSINTHEPROGRAMABOVEANDTHISWASUSEDTOPREPARETABLETABTHEDETAILSHAVEBEENOMITTEDSINCETHEYAREVERYSTRAIGHTFORWARDBUTTHEYONLYCLUTTERUPTHECODESEVERALPROGRAMMINGLANGUAGESHAVEBEENDEVISEDTHATMAKEITQUITEEASYTOSPECIFYTHEACTIONSINADISCRETESIMULATIONANDTOUSEACOMPILERTOTRANSLATETHESESPECIFICATIONSINTOMACHINELANGUAGEASSEMBLYLANGUAGEWASUSEDINTHISSECTIONOFCOURSESINCEWEARECONCERNEDHEREWITHTHEBASICTECHNIQUESOFLINKEDLISTMANIPULATIONANDWEWANTTOSEETHEDETAILSOFHOWDISCRETESIMULATIONSCANACTUALLYBEPERFORMEDBYACOMPUTERTHATHASAONETRACKMINDTHETECHNIQUEOFUSINGAWAITLISTORAGENDATOCONTROLTHESEQUENCINGOFCOROUTINESASWEHAVEDONEINTHISSECTIONISCALLEDQUASIPARALLELPROCESSINGCOROUTINESPARALLELISMITISQUITEDIFFICULTTOGIVEAPRECISEANALYSISOFTHERUNNINGTIMEOFSUCHALONGPROGRAMBECAUSEOFTHECOMPLEXINTERACTIONSINVOLVEDBUTLARGEPROGRAMSOFTENSPENDMOSTOFTHEIRTIMEINCOMPARATIVELYSHORTROUTINESDOINGCOMPARATIVELYSIMPLETHINGSTHEREFOREWECANUSUALLYGETAGOODINDICATIONOFTHEOVERALLEFFICIENCYBYUSINGASPECIALTRACEROUTINECALLEDAPROFILERJUMPTRACEWHICHEXECUTESTHEPROGRAMANDRECORDSHOWOFTENEACHINSTRUCTIONISPERFORMEDTHISIDENTIFIESTHEBOTTLENECKSTHEPLACESTHATSHOULDBEGIVENSPECIALATTENTIONSEEEXERCISEJUMPTRACESEEALSOSOFTWAREPRACTICEEXPERIENCEFOREXAMPLESOFSUCHSTUDIESONRANDOMLYSELECTEDPROGRAMCONSTRUCTIONKNUTHFORTRANPROGRAMSFOUNDINWASTEBASKETSATTHESTANFORDCOMPUTERCENTERTHEAUTHORMADESUCHANEXPERIMENTWITHTHEELEVATORPROGRAMABOVERUNNINGITFORUNITSOFSIMULATEDELEVATORTIMEUSERSENTEREDTHESIMULATEDSYSTEMTHEINSTRUCTIONSINTHESORTINLOOPLINESWEREEXECUTEDBYFARTHEMOSTOFTENTIMESWHILETHESORTINSUBROUTINEITSELFWASCALLEDTIMESTHECYCLEROUTINEWASPERFORMEDTIMESSOWECOULDGAINALITTLESPEEDBYNOTCALLINGTHEDELETEWSUBROUTINEATLINETHEFOURLINESOFTHATSUBROUTINECOULDBEWRITTENOUTINFULLTOSAVEEACHTIMECYCLEISUSEDTHEPROFILERALSOSHOWEDTHATTHEDECISIONSUBROUTINEWASCALLEDONLYTIMESANDTHELOOPINELINESWASEXECUTEDONLYTIMESITISHOPEDTHATSOMEREADERWILLLEARNASMUCHABOUTSIMULATIONFROMTHEEXAMPLEABOVEASTHEAUTHORLEARNEDABOUTELEVATORSWHILETHEEXAMPLEWASBEINGPREPAREDEXERCISESGIVESPECIFICATIONSFORTHEINSERTIONANDDELETIONOFINFORMATIONATTHELEFTENDOFADOUBLYLINKEDLISTREPRESENTEDASINWITHTHEDUALOPERATIONSATTHERIGHTENDWHICHAREOBTAINEDBYSYMMETRYWETHEREFOREHAVEALLTHEACTIONSOFAGENERALDEQUEDOUBLYLINKEDLISTDEQUELINKEDINSERTIONINTODEQUEINSERTIONINTODOUBLYLINKEDLISTDELETIONFROMDEQUEDELETIONFROMDOUBLYLINKEDLISTINSERTYATTHELEFTIFTHENELSESETYTOLEFTMOSTANDDELETEIFTHENUNDERFLOWIFTHENELSEEXPLAINWHYALISTTHATISSINGLYLINKEDCANNOTALLOWEFFICIENTOPERATIONASAGENERALDEQUETHEDELETIONOFITEMSCANBEDONEEFFICIENTLYATONLYONEENDOFASINGLYLINKEDLISTCONSIDERTHECASEOFSEVERALDELETIONSATTHESAMEENDINSUCCESSIONAFTEREACHDELETIONWEMUSTKNOWWHATTODELETENEXTSOTHELINKSINTHELISTMUSTPOINTAWAYFROMTHATENDOFTHELISTDELETIONATBOTHENDSTHEREFOREIMPLIESTHATTHELINKSMUSTGOBOTHWAYSONTHEOTHERHANDEXERCISEXORTRICKEXPLAINSHOWTOREPRESENTTWOLINKSINASINGLELINKFIELDINTHATWAYGENERALDEQUEOPERATIONSAREPOSSIBLETHEELEVATORSYSTEMDESCRIBEDINTHETEXTUSESTHREECALLVARIABLESCALLUPCALLCARANDCALLDOWNFOREACHFLOORREPRESENTINGBUTTONSTHATHAVEBEENPUSHEDBYTHEUSERSINTHESYSTEMITISCONCEIVABLETHATTHEELEVATORACTUALLYNEEDSONLYONEORTWOBINARYVARIABLESFORTHECALLBUTTONSONEACHFLOORINSTEADOFTHREEEXPLAINHOWANEXPERIMENTERCOULDPUSHBUTTONSINACERTAINSEQUENCEWITHTHISELEVATORSYSTEMTOPROVETHATTHEREARETHREEINDEPENDENTBINARYVARIABLESFOREACHFLOOREXCEPTTHETOPANDBOTTOMFLOORSTOSHOWTHEINDEPENDENCEOFCALLUPFROMCALLDOWNNOTICEFOREXAMPLETHATINTABLETABTHEELEVATORDIDNOTSTOPATFLOORSORATTIMEALTHOUGHTHEREWEREPEOPLEWAITINGTHESEPEOPLEHADPUSHEDCALLDOWNBUTIFTHEYHADPUSHEDCALLUPTHEELEVATORWOULDHAVESTOPPEDTOSHOWTHEINDEPENDENCEOFCALLCARFROMTHEOTHERSNOTICETHATINTABLETABWHENTHEDOORSSTARTTOOPENATTIMETHEELEVATORHASALREADYDECIDEDTOBEGOINGUPITSSTATEWOULDHAVEBEENNEUTRALATTHATPOINTIFACCORDINGTOSTEPEBUTINFACTCALLCARANDCALLCARHAVEBEENSETTOBYUSERSANDINTHEELEVATORIFWEENVISIONTHESAMESITUATIONWITHALLFLOORNUMBERSINCREASEDBYTHEFACTTHATORWHENTHEDOORSOPENWOULDAFFECTWHETHERTHEELEVATORWOULDPERHAPSCONTINUETOGODOWNWARDORWOULDUNCONDITIONALLYGOUPWARDACTIVITYEINTHEELEVATORCOROUTINEISUSUALLYCANCELEDBYSTEPEANDEVENWHENITHASNTBEENCANCELEDITDOESNTDOVERYMUCHEXPLAINUNDERWHATCIRCUMSTANCESTHEELEVATORWOULDBEHAVEDIFFERENTLYIFACTIVITYEWEREDELETEDFROMTHESYSTEMWOULDITFOREXAMPLESOMETIMESVISITFLOORSINADIFFERENTORDERIFADOZENORMOREPEOPLEWEREGETTINGOUTATTHESAMEFLOORSTATEMIGHTBENEUTRALALLDURINGTHISTIMEANDWHENECALLSTHEDECISIONSUBROUTINETHISMAYSETANEWSTATEBEFOREANYONEHASGOTTENINONTHECURRENTFLOORITHAPPENSVERYRARELYINDEEDANDITCERTAINLYWASTHEMOSTPUZZLINGPHENOMENONOBSERVEDBYTHEAUTHORDURINGHISELEVATOREXPERIMENTSINTABLETABUSERARRIVEDONFLOORATTIMESHOWTHATIFUSERHADARRIVEDONFLOORINSTEADOFFLOORTHEELEVATORWOULDHAVEGONEUPAFTERRECEIVINGITSPASSENGERSONFLOORINSTEADOFDOWNINSPITEOFTHEFACTTHATUSERWANTSTOGODOWNTOFLOORTHESTATEFROMTHETIMETHEDOORSSTARTTOOPENATTIMEUNTILUSERGETSINATTIMEWOULDHAVEBEENNEUTRALSINCETHEREWOULDHAVEBEENNOCALLSTOFLOORANDNOBODYONBOARDTHEELEVATORTHENUSERWOULDSETANDTHESTATEWOULDCORRESPONDINGLYCHANGETOGOINGUPDURINGTHETIMEPERIODINTABLETABUSERSANDALLGETINTHEELEVATORONFLOORTHENTHEELEVATORGOESDOWNTOFLOORANDONLYUSERGETSOUTNOWTHEELEVATORSTOPSAGAINONFLOORPRESUMABLYTOPICKUPUSERSANDWHOAREALREADYABOARDNOBODYISACTUALLYONFLOORWAITINGTOGETINTHISSITUATIONOCCURSNOTINFREQUENTLYATCALTECHIFYOUGETONTHEELEVATORGOINGTHEWRONGWAYYOUMUSTWAITFORANEXTRASTOPASYOUGOBYYOURORIGINALFLOORAGAININMANYELEVATORSYSTEMSUSERSANDWOULDNOTHAVEBOARDEDTHEELEVATORATTIMESINCELIGHTSOUTSIDETHEELEVATORWOULDSHOWTHATITWASGOINGDOWNNOTUPTHOSEUSERSWOULDHAVEWAITEDUNTILTHEELEVATORCAMEBACKUPANDSTOPPEDFORTHEMONTHESYSTEMDESCRIBEDTHEREARENOSUCHLIGHTSANDITISIMPOSSIBLETOTELLWHICHWAYTHEELEVATORISGOINGTOGOUNTILYOUAREINITHENCETABLETABREFLECTSTHEACTUALSITUATIONWHATCHANGESSHOULDBEMADETOCOROUTINESUANDEIFWEWERETOSIMULATETHESAMEELEVATORSYSTEMBUTWITHINDICATORLIGHTSSOTHATPEOPLEDONOTGETONTHEELEVATORWHENITSSTATEISCONTRARYTOTHEIRDESIREDDIRECTIONADDTHECONDITIONIFTHENIFTHENTOTHECONDITIONINSTEPSUANDUINSTEPEACCEPTUSERSFROMQUEUEFLOORONLYIFTHEYAREHEADEDINTHEELEVATORSDIRECTIONUNLESSWHENWEACCEPTALLCOMERSSTANFORDSMATHDEPARTMENTHASJUSTSUCHANELEVATORBUTITSUSERSDONTACTUALLYPAYMUCHATTENTIONTOTHEINDICATORLIGHTSPEOPLETENDTOGETONASSOONASTHEYCANREGARDLESSOFDIRECTIONWHYDIDNTTHEELEVATORDESIGNERSREALIZETHISANDDESIGNTHELOGICACCORDINGLYBYCLEARINGBOTHCALLUPANDCALLDOWNTHEWHOLEPROCESSWOULDBEFASTERSINCETHEELEVATORWOULDNTHAVETOSTOPASOFTENALTHOUGHBUGSINPROGRAMSAREOFTENEMBARRASSINGTOAPROGRAMMERIFWEARETOLEARNFROMOURMISTAKESWESHOULDRECORDTHEMANDTELLOTHERPEOPLEABOUTTHEMINSTEADOFFORGETTINGTHEMTHEFOLLOWINGERRORAMONGOTHERSWASMADEBYTHEAUTHORWHENHEFIRSTWROTETHEPROGRAMINTHISDEBUGGINGKNUTHSECTIONLINESAIDJANZCYCLEINSTEADOFJANZUATHEREASONINGWASTHATIFINDEEDTHEELEVATORHADARRIVEDATTHISUSERSFLOORTHEREWASNONEEDTOPERFORMTHEGIVEUPACTIVITYUANYMORESOWECOULDSIMPLYGOTOCYCLEANDCONTINUESIMULATINGOTHERACTIVITIESWHATWASTHEERRORINLINETHISUSERISASSUMEDTOBEINTHEWAITLISTJUMPINGTOUAMAKESSURETHATTHISASSUMPTIONISVALIDITISASSUMEDTHATGIVEUPTIMEISPOSITIVEANDINDEEDTHATITISPROBABLYORMOREWRITETHECODEFORSTEPELINESWHICHHASBEENOMITTEDFROMTHEPROGRAMINTHETEXTCOMMENTSARELEFTTOTHEREADERWRITETHECODEFORTHEDECISIONSUBROUTINEWHICHHASBEENOMITTEDFROMTHEPROGRAMINTHETEXTITISPERHAPSSIGNIFICANTTONOTETHATALTHOUGHTHEAUTHORHADUSEDTHEELEVATORSYSTEMFORYEARSANDTHOUGHTHEKNEWITWELLITWASNTUNTILHEATTEMPTEDTOWRITETHISSECTIONTHATHEREALIZEDTHEREWEREQUITEAFEWFACTSABOUTTHEELEVATORSSYSTEMOFCHOOSINGDIRECTIONSTHATHEDIDNOTKNOWHEWENTBACKTOEXPERIMENTWITHTHEELEVATORSIXSEPARATETIMESEACHTIMEBELIEVINGHEHADFINALLYACHIEVEDACOMPLETEUNDERSTANDINGOFITSMODUSOPERANDINOWHEISRELUCTANTTORIDEITFORFEARTHATSOMENEWFACETOFITSOPERATIONWILLAPPEARCONTRADICTINGTHEALGORITHMSGIVENWEOFTENFAILTOREALIZEHOWLITTLEWEKNOWABOUTATHINGUNTILWEATTEMPTTOSIMULATEITONACOMPUTERTRYTOSPECIFYTHEACTIONSOFSOMEELEVATORYOUAREFAMILIARWITHCHECKTHEALGORITHMBYEXPERIMENTSWITHTHEELEVATORITSELFLOOKINGATITSCIRCUITRYISNOTFAIRTHENDESIGNADISCRETESIMULATORFORTHESYSTEMANDRUNITONACOMPUTERASPARSEUPDATEMEMORYUPDATESTOMEMORYSYNCHRONOUSTHEFOLLOWINGPROBLEMOFTENARISESINSYNCHRONOUSSIMULATIONSTHESYSTEMHASVARIABLESVVANDATEVERYSIMULATEDSTEPNEWVALUESFORSOMEOFTHEMARECALCULATEDFROMTHEOLDVALUESTHESECALCULATIONSAREASSUMEDDONESIMULTANEOUSLYINTHESENSETHATTHEVARIABLESDONOTCHANGETOTHEIRNEWVALUESUNTILAFTERALLASSIGNMENTSHAVEBEENMADETHUSTHETWOSTATEMENTSAPPEARINGATTHESAMESIMULATEDTIMEWOULDINTERCHANGETHEVALUESOFVANDVTHISISQUITEDIFFERENTFROMWHATWOULDHAPPENINASEQUENTIALCALCULATIONTHEDESIREDACTIONCANOFCOURSEBESIMULATEDBYKEEPINGANADDITIONALTABLENBEFOREEACHSIMULATEDSTEPWECOULDSETKKFORTHENRECORDALLCHANGESOFVINNEWVANDFINALLYAFTERTHESTEPWECOULDSETKKBUTTHISBRUTEFORCEAPPROACHISNOTCOMPLETELYSATISFACTORYFORTHEFOLLOWINGREASONSOFTENISVERYLARGEBUTTHENUMBEROFVARIABLESCHANGEDPERSTEPISRATHERSMALLTHEVARIABLESAREOFTENNOTARRANGEDINANICETABLENBUTARESCATTEREDTHROUGHOUTMEMORYINARATHERCHAOTICFASHIONTHISMETHODDOESNOTDETECTTHESITUATIONUSUALLYANERRORINTHEMODELWHENONEVARIABLEISGIVENTWOVALUESINTHESAMESIMULATEDSTEPASSUMINGTHATTHENUMBEROFVARIABLESCHANGEDPERSTEPISRATHERSMALLDESIGNANEFFICIENTALGORITHMTHATSIMULATESTHEDESIREDACTIONSUSINGTWOAUXILIARYTABLESNEWVANDLINKIFPOSSIBLEYOURALGORITHMSHOULDGIVEANERRORSTOPIFTHESAMEVARIABLEISBEINGGIVENTWODIFFERENTVALUESINTHESAMESTEPINITIALLYLETKANDDURINGASIMULATIONSTEPTHATCHANGESVGIVEANERRORINDICATIONIFKOTHERWISESETKANDSETNEWVTOTHENEWVALUEOFKAFTEREACHSIMULATIONSTEPSETANDDOTHEFOLLOWINGOPERATIONREPEATEDLYZEROORMORETIMESUNTILSETKKKKCLEARLYTHISMETHODISREADILYADAPTEDTOTHECASEOFSCATTEREDVARIABLESIFWEINCLUDEANEWVANDLINKFIELDINEACHNODEASSOCIATEDWITHAVARIABLEFIELDVWHYISITAGOODIDEATOUSEDOUBLYLINKEDLISTSINSTEADOFSINGLYLINKEDORSEQUENTIALLISTSINTHESIMULATIONPROGRAMOFTHISSECTIONSEQUENTIALVSLINKEDDOUBLYLINKEDVSSINGLYLINKEDTHEWAITLISTHASDELETIONSFROMTHELEFTTOTHERIGHTBUTINSERTIONSARESORTEDINFROMTHERIGHTTOTHELEFTSINCETHESEARCHISLIKELYTOBESHORTERFROMTHATSIDEALSOWEDELETENODESFROMALLTHREELISTSINSEVERALPLACESWHENWEDONOTKNOWTHEPREDECESSORORSUCCESSOROFTHENODEBEINGDELETEDONLYTHEELEVATORLISTCOULDBECONVERTEDTOAONEWAYLISTWITHOUTMUCHLOSSOFEFFICIENCYNOTEITMAYBEPREFERABLETOUSEANONLINEARLISTASTHEWAITAGENDALISTINADISCRETESIMULATORTOREDUCETHETIMEFORSORTINGINSECTIONDISCUSSESTHEGENERALPROBLEMOFMAINTAININGPRIORITYQUEUESORSMALLESTINFIRSTOUTLISTSSUCHASTHISSEVERALWAYSAREKNOWNINWHICHONLYOPERATIONSARENEEDEDTOINSERTORDELETEWHENTHEREAREELEMENTSINTHELISTALTHOUGHTHEREISOFCOURSENONEEDFORSUCHAFANCYMETHODWHENISKNOWNTOBESMALLELEVATORDISCRETESIMULATIONDOUBLYLINKEDLISTARRAYSANDORTHOGONALLISTSARRAYSORTHOGONALLISTSMATRICESONEOFTHESIMPLESTGENERALIZATIONSOFALINEARLISTISATWODIMENSIONALORHIGHERDIMENSIONALARRAYOFINFORMATIONFOREXAMPLECONSIDERTHECASEOFANMATRIXINTHISTWODIMENSIONALARRAYEACHNODEJKBELONGSTOTWOLINEARLISTSINDICESTHEROWLISTAAAANDTHECOLUMNLISTAAATHESEORTHOGONALROWANDCOLUMNLISTSESSENTIALLYACCOUNTFORTHETWODIMENSIONALSTRUCTUREOFAMATRIXSIMILARREMARKSAPPLYTOHIGHERDIMENSIONALARRAYSOFINFORMATIONMATRICESSEQUENTIALALLOCATIONWHENANARRAYLIKEISSTOREDINARRAYSSEQUENTIALLYSTORAGEMAPPINGFUNCTIONSSEQUENTIALMEMORYLOCATIONSSTORAGEISUSUALLYALLOCATEDSOTHATWHEREANDARECONSTANTSLETUSCONSIDERAMOREGENERALCASESUPPOSEWEHAVEAFOURDIMENSIONALARRAYWITHONEWORDELEMENTSQIJKLFORWEORIGINWOULDLIKETOALLOCATESTORAGESOTHATTHISMEANSTHATACHANGEINIJKORLLEADSTOAREADILYCALCULATEDCHANGEINTHELOCATIONOFQIJKLTHEMOSTNATURALANDMOSTCOMMONLYUSEDWAYTOALLOCATESTORAGEISTOARRANGETHEARRAYELEMENTSACCORDINGTOTHELEXICOGRAPHICORDEROFTHEIRINDICESEXERCISELEXICOGRAPHICORDERWELLORDERDSOMETIMESCALLEDROWMAJORORDERITISEASYTOSEETHATTHISORDERSATISFIESTHEREQUIREMENTSOFANDWEHAVEINGENERALGIVENADIMENSIONALARRAYWITHWORDNODESIZEELEMENTSFORWECANSTOREITINMEMORYASWHERETOSEEWHYTHISFORMULAWORKSOBSERVETHATISTHEAMOUNTOFMEMORYNEEDEDTOSTORETHESUBARRAYIFARECONSTANTANDVARYTHROUGHALLVALUESHENCEBYTHENATUREOFLEXICOGRAPHICORDERTHEADDRESSOFSHOULDCHANGEBYPRECISELYTHISAMOUNTWHENCHANGESBYFORMULASANDCORRESPONDTOTHEVALUEOFTHENUMBERINAMIXEDRADIXNUMBERSYSTEMFOREXAMPLEIFWEHADTHEARRAYTIMEWDHMSWITHANDTHELOCATIONOFTIMEWDHMSWOULDBETHELOCATIONOFTIMEPLUSTHEQUANTITYWWEEKSDAYSHOURSMINUTESSSECONDSCONVERTEDTOSECONDSOFCOURSEITTAKESAPRETTYFANCYAPPLICATIONTOMAKEUSEOFANARRAYTHATHASELEMENTSTHENORMALMETHODFORSTORINGARRAYSISGENERALLYSUITABLEWHENTHEARRAYHASACOMPLETERECTANGULARSTRUCTURESOTHATALLELEMENTSAREPRESENTFORINDICESINTHEINDEPENDENTRANGESEXERCISESHOWSHOWTOADAPTANDTOTHECASEWHENTHELOWERBOUNDSARENOTBUTTHEREAREMANYSITUATIONSINWHICHANARRAYISNOTPERFECTLYRECTANGULARMOSTCOMMONISTHETRIANGULARMATRIXWHEREWEWANTTOSTOREONLYTHEENTRIESJKFORSAYWEMAYKNOWTHATALLOTHERENTRIESAREZEROORTHATJKKJSOTHATONLYHALFOFTHEVALUESNEEDTOBESTOREDIFWEWANTTOSTORETHELOWERTRIANGULARMATRIXINCONSECUTIVEMEMORYPOSITIONSWEAREFORCEDTOGIVEUPTHEPOSSIBILITYOFLINEARALLOCATIONASINEQBUTWECANASKINSTEADFORANALLOCATIONARRANGEMENTOFTHEFORMWHEREANDAREFUNCTIONSOFONEVARIABLETHECONSTANTMAYBEABSORBEDINTOEITHERORIFDESIREDWHENTHEADDRESSINGHASTHEFORMARANDOMELEMENTJKCANBEQUICKLYACCESSEDIFWEKEEPTWORATHERSHORTAUXILIARYTABLESOFTHEVALUESOFANDTHEREFORETHESEFUNCTIONSNEEDTOBECALCULATEDONLYONCEITTURNSOUTTHATLEXICOGRAPHICORDEROFINDICESFORTHEARRAYSATISFIESLEXICOGRAPHICORDERCONDITIONANDWITHONEWORDENTRIESWEHAVEINFACTTHESIMPLEFORMULABUTTHEREISACTUALLYAFARBETTERWAYTOSTORETRIANGULARMATRICESIFWEAREFORTUNATEENOUGHTOHAVETWOOFTHEMWITHTHESAMESIZESUPPOSETHATWEWANTTOSTOREBOTHAANDBFORTHENWECANFITTHEMBOTHINTOASINGLEMATRIXCFORUSINGTHECONVENTIONTHUSTHETWOTRIANGULARMATRICESAREPACKEDTOGETHERTIGHTLYWITHINTHESPACEOFLOCATIONSANDWEHAVELINEARADDRESSINGASINTHEGENERALIZATIONOFTRIANGULARMATRICESTOHIGHERDIMENSIONSISCALLEDATETRAHEDRALARRAYTHISINTERESTINGTOPICISTHESUBJECTOFEXERCISESTHROUGHASANEXAMPLEOFTYPICALPROGRAMMINGTECHNIQUESFORUSEWITHSEQUENTIALLYSTOREDARRAYSSEEEXERCISESADDLEMTXANDTHETWOANSWERSGIVENFORTHATEXERCISETHEFUNDAMENTALTECHNIQUESFOREFFICIENTTRAVERSALOFROWSANDCOLUMNSASWELLASTHEUSESOFSEQUENTIALSTACKSAREOFPARTICULARINTERESTWITHINTHOSEPROGRAMSARRAYSSEQUENTIALLYORIGINSTORAGEMAPPINGFUNCTIONSLINKEDALLOCATIONLINKEDMEMORYALLOCATIONALSOARRAYSLINKEDAPPLIESTOHIGHERDIMENSIONALARRAYSOFINFORMATIONINANATURALWAYINGENERALOURNODESCANCONTAINLINKFIELDSONEFOREACHLISTTHENODEBELONGSTOTHEUSEOFLINKEDMEMORYISGENERALLYFORCASESINWHICHTHEARRAYSARENOTSTRICTLYRECTANGULARINCHARACTERFIGFIGEACHNODEINFOURDIFFERENTLISTSMLASANEXAMPLEWEMIGHTHAVEALISTINWHICHEVERYNODEREPRESENTSAPERSONWITHFOURLINKFIELDSSEXAGEEYESANDHAIRINTHEEYESFIELDWELINKTOGETHERALLNODESWITHTHESAMEEYECOLORETCSEEFIGFIGITISEASYTOVISUALIZEEFFICIENTALGORITHMSFORINSERTINGNEWPEOPLEINTOTHELISTDELETIONWOULDHOWEVERBEMUCHSLOWERUNLESSWEUSEDDOUBLELINKINGWECANALSOCONCEIVEOFALGORITHMSOFVARYINGDEGREESOFEFFICIENCYFORDOINGTHINGSLIKEFINDALLBLUEEYEDBLONDEWOMENOFAGESTHROUGHSEEEXERCISESANDPROBLEMSINWHICHEACHNODEOFALISTISTORESIDEINSEVERALKINDSOFOTHERLISTSATONCEARISERATHERFREQUENTLYINDEEDTHEELEVATORSYSTEMSIMULATIONDESCRIBEDINTHEPRECEDINGSECTIONHASNODESTHATAREINBOTHTHEQUEUEANDWAITLISTSSIMULTANEOUSLYASADETAILEDEXAMPLEOFTHEUSEOFLINKEDALLOCATIONFORORTHOGONALLISTSWEWILLCONSIDERTHECASEOFSPARSEMATRICESTHATISMATRICESOFSPARSEMATRICESLARGEORDERINWHICHMOSTOFTHEELEMENTSAREZEROTHEGOALISTOOPERATEONTHESEMATRICESASTHOUGHTHEENTIREMATRIXWEREPRESENTBUTTOSAVEGREATAMOUNTSOFTIMEANDSPACEBECAUSETHEZEROENTRIESNEEDNOTBEREPRESENTEDONEWAYTODOTHISINTENDEDFORRANDOMREFERENCESTOELEMENTSOFTHEMATRIXWOULDBETOUSETHESTORAGEANDRETRIEVALMETHODSOFCHAPTERTOFINDAFROMTHEKEYHOWEVERTHEREISANOTHERWAYTODEALWITHSPARSEMATRICESTHATISOFTENPREFERABLEBECAUSEITREFLECTSTHEMATRIXSTRUCTUREMOREAPPROPRIATELYANDTHISISTHEMETHODWEWILLDISCUSSHERETHEREPRESENTATIONWEWILLDISCUSSCONSISTSOFCIRCULARLYLINKEDLISTSFORCIRCULARLINKAGEEACHROWANDCOLUMNEVERYNODEOFTHEMATRIXCONTAINSTHREEWORDSANDFIVEFIELDSHEREROWANDCOLARETHEROWANDCOLUMNINDICESOFTHENODEVALISTHEVALUESTOREDATTHATPARTOFTHEMATRIXLEFTANDUPARELINKSTOTHENEXTNONZEROENTRYTOTHELEFTINTHEROWORUPWARDINTHECOLUMNRESPECTIVELYTHEREARESPECIALLISTHEADNODESBASEROWANDLISTHEADBASECOLFOREVERYROWANDCOLUMNTHESENODESAREIDENTIFIEDBYASUSUALINACIRCULARLISTTHELEFTLINKINBASEROWISTHELOCATIONOFTHERIGHTMOSTVALUEINTHATROWANDUPINBASECOLPOINTSTOTHEBOTTOMMOSTVALUEINTHATCOLUMNFOREXAMPLETHEMATRIXWOULDBEREPRESENTEDASSHOWNINFIGFIGUSINGSEQUENTIALALLOCATIONOFSTORAGEAMATRIXWOULDTAKEWORDSANDTHISISMOREMEMORYTHANMANYCOMPUTERSUSEDTOHAVEBUTASUITABLYSPARSEMATRIXCANBEREPRESENTEDASABOVEEVENINSWORDMEMORYSEEEXERCISETHEAMOUNTOFTIMETAKENTOACCESSARANDOMELEMENTJKISALSOQUITEREASONABLEIFTHEREAREBUTFEWELEMENTSINEACHROWORCOLUMNANDSINCEMOSTMATRIXALGORITHMSPROCEEDBYWALKINGSEQUENTIALLYTHROUGHAMATRIXINSTEADOFACCESSINGELEMENTSATRANDOMTHISLINKEDREPRESENTATIONOFTENWORKSFASTERTHANASEQUENTIALONEFIGFIGREPRESENTATIONOFMATRIXWITHNODESINTHEFORMATLISTHEADSAPPEARATTHELEFTANDATTHETOPASATYPICALEXAMPLEOFANONTRIVIALALGORITHMDEALINGWITHSPARSEMATRICESINTHISFORMWEWILLCONSIDERTHEPIVOTSTEPOPERATIONWHICHISPIVOTSTEPANIMPORTANTPARTOFALGORITHMSFORSOLVINGLINEAREQUATIONSFORINVERTINGMATRICESANDFORSOLVINGLINEARPROGRAMMINGPROBLEMSBYTHESIMPLEXMETHODAPIVOTSTEPISTHEFOLLOWINGMATRIXTRANSFORMATIONSEEMHDOOLITTLEREPORTOFTHESUPERINTENDENTOFTHEUSCOASTANDGEODETICSURVEYITISASSUMEDTHATTHEPIVOTELEMENTISNONZEROFOREXAMPLEAPIVOTSTEPAPPLIEDTOMATRIXWITHTHEELEMENTINROWLISTHEADCOLUMNASPIVOTLEADSTOOURGOALISTODESIGNANALGORITHMTHATPERFORMSTHISPIVOTOPERATIONONSPARSEMATRICESTHATAREREPRESENTEDASINFIGFIGITISCLEARTHATTHETRANSFORMATIONAFFECTSONLYTHOSEROWSOFAMATRIXFORWHICHTHEREISANONZEROELEMENTINTHEPIVOTCOLUMNANDITAFFECTSONLYTHOSECOLUMNSFORWHICHTHEREISANONZEROENTRYINTHEPIVOTROWTHEPIVOTINGALGORITHMISINMANYWAYSASTRAIGHTFORWARDAPPLICATIONOFLINKINGTECHNIQUESWEHAVEALREADYDISCUSSEDINPARTICULARITBEARSSTRONGRESEMBLANCESTOALGORITHMPOLYADDFORADDITIONOFPOLYNOMIALSTHEREARETWOTHINGSHOWEVERTHATMAKETHEPROBLEMALITTLETRICKYIFINWEHAVEANDBUTTHESPARSEMATRIXREPRESENTATIONHASNOENTRYFORANDWEMUSTINSERTANEWENTRYANDIFBUTWEMUSTDELETETHEENTRYTHATWASFORMERLYTHERETHESEINSERTIONANDDELETIONOPERATIONSAREMOREINTERESTINGINATWODIMENSIONALARRAYTHANINTHEONEDIMENSIONALCASETODOTHEMWEMUSTKNOWWHATLINKSAREAFFECTEDOURALGORITHMPROCESSESTHEMATRIXROWSSUCCESSIVELYFROMBOTTOMTOTOPTHEEFFICIENTABILITYTOINSERTANDDELETEINVOLVESTHEINTRODUCTIONOFASETOFPOINTERVARIABLESJONEFOREACHCOLUMNCONSIDEREDTHESEVARIABLESTRAVERSETHECOLUMNSUPWARDSGIVINGUSTHEABILITYTOUPDATETHEPROPERLINKSINBOTHDIMENSIONSALGORITHMSPIVOTSTEPINASPARSEMATRIXGIVENAMATRIXREPRESENTEDASINFIGFIGWEPERFORMTHEPIVOTOPERATIONASSUMETHATPIVOTISALINKVARIABLEPOINTINGTOTHEPIVOTELEMENTTHEALGORITHMMAKESUSEOFANAUXILIARYTABLEOFLINKVARIABLESPTRONEFOREACHCOLUMNOFTHEMATRIXTHEVARIABLEALPHAANDTHEVALFIELDOFEACHNODEAREASSUMEDTOBEFLOATINGPOINTORRATIONALQUANTITIESWHILEEVERYTHINGELSEINTHISALGORITHMHASINTEGERVALUESSINITIALIZESETANDSPROCESSPIVOTROWSETIFGOONTOSTEPSTHEPIVOTROWHASBEENTRAVERSEDOTHERWISESETANDANDREPEATSTEPSSFINDNEWROWSETTHEREMAINDEROFTHEALGORITHMDEALSSUCCESSIVELYWITHEACHROWFROMBOTTOMTOTOPFORWHICHTHEREISANENTRYINTHEPIVOTCOLUMNSETIFTHEALGORITHMTERMINATESIFREPEATSTEPSWEHAVEALREADYDONETHEPIVOTROWOTHERWISESETTHEPOINTERSPANDPWILLNOWPROCEEDACROSSROWIFROMRIGHTTOLEFTASPGOESINSYNCHRONIZATIONACROSSROWIALGORITHMPOLYADDISANALOGOUSWEHAVEATTHISPOINTSFINDNEWCOLUMNSETIFSETANDRETURNTOSIFREPEATSTEPSTHUSWEPROCESSTHEPIVOTCOLUMNENTRYINROWIAFTERALLOTHERCOLUMNENTRIESHAVEBEENPROCESSEDTHEREASONISTHATVALQISNEEDEDINSTEPSSFINDIJELEMENTIFSETANDREPEATSTEPSIFGOTOSTEPSOTHERWISEGOTOSTEPSWENEEDTOINSERTANEWELEMENTINCOLUMNJOFROWISINSERTIJELEMENTIFINSERTIONINTOLINKEDLISTINSERTIONINTOTWODIMENSIONALLISTSETANDREPEATSTEPSOTHERWISEWEWILLHAVETHENEWELEMENTISTOBEINSERTEDJUSTABOVENODEPTRJINTHEVERTICALDIMENSIONANDJUSTLEFTOFNODEPINTHEHORIZONTALDIMENSIONOTHERWISESETSPIVOTSETIFNOWGOTOSNOTEWHENFLOATINGPOINTARITHMETICISBEINGUSEDTHISTESTSHOULDBEREPLACEDBYORBETTERYETBYTHECONDITIONMOSTOFTHESIGNIFICANTFIGURESOFVALPWERELOSTINTHESUBTRACTIONOTHERWISESETANDGOBACKTOSERRORSCOMPUTATIONALSDELETEIJELEMENTIFORWHATISESSENTIALLYTHESAMETHINGIFDELETIONFROMLINKEDLISTDELETIONFROMTWODIMENSIONALLISTSETANDREPEATSTEPSOTHERWISESETGOBACKTOSTHEPROGRAMMINGOFTHISALGORITHMISLEFTASAVERYINSTRUCTIVEEXERCISEFORTHEREADERSEEEXERCISEITISWORTHPOINTINGOUTHERETHATITISNECESSARYTOALLOCATEONLYONEWORDOFMEMORYTOEACHOFTHENODESBASEROWBASECOLSINCEMOSTOFTHEIRFIELDSAREIRRELEVANTSEETHESHADEDAREASINFIGFIGANDSEETHEPROGRAMOFSECTIONFURTHERMORETHEVALUEJCANBESTOREDASROWLOCBASECOLFORADDITIONALSTORAGESPACEECONOMYTHERUNNINGTIMEOFALGORITHMSISVERYROUGHLYPROPORTIONALTOTHENUMBEROFMATRIXELEMENTSAFFECTEDBYTHEPIVOTOPERATIONTHISREPRESENTATIONOFSPARSEMATRICESVIAORTHOGONALCIRCULARLISTSISINSTRUCTIVEBUTNUMERICALANALYSTSHAVEDEVELOPEDBETTERMETHODSSEEFREDGGUSTAVSONACMTRANSONMATHSOFTWARESEEALSOTHEGRAPHANDNETWORKALGORITHMSINCHAPTERFOREXAMPLEALGORITHMBIPARTPIVOTSTEPEXERCISESGIVEAFORMULAFORLOCAJKIFAISTHEMATRIXOFANDIFEACHNODEOFTHEARRAYISTWOWORDSLONGASSUMINGTHATTHENODESARESTOREDCONSECUTIVELYINLEXICOGRAPHICORDEROFTHEINDICESARRAYSSEQUENTIALLYSTORAGEMAPPINGFUNCTIONSHERETHEINDICESRUNFROMTONOTFROMTOASINEQWHEREISANASSUMEDNODETHATISACTUALLYNONEXISTENTIFWESETWEGETSOTHEANSWERCANBEEXPRESSEDINSEVERALWAYSTHEFACTTHATLOCAMIGHTBENEGATIVEHASLEDTOMANYBUGSINCOMPILERSANDLOADINGROUTINESFORMULASANDHAVEBEENDERIVEDFROMTHEASSUMPTIONTHATFORGIVEAGENERALFORMULATHATAPPLIESTOTHECASEWHEREANDAREANYLOWERANDUPPERBOUNDSONTHEDIMENSIONALITYORIGINKLLKWHERENOTEFORAGENERALIZATIONTOTHESTRUCTURESOCCURRINGINPROGRAMMINGCLANGUAGECOMPILERALGORITHMSLANGUAGESSUCHASANDASIMPLEALGORITHMTOCOMPUTETHERELEVANTCONSTANTSSEEPDEUELCACMTHETEXTCONSIDERSLOWERTRIANGULARMATRICESAFORHOWCANTHEDISCUSSIONOFSUCHMATRICESREADILYBEMODIFIEDFORTHECASETHATSUBSCRIPTSSTARTATINSTEADOFSOTHATIFANDONLYIFSOREPLACERESPECTIVELYBYINALLFORMULASDERIVEDFORLOWERBOUNDZEROSHOWTHATIFWESTORETHEUPPERTRIANGULARARRAYAFORINLEXICOGRAPHICORDEROFTHEINDICESTHEALLOCATIONSATISFIESTHECONDITIONOFEQFINDAFORMULAFORLOCAJKINTHISSENSETRIANGULARMATRIXSHOWTHATITISPOSSIBLETOBRINGTHEVALUEOFAJKINTOREGISTERAINONEINSTRUCTIONUSINGTHEINDIRECTADDRESSINGFEATUREOFEXERCISEINDIRECTADEVENWHENAISATRIANGULARMATRIXASINASSUMETHATTHEVALUESOFJANDKAREININDEXREGISTERSLETTHEREAREATLEASTTWOSOLUTIONSASSUMINGTHATJISINRIANDKISINRIILDATAWHERELOCATIONTAISNOPAIILDACWHERELOCATIONCCONTAINSNOPTAANDLOCATIONTASAYSNOPATHELATTERTAKESONEMORECYCLEBUTDOESNTTIETHETABLEDOWNTOINDEXREGISTERMCONSIDERTHETETRAHEDRALARRAYSABWHEREINAANDINBSUPPOSETHATBOTHOFTHESEARRAYSARESTOREDINCONSECUTIVEMEMORYLOCATIONSINLEXICOGRAPHICORDEROFTHEINDICESSHOWTHATFORCERTAINFUNCTIONSCANLOCBIJKBEEXPRESSEDINASIMILARMANNERABHENCETHESTATEDFORMISPOSSIBLEINTHISCASEALSOKDTETARRAYMFINDAGENERALFORMULATOALLOCATESTORAGEFORTHEDIMENSIONALTETRAHEDRALARRAYAWHERESEEEXERCISECOMBNOSYSTEMPWEGNERSUPPOSEWEHAVESIXTETRAHEDRALARRAYSAIJKBIJKCIJKDIJKEIJKANDFIJKTOSTOREINMEMORYWHEREISTHEREANEATWAYTOACCOMPLISHTHISANALOGOUSTOINTHETWODIMENSIONALCASEORIGINSOLUTIONBYPNASHLETXIJKBEDEFINEDFORWECANLETTHISSCHEMEISTHEBESTPOSSIBLESINCEITPACKSTHEELEMENTSOFTHESIXTETRAHEDRALARRAYSINTOCONSECUTIVELOCATIONSWITHNOOVERLAPPROOFAANDBEXHAUSTALLCELLSXWITHCANDDEXHAUSTALLCELLSWITHEANDFEXHAUSTALLCELLSWITHTHECONSTRUCTIONGENERALIZESTODIMENSIONSIFANYBODYEVERWANTSTOPACKTHEELEMENTSOFGENERALIZEDTETRAHEDRALARRAYSINTOCONSECUTIVELOCATIONSASSOCIATEAPERMUTATIONWITHEACHARRAYANDSTOREITSELEMENTSINWHEREISANINVERSIONTABLEFORASINVERSIONSOFPERMSDEFINEDINEXERCISEINVVARIANTSSUPPOSEATABLELIKETHATINDICATEDINFIGFIGBUTMUCHLARGERHASBEENSETUPSOTHATALLLINKSGOINTHESAMEDIRECTIONASSHOWNTHERENAMELYFORALLNODESANDLINKSDESIGNANALGORITHMTHATFINDSTHEADDRESSESOFALLBLUEEYEDBLONDEWOMENOFAGESTHROUGHBYGOINGTHROUGHTHEVARIOUSLINKFIELDSINSUCHAWAYTHATUPONCOMPLETIONOFTHEALGORITHMATMOSTONEPASSHASBEENMADETHROUGHEACHOFTHELISTSFEMALEAAABLONDANDBLUEGGSETPOINTERVARIABLESPPPPPPTOTHEFIRSTLOCATIONSOFTHELISTSFEMALEAAABLONDBLUERESPECTIVELYASSUMEINWHATFOLLOWSTHATTHEENDOFEACHLISTISGIVENBYLINKANDISSMALLERTHANANYOTHERLINKIFSTOPTHELISTUNFORTUNATELYISEMPTYGMANYPOSSIBLEORDERINGSOFTHEFOLLOWINGACTIONSCOULDBEDONEWEHAVECHOSENTOEXAMINEEYESFIRSTTHENHAIRTHENAGETHENSEXSETZEROORMORETIMESUNTILIFNOWGOTOSTEPGGSETREPEATEDLYIFNECESSARYUNTILSIMILARLYDOTHESAMETOPANDPUNTILANDIFNOWPPPAREALLSMALLERTHANPGOTOGGSETUNTILIFWEHAVEFOUNDONEOFTHEYOUNGLADIESDESIREDSOOUTPUTHERADDRESSPHERAGECANBEDETERMINEDFROMTHESETTINGSOFPPANDPGSETNOWSTOPIFOTHERWISERETURNTOGTHISALGORITHMISINTERESTINGBUTNOTTHEBESTWAYTOORGANIZEALISTFORSUCHASEARCHCANYOUTHINKOFABETTERWAYTOORGANIZEAPERSONNELTABLESOTHATSEARCHESASDESCRIBEDINTHEPREVIOUSEXERCISEWOULDBEMOREEFFICIENTTHEANSWERTOTHISEXERCISEISNOTMERELYYESORNOSEESECTIONSUPPOSETHATWEHAVEAMATRIXINWHICHTHEREAREATMOSTFOURNONZEROENTRIESPERROWHOWMUCHSTORAGEISREQUIREDTOREPRESENTTHISMATRIXASINFIGFIGIFWEUSETHREEWORDSPERNODEEXCEPTFORLISTHEADSWHICHWILLUSEONEWORDATMOSTWORDSWHATAREVALQVALPANDVALPATTHEBEGINNINGOFSTEPSINTERMSOFTHENOTATIONUSEDINWHYWERECIRCULARLISTSUSEDINFIGFIGINSTEADOFSTRAIGHTLINEARLISTSCOULDALGORITHMSBEREWRITTENSOTHATITDOESNOTMAKEUSEOFTHECIRCULARLINKAGEITISCONVENIENTTOHAVEATTHEENDOFEACHLISTASENTINELTHATCOMPARESLOWINSOMEFIELDONWHICHTHELISTISORDEREDASTRAIGHTONEWAYLISTCOULDHAVEBEENUSEDFOREXAMPLEBYRETAININGJUSTTHELEFTLINKSINBASEROWANDTHEUPLINKSINBASECOLBYMODIFYINGALGORITHMSTHUSINSTESTIFBEFORESETTINGIFSOSETANDGOTOSINSTESTIFIFSOTERMINATESTEPSSHOULDCHANGEBYANALOGYWITHSTEPSINSTESTIFIFSOACTASIFINSTESTIFIFSOACTASIFITSROWFIELDWERENEGATIVETHESEMODIFICATIONSMAKETHEALGORITHMMORECOMPLICATEDANDSAVENOSTORAGESPACEEXCEPTAROWORCOLFIELDINTHELISTHEADSWHICHINTHECASEOFISNOSAVINGATALLALGORITHMSACTUALLYSAVESPIVOTINGTIMEINASPARSEMATRIXSINCEITAVOIDSCONSIDERATIONOFTHOSECOLUMNSINWHICHTHEPIVOTROWHASAZEROENTRYSHOWTHATTHISSAVINGSINRUNNINGTIMECANBEACHIEVEDINALARGESPARSEMATRIXTHATISSTOREDSEQUENTIALLYWITHTHEHELPOFANAUXILIARYTABLELINKONECOULDFIRSTLINKTOGETHERTHOSECOLUMNSTHATHAVEANONZEROELEMENTINTHEPIVOTROWSOTHATALLOTHERCOLUMNSCOULDBESKIPPEDASWEPIVOTONEACHROWROWSINWHICHTHEPIVOTCOLUMNISZEROARESKIPPEDOVERIMMEDIATELYWRITEAMIXALPROGRAMFORALGORITHMSASSUMETHATTHEVALFIELDISAFLOATINGPOINTNUMBERANDTHATSFLOATINGPOINTARITHMETICOPERATORSFADDFSUBFMULANDFDIVCANBEFADDFSUBFMULFDIVFLOATINGPOINTOPERATORSOFMIXUSEDFOROPERATIONSONTHISFIELDASSUMEFORSIMPLICITYTHATFADDANDFSUBRETURNTHEANSWERZEROWHENTHEOPERANDSADDEDORSUBTRACTEDCANCELMOSTOFTHESIGNIFICANCESOTHATTHETESTMAYSAFELYBEUSEDINSTEPSTHEFLOATINGPOINTOPERATIONSUSEONLYRANOTRXLETIJJNOTEUSINGTHECONVENTIONSOFCHAPTERLINESWOULDACTUALLYBECODEDWITHASUITABLEPARAMETEREPSILONINLOCATIONZEROFCMPDESIGNANALGORITHMTOCOPYASPARSEMATRIXINOTHERWORDSTHEALGORITHMISTOYIELDTWODISTINCTREPRESENTATIONSOFAMATRIXINMEMORYHAVINGTHEFORMOFFIGFIGGIVENJUSTONESUCHREPRESENTATIONINITIALLYCOPYATWODIMENSIONALLINKEDLISTDESIGNANALGORITHMTOMULTIPLYTWOSPARSEMATRICESGIVENMATRICESAANDBFORMANEWMATRIXCWHEREIJIKKJTHETWOINPUTMATRICESANDTHEOUTPUTMATRIXSHOULDBEREPRESENTEDASINFIGFIGMULTIPLICATIONOFSPARSEMATRICESSPARSEMATRICESFOREACHROWANDEACHELEMENTIKADDATIMESROWOFBTOROWOFCMAINTAINONLYTHECOLLINKSOFCWHILEDOINGTHISTHEROWLINKSAREEASILYFILLEDINAFTERWARDSASCHOORINFPROCLETTERSTHEFOLLOWINGALGORITHMREPLACESAMATRIXBYTHEINVERSEOFTHATMATRIXASSUMINGTHATTHEENTRIESAREAFORINVERSEMATRIXIFORDOTHEFOLLOWINGSEARCHROWINALLCOLUMNSNOTYETUSEDASAPIVOTCOLUMNTOFINDANENTRYWITHTHEGREATESTABSOLUTEVALUESETCEQUALTOTHECOLUMNINWHICHTHISENTRYWASFOUNDANDDOAPIVOTSTEPWITHTHISENTRYASPIVOTIFALLSUCHENTRIESAREZEROTHEMATRIXISSINGULARANDHASNOINVERSESINGULARMATRIXPIVOTSTEPIIPERMUTEROWSANDCOLUMNSSOTHATWHATWASROWBECOMESROWKANDWHATWASCOLUMNKBECOMESCOLUMNTHEPROBLEMINTHISEXERCISEISTOUSETHESTATEDALGORITHMTOINVERTTHEMATRIXBYHANDCALCULATIONTHETHREEPIVOTSTEPSINRESPECTIVECOLUMNSYIELDRESPECTIVELYAFTERTHEFINALPERMUTATIONSWEHAVETHEANSWERMODIFYTHEALGORITHMDESCRIBEDINEXERCISESOTHATITOBTAINSTHEINVERSEOFASPARSEMATRIXTHATISREPRESENTEDINTHEFORMOFFIGFIGPAYSPECIALATTENTIONTOMAKINGTHEROWANDCOLUMNPERMUTATIONOPERATIONSOFSTEPIIEFFICIENTARRAYSLINKEDATRIDIAGONALMATRIXHASENTRIESTHATAREZEROEXCEPTWHENFORSHOWTHATTHEREISANALLOCATIONFUNCTIONOFTHEFORMWHICHREPRESENTSALLOFTHERELEVANTELEMENTSOFATRIDIAGONALMATRIXINCONSECUTIVELOCATIONSORSUGGESTASTORAGEALLOCATIONFUNCTIONFORMATRICESWHEREISVARIABLETHEELEMENTSAIJFORSHOULDOCCUPYCONSECUTIVELOCATIONSREGARDLESSOFTHEVALUEOFFOREXAMPLESUCHFORMULASHAVEBEENPROPOSEDINDEPENDENTLYBYMANYPEOPLEALROSENBERGANDHRSTRONGHAVESUGGESTEDTHEFOLLOWINGDIMENSIONALGENERALIZATIONIIKWHEREANDIBMTECHNICALDISCLOSUREBULLETINSEECURRENTTRENDSINPROGRAMMINGMETHODOLOGYPRENTICEHALLFORFURTHERRESULTSOFTHISKINDMPCHOWLAFINDAPOLYNOMIALTHATASSUMESEACHNONNEGATIVEINTEGERVALUEEXACTLYONCEASTHEINDICESRUNTHROUGHALLDIMENSIONALNONNEGATIVEINTEGERVECTORSWITHTHEADDITIONALPROPERTYTHATIMPLIESACCORDINGTOTHECOMBINATORIALNUMBERSYSTEMEXERCISECOMBNOSYSTEMWECANLETDETKONGELIGENORSKEVIDENSKABERSSELSKABSFORHANDLINGERANEXTENDIBLEMATRIXISINITIALLYTHENITGROWSFROMSIZEEITHERTOSIZEORTOSIZEBYADDINGEITHERANEWROWORANEWCOLUMNSHOWTHATSUCHAMATRIXCANBEGIVENASIMPLEALLOCATIONFUNCTIONINWHICHTHEELEMENTSAIJOCCUPYCONSECUTIVELOCATIONSFORANDNOELEMENTSCHANGELOCATIONWHENTHEMATRIXGROWSLETIFTHEREWEREROWSWHENTHEMATRIXGREWFROMJTOCOLUMNSSIMILARLYLETIFTHEREWERECOLUMNSWHENWECREATEDROWITHENWECANUSETHEALLOCATIONFUNCTIONITISNOTHARDTOPROVETHATIMPLIESANDIMPLIESTHEREFORETHERELATIONALSOHOLDSWENEEDNOTRESTRICTALLOCATIONTOCONSECUTIVELOCATIONSTHEONLYCONSTRAINTISTHATWHENTHEMATRIXGROWSWEALLOCATEORCONSECUTIVENEWCELLSINLOCATIONSGREATERTHANTHOSEPREVIOUSLYUSEDTHISCONSTRUCTIONISDUETOEJOTOOANDTHMERRETTCOMPUTINGWHOALSOGENERALIZEDITTODIMENSIONSUNINITARRAYTHESPARSEARRAYTRICKUNINITIALIZEDARRAYSUPPOSEYOUWANTTOUSEALARGEARRAYFORRANDOMACCESSALTHOUGHYOUWONTACTUALLYBEREFERRINGTOVERYMANYOFITSENTRIESYOUWANTATOBEZEROTHEFIRSTTIMEYOUACCESSITYETYOUDONTWANTTOSPENDTHETIMETOSETEVERYLOCATIONTOZEROEXPLAINHOWITISPOSSIBLETOREADANDWRITEANYDESIREDELEMENTSARELIABLYGIVENWITHOUTASSUMINGANYTHINGABOUTTHEACTUALINITIALMEMORYCONTENTSBYDOINGONLYASMALLFIXEDNUMBEROFADDITIONALOPERATIONSPERARRAYACCESSAHOHOPCROFTANDULLMANTHEDESIGNANDANALYSISOFCOMPUTERALGORITHMSADDISONWESLEYEXERCISEBESIDESTHEARRAYAMAINTAINALSOAVERIFICATIONARRAYVOFTHESAMESIZEANDALISTLOFTHELOCATIONSUSEDLETBETHENUMBEROFITEMSINLINITIALLYANDTHECONTENTSOFLAANDVAREARBITRARYWHENEVERYOUWANTTOACCESSAFORAVALUEOFTHATYOUMIGHTNOTHAVEUSEDBEFOREFIRSTCHECKWHETHERKANDKIFNOTSETKNKANDOTHERWISEYOUCANBESURETHATAALREADYCONTAINSLEGITIMATEDATABYASLIGHTEXTENSIONOFTHISMETHODITISPOSSIBLETOSAVEANDEVENTUALLYRESTORETHECONTENTSOFALLENTRIESOFAANDVTHATCHANGEDURINGTHECOMPUTATIONORTHOGONALLISTSARRAYSSTORAGEMAPPINGFUNCTIONSARRAYSSEQUENTIALLYLINEARLISTSTRAVERSINGBINARYTREESBINARYTREESITISIMPORTANTTOACQUIREAGOODUNDERSTANDINGOFTHEPROPERTIESOFBINARYTREESBEFOREMAKINGFURTHERINVESTIGATIONSOFTREESSINCEGENERALTREESAREUSUALLYREPRESENTEDINTERMSOFSOMEEQUIVALENTBINARYTREEINSIDEACOMPUTERWEHAVEDEFINEDABINARYTREEASAFINITESETOFNODESTHATEITHERISEMPTYREPRESENTATIONOFBINARYTREESBINARYTREESLINKEDLLINKINBINARYTREERLINKINBINARYTREELEFTSUBTREERIGHTSUBTREERECURSIVEDEFINITIONNULLLINKSINTREEORCONSISTSOFAROOTTOGETHERWITHTWOBINARYTREESTHISDEFINITIONSUGGESTSANATURALWAYTOREPRESENTBINARYTREESWITHINACOMPUTERWECANHAVETWOLINKSLLINKANDRLINKWITHINEACHNODEANDALINKVARIABLETTHATISAPOINTERTOTHETREEIFTHETREEISEMPTYOTHERWISETISTHEADDRESSOFTHEROOTNODEOFTHETREEANDLLINKTRLINKTAREPOINTERSTOTHELEFTANDRIGHTSUBTREESOFTHEROOTRESPECTIVELYTHESERULESRECURSIVELYDEFINETHEMEMORYREPRESENTATIONOFANYBINARYTREEFOREXAMPLEISREPRESENTEDBYTHISSIMPLEANDNATURALMEMORYREPRESENTATIONACCOUNTSFORTHESPECIALIMPORTANCEOFBINARYTREESTRUCTURESWEWILLSEEINSECTIONTHATGENERALTREESCANCONVENIENTLYBEREPRESENTEDASBINARYTREESMOREOVERMANYTREESTHATARISEINAPPLICATIONSARETHEMSELVESINHERENTLYBINARYSOBINARYTREESAREOFINTERESTINTHEIROWNRIGHTTHEREAREMANYALGORITHMSFORMANIPULATIONOFTREESTRUCTURESANDONEIDEATRAVERSINGABINARYTREETHATOCCURSREPEATEDLYINTHESEALGORITHMSISTHENOTIONOFTRAVERSINGORWALKINGTHROUGHATREETHISISAMETHODOFEXAMININGTHENODESOFTHETREESYSTEMATICALLYSOTHATEACHNODEISVISITEDEXACTLYONCEACOMPLETETRAVERSALOFTHETREEGIVESUSALINEARARRANGEMENTOFTHENODESANDMANYALGORITHMSAREFACILITATEDIFWECANTALKABOUTTHENEXTNODEFOLLOWINGORPRECEDINGAGIVENNODEINSUCHASEQUENCETHREEPRINCIPALWAYSMAYBEUSEDTOTRAVERSEABINARYTREEWECANVISITTHERECURSIVEDEFINITIONPREORDERFORBINARYTREEINORDERFORBINARYTREEPOSTORDERFORBINARYTREENODESINPREORDERINORDERORPOSTORDERTHESETHREEMETHODSAREDEFINEDRECURSIVELYWHENTHEBINARYTREEISEMPTYITISTRAVERSEDBYDOINGNOTHINGOTHERWISETHETRAVERSALPROCEEDSINTHREESTEPSTRAVERSALPAGEIFWEAPPLYTHESEDEFINITIONSTOTHEBINARYTREEOFANDWEFINDTHATTHENODESINPREORDERAREFIRSTCOMESTHEROOTTHENCOMESTHELEFTSUBTREEINPREORDERANDFINALLYWETRAVERSETHERIGHTSUBTREEINPREORDERFORINORDERWEVISITTHEROOTBETWEENVISITSTOTHENODESOFEACHSUBTREEESSENTIALLYASTHOUGHTHENODESWEREPROJECTEDDOWNONTOASINGLEHORIZONTALLINEANDTHISGIVESTHESEQUENCETHEPOSTORDERFORTHENODESOFTHISBINARYTREEISSIMILARLYWEWILLSEETHATTHESETHREEWAYSOFARRANGINGTHENODESOFABINARYTREEINTOASEQUENCEAREEXTREMELYIMPORTANTASTHEYAREINTIMATELYCONNECTEDWITHMOSTOFTHECOMPUTERMETHODSFORDEALINGWITHTREESTHENAMESPREORDERINORDERANDPOSTORDERCOMEOFCOURSEFROMTHERELATIVEPOSITIONOFTHEROOTWITHRESPECTTOITSSUBTREESINMANYAPPLICATIONSOFBINARYTREESTHEREISSYMMETRYBETWEENTHEMEANINGSOFLEFTSUBTREESANDRIGHTSUBTREESANDINSUCHCASESTHETERMSYMMETRICORDERSYMMETRICORDERISUSEDASASYNONYMFORINORDERINORDERWHICHPUTSTHEROOTINTHEMIDDLEISESSENTIALLYSYMMETRICBETWEENLEFTANDRIGHTIFTHEBINARYTREEISREFLECTEDABOUTAVERTICALAXISTHESYMMETRICORDERISSIMPLYREVERSEDSYMMETRICORDERARECURSIVELYSTATEDDEFINITIONSUCHASTHEONEJUSTGIVENFORTHETHREEBASICORDERSMUSTBEREWORKEDINORDERTOMAKEITDIRECTLYAPPLICABLETOCOMPUTERIMPLEMENTATIONGENERALMETHODSFORDOINGTHISAREDISCUSSEDINCHAPTERWEUSUALLYMAKEUSEOFANAUXILIARYSTACKASINTHEFOLLOWINGALGORITHMSTACKTBININORDERALGORITHMTTRAVERSEBINARYTREEININORDERLETTBEATRAVERSEININORDERPOINTERTOABINARYTREEHAVINGAREPRESENTATIONASINTHISALGORITHMVISITSALLTHENODESOFTHEBINARYTREEININORDERMAKINGUSEOFANAUXILIARYSTACKATINITIALIZESETSTACKAEMPTYANDSETTHELINKVARIABLETIFGOTOSTEPTTSTACKNOWPPOINTSTOANONEMPTYBINARYTREETHATISTOBETRAVERSEDSETTHATISPUSHTHEVALUEOFPONTOSTACKASEESECTIONTHENSETANDRETURNTOSTEPTTSTACKIFSTACKAISEMPTYTHEALGORITHMTERMINATESOTHERWISESETTVISITPVISITNODEPTHENSETANDRETURNTOSTEPTFIGFIGALGORITHMTFORINORDERTRAVERSALINTHEFINALSTEPOFTHISALGORITHMTHEWORDVISITMEANSTHATWEDOVISITANODEWHATEVERACTIVITYISINTENDEDASTHETREEISBEINGTRAVERSEDALGORITHMTRUNSLIKEACOROUTINEWITHRESPECTTOTHISOTHERACTIVITYTHEMAINPROGRAMACTIVATESTHECOROUTINEWHENEVERITWANTSPTOMOVEFROMONENODETOITSINORDERSUCCESSOROFCOURSESINCETHISCOROUTINECALLSTHEMAINROUTINEINONLYONEPLACEITISNOTMUCHDIFFERENTFROMASUBROUTINESEESECTIONALGORITHMTASSUMESTHATTHEEXTERNALACTIVITYDELETESNEITHERNODEPNORANYOFITSANCESTORSFROMTHETREETHEREADERSHOULDNOWATTEMPTTOPLAYTHROUGHALGORITHMTUSINGTHEBINARYTREEASATESTCASEINORDERTOSEETHEREASONSBEHINDTHEPROCEDUREWHENWEGETTOSTEPTWEWANTTOTRAVERSETHEBINARYTREEWHOSEROOTISINDICATEDBYPOINTERPTHEIDEAISTOSAVEPONASTACKANDTHENTOTRAVERSETHELEFTSUBTREEWHENTHISHASBEENDONEWEWILLGETTOSTEPTANDWILLFINDTHEOLDVALUEOFPONTHESTACKAGAINAFTERVISITINGTHEROOTNODEPINSTEPTTHEREMAININGJOBISTOTRAVERSETHERIGHTSUBTREEALGORITHMTISTYPICALOFMANYOTHERALGORITHMSTHATWEWILLSEELATERSOITISINSTRUCTIVETOLOOKATAFORMALPROOFOFTHEREMARKSMADEINTHEPRECEDINGPARAGRAPHLETUSNOWATTEMPTTOPROVETHATALGORITHMTPROOFOFALGORITHMRECURSIONINDUCTIONTRAVERSESABINARYTREEOFNODESININORDERBYUSINGINDUCTIONONOURGOALISREADILYESTABLISHEDIFWECANPROVEASLIGHTLYMOREGENERALRESULTSTARTINGATSTEPTWITHPAPOINTERTOABINARYTREEOFNODESANDWITHTHESTACKACONTAININGMFORSOMETHEPROCEDUREOFSTEPSTTWILLTRAVERSETHEBINARYTREEINQUESTIONININORDERANDWILLTHENARRIVEATSTEPTWITHSTACKARETURNEDTOITSORIGINALVALUEMTHISSTATEMENTISOBVIOUSLYTRUEWHENBECAUSEOFSTEPTIFLETBETHEVALUEOFPUPONENTRYTOSTEPTSINCEWEWILLPERFORMSTEPTWHICHMEANSTHATSTACKAISCHANGEDTOMANDPISSETTOLLINKPNOWTHELEFTSUBTREEHASFEWERTHANNODESSOBYINDUCTIONWEWILLTRAVERSETHELEFTSUBTREEININORDERANDWILLULTIMATELYARRIVEATSTEPTWITHMONTHESTACKSTEPTRETURNSTHESTACKTOMANDSETSSTEPTNOWVISITSNODEPANDSETSNOWTHERIGHTSUBTREEHASFEWERTHANNODESSOBYINDUCTIONWEWILLTRAVERSETHERIGHTSUBTREEININORDERANDARRIVEATSTEPTASREQUIREDTHETREEHASBEENTRAVERSEDININORDERBYTHEDEFINITIONOFTHATORDERTHISCOMPLETESTHEPROOFANALMOSTIDENTICALALGORITHMMAYBEFORMULATEDTHATTRAVERSESBINARYTREESINPREORDERSEEEXERCISEITISSLIGHTLYMOREDIFFICULTTOACHIEVETHETRAVERSALINPOSTORDERSEEEXERCISEANDFORTHISREASONPOSTORDERISNOTASIMPORTANTFORBINARYTREESASTHEOTHERSAREITISCONVENIENTTODEFINEANEWNOTATIONFORTHESUCCESSORSANDPREDECESSORSPREORDERINBINARYTREEPOSTORDERINBINARYTREESYMMETRICORDEROFNODESINTHESEVARIOUSORDERSIFPPOINTSTOANODEOFABINARYTREELETIFTHEREISNOSUCHSUCCESSORORPREDECESSOROFNODEPTHEVALUELOCTISGENERALLYUSEDWHERETISANEXTERNALPOINTERTOTHETREEINQUESTIONWEHAVEANDASANEXAMPLEOFTHISNOTATIONLETINFOPBETHELETTERSHOWNINNODEPINTHETREETHENIFPPOINTSTOTHEROOTWEHAVEANDATTHISPOINTTHEREADERWILLPERHAPSEXPERIENCEAFEELINGOFINSECURITYABOUTTHEINTUITIVEMEANINGSOFPPETCASWEPROCEEDFURTHERTHEIDEASWILLGRADUALLYBECOMECLEAREREXERCISEATTHEENDOFTHISSECTIONMAYALSOBEOFHELPTHEINISMEANTTOSUGGESTTHELETTERSFORSYMMETRICORDERTHEREISANIMPORTANTALTERNATIVETOTHEMEMORYREPRESENTATIONOFBINARYTREESGIVENINWHICHISSOMEWHATANALOGOUSTOTHEDIFFERENCEBETWEENCIRCULARLISTSANDSTRAIGHTONEWAYLISTSNOTICETHATTHEREAREMORENULLLINKSTHANOTHERPOINTERSINTHETREEANDINDEEDTHISISTRUEOFANYBINARYTREEREPRESENTEDBYTHECONVENTIONALMETHODSEEEXERCISEBUTWEDONTREALLYNEEDTOWASTEALLTHATMEMORYSPACEFOREXAMPLEWECOULDSTORETWOTAGINDICATORSWITHEACHNODEWHICHWOULDTELLINJUSTTWOBITSOFMEMORYWHETHERORNOTTHELLINKORRLINKORBOTHARENULLTHEMEMORYSPACEFORTERMINALLINKSCOULDTHENBEUSEDFOROTHERPURPOSESANINGENIOUSUSEOFTHISEXTRASPACEHASBEENSUGGESTEDBYAJPERLISANDCTHORNTONWHODEVISEDTHESOCALLEDTHREADEDTREETHREADEDBINARYTREEREPRESENTATIONOFBINARYTREEREPRESENTATIONINTHISMETHODTERMINALLINKSAREREPLACEDBYTHREADSTOOTHERPARTSOFTHETREEASANAIDTOTRAVERSALTHETHREADEDTREEEQUIVALENTTOISHEREDOTTEDLINESREPRESENTTHETHREADSWHICHALWAYSGOTOAHIGHERNODEOFTHETREEEVERYNODENOWHASTWOLINKSSOMENODESLIKEHAVETWOORDINARYLINKSTOLEFTANDRIGHTSUBTREESOTHERNODESLIKEHAVETWOTHREADLINKSANDSOMENODESHAVEONELINKOFEACHTYPETHESPECIALTHREADSEMANATINGFROMANDWILLBEEXPLAINEDLATERTHEYAPPEARINTHELEFTMOSTANDRIGHTMOSTNODESINTHEMEMORYREPRESENTATIONOFATHREADEDBINARYTREEITISNECESSARYTODISTINGUISHBETWEENTHEDOTTEDANDSOLIDLINKSTHISCANBEDONEASSUGGESTEDABOVEBYTWOADDITIONALONEBITFIELDSINEACHNODELTAGANDRTAGLTAGRTAGLLINKINBINARYTREERLINKINBINARYTREENULLLINKINBINARYTREETHETHREADEDREPRESENTATIONMAYBEDEFINEDPRECISELYASFOLLOWSACCORDINGTOTHISDEFINITIONEACHNEWTHREADLINKPOINTSDIRECTLYTOTHEPREDECESSORORSUCCESSOROFTHENODEINQUESTIONINSYMMETRICORDERINORDERFIGURETHREADSILLUSTRATESTHEGENERALORIENTATIONOFTHREADLINKSINANYBINARYTREETHREADSGENERALGENERALFIGGENERALORIENTATIONOFLEFTANDRIGHTTHREADLINKSINATHREADEDBINARYTREEWAVYLINESINDICATELINKSORTHREADSTOOTHERPARTSOFTHETREEINSOMEALGORITHMSITCANBEGUARANTEEDTHATTHEROOTOFANYSUBTREEALWAYSWILLAPPEARINALOWERMEMORYLOCATIONTHANTHEOTHERNODESOFTHESUBTREETHENLTAGPWILLBEIFANDONLYIFSOLTAGWILLBEREDUNDANTTHERTAGBITWILLBEREDUNDANTFORTHESAMEREASONTHEGREATADVANTAGEOFTHREADEDTREESISTHATTRAVERSALALGORITHMSBECOMESIMPLERFOREXAMPLETHEFOLLOWINGALGORITHMCALCULATESPGIVENPTRAVERSEBINARYTREEININORDERSTHREADEDSUCCESSORALGORITHMSSYMMETRICINORDERSUCCESSORINATHREADEDBINARYTREEIFPPOINTSTOANODEOFATHREADEDBINARYTREETHISALGORITHMSETSSRLINKPATHREADSETIFTERMINATETHEALGORITHMSSEARCHTOLEFTIFSETANDREPEATTHISSTEPOTHERWISETHEALGORITHMTERMINATESNOTICETHATNOSTACKISNEEDEDHERETOACCOMPLISHWHATWASDONEUSINGASTACKINALGORITHMTINFACTTHEORDINARYREPRESENTATIONMAKESITIMPOSSIBLETOFINDPEFFICIENTLYGIVENONLYTHEADDRESSOFARANDOMPOINTPINTHETREESINCENOLINKSPOINTUPWARDINANUNTHREADEDREPRESENTATIONTHEREISNOCLUETOWHATNODESAREABOVEAGIVENNODEUNLESSWERETAINAHISTORYOFHOWWEREACHEDTHATPOINTTHESTACKINALGORITHMTPROVIDESTHENECESSARYHISTORYWHENTHREADSAREABSENTINORDERFORBINARYTREEWECLAIMTHATALGORITHMSISEFFICIENTALTHOUGHTHISPROPERTYISNOTIMMEDIATELYOBVIOUSSINCESTEPSCANBEEXECUTEDANYNUMBEROFTIMESINVIEWOFTHELOOPINSTEPSWOULDITPERHAPSBEFASTERTOUSEASTACKAFTERALLASALGORITHMTDOESTOINVESTIGATETHISQUESTIONWEANALYSISOFALGORITHMSWILLCONSIDERTHEAVERAGENUMBEROFTIMESTHATSTEPSMUSTBEPERFORMEDIFPISARANDOMPOINTINTHETREEORWHATISTHESAMEWEWILLDETERMINETHETOTALNUMBEROFTIMESTHATSTEPSISPERFORMEDIFALGORITHMSISUSEDREPEATEDLYTOTRAVERSEANENTIRETREEATTHESAMETIMEASTHISANALYSISISBEINGCARRIEDOUTITWILLBEINSTRUCTIVETOSTUDYCOMPLETEPROGRAMSFORBOTHALGORITHMSSANDTASUSUALWESHOULDBECAREFULTOSETALLOFOURALGORITHMSUPSOTHATTHEYWORKPROPERLYWITHEMPTYBINARYTREESANDIFTISTHEPOINTERTOTHETREEWEWOULDLIKETOHAVELOCTANDLOCTBETHEFIRSTNODESINPREORDERORSYMMETRICORDERRESPECTIVELYFORTHREADEDTREESITTURNSOUTTHATTHINGSWILLWORKNICELYIFNODELOCTISMADEINTOALISTHEADFORTHETREEWITHLISTHEADINTHREADEDTREEHEREHEADDENOTESLOCTTHEADDRESSOFTHELISTHEADANEMPTYTHREADEDTREEWILLSATISFYTHECONDITIONSTHETREEGROWSBYHAVINGNODESINSERTEDTOTHELEFTOFTHELISTHEADTHESEINITIALCONDITIONSAREPRIMARILYDICTATEDBYTHEALGORITHMTOCOMPUTEPWHICHAPPEARSINEXERCISEINACCORDANCEWITHTHESECONVENTIONSTHECOMPUTERREPRESENTATIONFORTHEBINARYTREEASATHREADEDTREEISWITHTHESEPRELIMINARIESOUTOFTHEWAYWEARENOWREADYTOCONSIDERVERSIONSOFALGORITHMSSANDTTHEFOLLOWINGPROGRAMSASSUMETHATBINARYTREENODESHAVETHETWOWORDFORMINANUNTHREADEDTREELTAGANDRTAGWILLALWAYSBEANDTERMINALLINKSWILLBEREPRESENTEDBYZEROINATHREADEDTREEWEWILLUSEFORTAGSTHATAREANDFORTAGSTHATARETHEABBREVIATIONSLLINKTANDRLINKTWILLBEUSEDTOSTANDFORTHECOMBINEDLLINKTRLINKTLTAGLLINKANDRTAGRLINKFIELDSRESPECTIVELYTHETWOTAGBITSOCCUPYOTHERWISEUNUSEDSIGNPOSITIONSOFAWORDSOTHEYCOSTNOTHINGINMEMORYSPACESIMILARLYWITHTHECOMPUTERWEWILLBEABLETOUSETHELEASTSIGNIFICANTBITSOFLINKFIELDSASTAGBITSTHATCOMEFORFREEBECAUSEPOINTERVALUESWILLGENERALLYBEEVENANDBECAUSEWILLMAKEITEASYTOIGNORETHELOWORDERBITSWHENADDRESSINGMEMORYMMIXTHEFOLLOWINGTWOPROGRAMSTRAVERSEABINARYTREEINSYMMETRICORDERTHATISINORDERJUMPINGTOLOCATIONVISITPERIODICALLYWITHINDEXREGISTERPOINTINGTOTHENODETHATISCURRENTLYOFINTERESTPROGRAMTINTHISIMPLEMENTATIONOFALGORITHMTTHESTACKISKEPTINLOCATIONSSTACKSTACKSEQUENTIALSEQUENTIALLINEARLISTRIISTHESTACKPOINTERANDOVERFLOWOCCURSIFTHESTACKGROWSTOOLARGETHEPROGRAMHASBEENREARRANGEDSLIGHTLYFROMALGORITHMTSTEPTAPPEARSTHRICESOTHATTHETESTFORANEMPTYSTACKNEEDNOTBEMADEWHENGOINGDIRECTLYFROMTTOTTOTPROGRAMSALGORITHMSHASBEENAUGMENTEDWITHINITIALIZATIONANDTERMINATIONCONDITIONSTOMAKETHISPROGRAMCOMPARABLETOPROGRAMTANANALYSISOFTHERUNNINGTIMEAPPEARSWITHTHECODEABOVETHESEQUANTITIESAREEASYTODETERMINEUSINGKIRCHHOFFSLAWANDTHEFACTSTHATIINPROGRAMTTHENUMBEROFINSERTIONSONTOTHESTACKMUSTEQUALTHENUMBEROFDELETIONSIIINPROGRAMSTHELLINKANDRLINKOFEACHNODEAREEXAMINEDPRECISELYONCEIIITHENUMBEROFVISITSISTHENUMBEROFNODESINTHETREETHEANALYSISTELLSUSPROGRAMTTAKESUNITSOFTIMEANDPROGRAMSTAKESUNITSWHEREISTHENUMBEROFNODESINTHETREEANDISTHENUMBEROFTERMINALRIGHTLINKSNODESWITHNORIGHTSUBTREETHEQUANTITYCANBEASLOWASASSUMINGTHATANDITCANBEASHIGHASIFLEFTANDRIGHTARESYMMETRICALTHEAVERAGEVALUEOFISASACONSEQUENCEOFFACTSPROVEDINEXERCISEANALYSISOFALGORITHMSTHEPRINCIPALCONCLUSIONSWEMAYREACHONTHEBASISOFTHISANALYSISAREISTEPSOFALGORITHMSISPERFORMEDONLYONCEONTHEAVERAGEPEREXECUTIONOFTHATALGORITHMIFPISARANDOMNODEOFTHETREEIITRAVERSALISSLIGHTLYFASTERFORTHREADEDTREESBECAUSEITREQUIRESNOSTACKMANIPULATIONIIIALGORITHMTNEEDSMOREMEMORYSPACETHANALGORITHMSBECAUSEOFTHEAUXILIARYSTACKREQUIREDINPROGRAMTWEKEPTTHESTACKINCONSECUTIVEMEMORYLOCATIONSTHEREFOREWENEEDEDTOPUTANARBITRARYBOUNDONITSSIZEITWOULDBEVERYEMBARRASSINGIFTHISBOUNDWEREEXCEEDEDSOITMUSTBESETREASONABLYLARGESEEEXERCISETHUSTHEMEMORYREQUIREMENTOFPROGRAMTISSIGNIFICANTLYMORETHANPROGRAMSNOTINFREQUENTLYACOMPLEXCOMPUTERAPPLICATIONWILLBEINDEPENDENTLYTRAVERSINGSEVERALTREESATONCEANDASEPARATESTACKWILLBENEEDEDFOREACHTREEUNDERPROGRAMTTHISSUGGESTSTHATPROGRAMTMIGHTUSELINKEDALLOCATIONSTACKTHREADEDVSUNTHREADEDFORITSSTACKSEEEXERCISEITSEXECUTIONTIMETHENBECOMESUNITSROUGHLYTWICEASSLOWASBEFOREALTHOUGHTHETRAVERSALSPEEDMAYNOTBETERRIBLYIMPORTANTWHENTHEEXECUTIONTIMEFORTHEOTHERCOROUTINEISADDEDINSTILLANOTHERALTERNATIVEISTOKEEPTHESTACKLINKSWITHINTHETREEITSELFINATRICKYWAYASDISCUSSEDINEXERCISEIVALGORITHMSISOFCOURSEMOREGENERALTHANALGORITHMTSINCEITALLOWSUSTOGOFROMPTOPWHENWEARENOTNECESSARILYTRAVERSINGTHEENTIREBINARYTREESOATHREADEDBINARYTREEISDECIDEDLYSUPERIORTOANUNTHREADEDONEWITHRESPECTTOTRAVERSALTHESEADVANTAGESAREOFFSETINSOMEAPPLICATIONSBYTHESLIGHTLYINCREASEDTIMENEEDEDTOINSERTANDDELETENODESINATHREADEDTREEITISALSOSOMETIMESPOSSIBLETOSAVEMEMORYSPACEBYSHARINGCOMMONSUBTREESWITHANUNTHREADEDREPRESENTATIONWHILETHREADEDBINARYTREEWITHSHAREDSUBTREESTREESREQUIREADHERENCETOASTRICTTREESTRUCTUREWITHNOOVERLAPPINGOFSUBTREESTHREADLINKSCANALSOBEUSEDTOCOMPUTEPPANDPWITHEFFICIENCYCOMPARABLETOTHATOFALGORITHMSTHEFUNCTIONSPANDPARESLIGHTLYHARDERTOCOMPUTEJUSTASTHEYAREFORUNTHREADEDTREEREPRESENTATIONSTHEREADERISURGEDTOWORKEXERCISEMOSTOFTHEUSEFULNESSOFTHREADEDTREESWOULDDISAPPEARIFITWEREHARDTOSETUPTHETHREADLINKSINTHEFIRSTPLACEWHATMAKESTHEIDEAREALLYWORKISTHATTHREADEDTREESGROWALMOSTASEASILYASORDINARYONESDOWEHAVETHEFOLLOWINGALGORITHMALGORITHMIINSERTIONINTOATHREADEDBINARYTREETHISALGORITHMATTACHESASINGLENODENODEQASTHERIGHTSUBTREEOFNODEPIFTHERIGHTSUBTREEISEMPTYTHATISIFOTHERWISEITINSERTSNODEQBETWEENNODEPANDNODERLINKPINSERTIONINTOTHREADEDBINARYTREEMAKINGTHELATTERNODETHERIGHTCHILDOFNODEQTHEBINARYTREEINWHICHTHEINSERTIONTAKESPLACEISASSUMEDTOBETHREADEDASINFORAMODIFICATIONSEEEXERCISEIADJUSTTAGSANDLINKSSETIWASRLINKPATHREADIFSETHEREQISDETERMINEDBYALGORITHMSWHICHWILLWORKPROPERLYEVENTHOUGHLLINKQNOWPOINTSTONODEPINSTEADOFNODEQTHISSTEPISNECESSARYONLYWHENINSERTINGINTOTHEMIDSTOFATHREADEDTREEINSTEADOFMERELYINSERTINGANEWLEAFBYREVERSINGTHEROLESOFLEFTANDRIGHTINPARTICULARBYREPLACINGQBYQINSTEPIWEOBTAINANALGORITHMTHATINSERTSTOTHELEFTINASIMILARWAYOURDISCUSSIONOFTHREADEDBINARYTREESSOFARHASMADEUSEOFTHREADLINKSBOTHTOTHELEFTANDTOTHERIGHTTHEREISANIMPORTANTMIDDLEGROUNDBETWEENTHECOMPLETELYUNTHREADEDANDCOMPLETELYTHREADEDMETHODSOFREPRESENTATIONARIGHTTHREADEDBINARYTREECOMBINESTHETWOAPPROACHESBYMAKINGREPRESENTATIONOFBINARYTREEUSEOFTHREADEDRLINKSWHILEREPRESENTINGEMPTYLEFTSUBTREESBYSIMILARLYALEFTTHREADEDBINARYTREETHREADSONLYTHENULLLLINKSALGORITHMSDOESNOTMAKEESSENTIALUSEOFTHREADEDLLINKSIFWECHANGETHETESTINSTEPSTOWEOBTAINANALGORITHMFORTRAVERSINGRIGHTTHREADEDBINARYTREESINSYMMETRICORDERPROGRAMSWORKSWITHOUTCHANGEINTHERIGHTTHREADEDCASEAGREATMANYAPPLICATIONSOFBINARYTREESTRUCTURESREQUIREONLYALEFTTORIGHTTRAVERSALOFTREESUSINGTHEFUNCTIONSPANDORPANDFORTHESEAPPLICATIONSTHEREISNONEEDTOTHREADTHELLINKSWEHAVEDESCRIBEDTHREADINGLLINKINBINARYTREERLINKINBINARYTREEINBOTHTHELEFTANDRIGHTDIRECTIONSINORDERTOINDICATETHESYMMETRYANDPOSSIBILITIESOFTHESITUATIONBUTINPRACTICEONESIDEDTHREADINGISMUCHMORECOMMONLETUSNOWCONSIDERANIMPORTANTPROPERTYOFBINARYTREESANDITSCONNECTIONTOTRAVERSALTWOBINARYTREESANDARESAIDTOSIMILARBINARYTREESBESIMILARIFTHEYHAVETHESAMESTRUCTUREFORMALLYTHISMEANSTHATATHEYAREBOTHEMPTYORBTHEYAREBOTHNONEMPTYANDTHEIRLEFTANDRIGHTSUBTREESARERESPECTIVELYSIMILARSIMILARITYMEANSINFORMALLYTHATTHEDIAGRAMSOFANDHAVETHESAMESHAPEANOTHERWAYTOPHRASESIMILARITYISTOSAYTHATTHEREISAONETOONECORRESPONDENCEBETWEENTHENODESOFANDTHATPRESERVESTHESTRUCTUREIFNODESANDINCORRESPONDRESPECTIVELYTOANDINTHENISINTHELEFTSUBTREEOFIFANDONLYIFISINTHELEFTSUBTREEOFANDTHESAMEISTRUEFORRIGHTSUBTREESTHEBINARYTREESANDARESAIDTOBEEQUIVALENTEQUIVALENTBINARYTREESIFTHEYARESIMILARANDIFCORRESPONDINGNODESCONTAINTHESAMEINFORMATIONFORMALLYLETINFODENOTETHEINFORMATIONCONTAINEDINANODETHETREESAREEQUIVALENTIFANDONLYIFATHEYAREBOTHEMPTYORBTHEYAREBOTHNONEMPTYANDANDTHEIRLEFTANDRIGHTSUBTREESARERESPECTIVELYEQUIVALENTASEXAMPLESOFTHESEDEFINITIONSCONSIDERTHEFOURBINARYTREESINWHICHTHEFIRSTTWOAREDISSIMILARTHESECONDTHIRDANDFOURTHARESIMILARANDINFACTTHESECONDANDFOURTHAREEQUIVALENTSOMECOMPUTERAPPLICATIONSINVOLVINGTREESTRUCTURESREQUIREANALGORITHMTODECIDEWHETHERTWOBINARYTREESARESIMILAROREQUIVALENTTHEFOLLOWINGTHEOREMISUSEFULINTHISREGARDABINSIMILARITYTHEOREMALETTHENODESOFBINARYTREESANDBERESPECTIVELYINPREORDERFORANYNODELETTHENANDARESIMILARIFANDONLYIFANDMOREOVERANDAREEQUIVALENTIFANDONLYIFINADDITIONWEHAVENOTICETHATANDARETHECOMPLEMENTSOFTHELTAGANDRTAGBITSINATHREADEDTREETHISTHEOREMCHARACTERIZESANYBINARYTREESTRUCTUREINTERMSOFTWOSEQUENCESOFSANDSITISCLEARTHATTHECONDITIONFOREQUIVALENCEOFBINARYTREESWILLFOLLOWIMMEDIATELYIFWEPROVETHECONDITIONFORSIMILARITYFURTHERMORETHECONDITIONSANDARECERTAINLYNECESSARYSINCECORRESPONDINGNODESOFSIMILARTREESMUSTHAVETHESAMEPOSITIONINPREORDERTHEREFOREITSUFFICESTOPROVETHATTHECONDITIONSANDARESUFFICIENTTOGUARANTEETHESIMILARITYOFANDTHEPROOFISBYINDUCTIONONUSINGTHEFOLLOWINGAUXILIARYRESULTPBINPOLISHLEMMAPLETTHENODESOFANONEMPTYBINARYTREEBEINPREORDERANDLETTHENTHERESULTISCLEARFORIFTHEBINARYTREECONSISTSOFITSROOTANDFURTHERNODESIFTHENEITHERTHELEFTSUBTREEORTHERIGHTSUBTREEISEMPTYSOTHECONDITIONISOBVIOUSLYTRUEBYINDUCTIONIFLETTHELEFTSUBTREEHAVENODESBYINDUCTIONWEHAVEANDTHECONDITIONISAGAINEVIDENTFOROTHERTHEOREMSANALOGOUSTOLEMMAPSEETHEDISCUSSIONOFPOLISHNOTATIONINCHAPTERTOCOMPLETETHEPROOFOFTHEOREMAWENOTETHATTHETHEOREMISCLEARLYTRUEWHENIFTHEDEFINITIONOFPREORDERIMPLIESTHATANDARETHERESPECTIVEROOTSOFTHEIRTREESANDTHEREAREINTEGERSANDTHESIZESOFTHELEFTSUBTREESSUCHTHATANDARETHELEFTSUBTREESOFANDANDARETHERIGHTSUBTREESOFANDTHEPROOFBYINDUCTIONWILLBECOMPLETEIFWECANSHOWTHEREARETHREECASESIFTHENIFTHENIFTHENBYLEMMAPWECANFINDTHELEASTSUCHTHATANDSEEASACONSEQUENCEOFTHEOREMAWECANTESTTWOTHREADEDBINARYTREESFOREQUIVALENCEORSIMILARITYBYSIMPLYTRAVERSINGTHEMINPREORDERANDEQUIVALENTBINARYTREESSIMILARBINARYTREESCHECKINGTHEINFOANDTAGFIELDSSOMEINTERESTINGEXTENSIONSOFTHEOREMAHAVEBEENOBTAINEDBYAJBLIKLEBULLDELACADPOLONAISEDESSCIENCESSERIEDESSCIENCESMATHASTRPHYSHECONSIDEREDANINFINITECLASSOFPOSSIBLETRAVERSALORDERSONLYSIXOFWHICHINCLUDINGPREORDERWERECALLEDADDRESSLESSBECAUSEOFTHEIRSIMPLEPROPERTIESWECONCLUDETHISSECTIONBYGIVINGATYPICALYETBASICALGORITHMFORBINARYTREESONETHATMAKESACOPYOFABINARYTREEINTODIFFERENTMEMORYLOCATIONSCOPYABINARYTREECBINCOPYALGORITHMCCOPYABINARYTREELETHEADBETHEADDRESSOFTHELISTHEADOFABINARYTREETHUSISTHELEFTSUBTREEOFHEADREACHEDVIALLINKHEADLETNODEUBEANODEWITHANEMPTYLEFTSUBTREETHISALGORITHMMAKESACOPYOFANDTHECOPYBECOMESTHELEFTSUBTREEOFNODEUINPARTICULARIFNODEUISTHELISTHEADOFANEMPTYBINARYTREETHISALGORITHMCHANGESTHEEMPTYTREEINTOACOPYOFCINITIALIZESETGOTOCCANYTHINGTORIGHTIFNODEPHASANONEMPTYRIGHTSUBTREESETANDATTACHNODERTOTHERIGHTOFNODEQATTHEBEGINNINGOFSTEPCTHERIGHTSUBTREEOFNODEQWASEMPTYCCOPYINFOSETHEREINFODENOTESALLPARTSOFTHENODETHATARETOBECOPIEDEXCEPTFORTHELINKSCANYTHINGTOLEFTIFNODEPHASANONEMPTYLEFTSUBTREESETANDATTACHNODERTOTHELEFTOFNODEQATTHEBEGINNINGOFSTEPCTHELEFTSUBTREEOFNODEQWASEMPTYCADVANCESETCTESTIFCOMPLETEIFOREQUIVALENTLYIFASSUMINGTHATNODEUHASANONEMPTYRIGHTSUBTREETHEALGORITHMTERMINATESOTHERWISEGOTOSTEPCTHISSIMPLEALGORITHMSHOWSATYPICALAPPLICATIONOFTREETRAVERSALCOPYABINARYTREETHEDESCRIPTIONHEREAPPLIESTOTHREADEDUNTHREADEDORPARTIALLYTHREADEDTREESSTEPCREQUIRESTHECALCULATIONOFPREORDERSUCCESSORSPANDQFORUNTHREADEDTREESTHISGENERALLYISDONEWITHANAUXILIARYSTACKAPROOFOFTHEVALIDITYOFALGORITHMCAPPEARSINEXERCISEAPROGRAMCORRESPONDINGTOTHISALGORITHMINTHECASEOFARIGHTTHREADEDBINARYTREEAPPEARSINEXERCISEMIXCOPYTREEFORTHREADEDTREESTHEATTACHINGINSTEPSCANDCISDONEUSINGALGORITHMITHEEXERCISESTHATFOLLOWINCLUDEQUITEAFEWTOPICSOFINTERESTRELATINGTOTHEMATERIALOFTHISSECTIONBINARYORDICHOTOMOUSSYSTEMSALTHOUGHREGULATEDBYAPRINCIPLEAREAMONGTHEMOSTARTIFICIALARRANGEMENTSTHATHAVEEVERBEENINVENTEDWILLIAMSWAINSONATREATISEONTHEGEOGRAPHYANDCLASSIFICATIONOFANIMALSEXERCISESINTHEBINARYTREELETINFOPDENOTETHELETTERSTOREDINNODEPWHATISINFOLLINKRLINKRLINKTETCTHEANSWERISLISTTHENODESOFTHEBINARYTREEPREORDERINBINARYTREESYMMETRICINBINARYTREEINORDERINBINARYTREEPOSTORDERINBINARYTREEINAPREORDERBSYMMETRICORDERCPOSTORDERPREORDERSYMMETRICORDERPOSTORDERISTHEFOLLOWINGSTATEMENTTRUEORFALSETHETERMINALNODESOFABINARYTREEOCCURINTHESAMERELATIVEPOSITIONINPREORDERINORDERANDPOSTORDERTHESTATEMENTISTRUENOTICEFOREXAMPLETHATNODESALWAYSAPPEARINTHISORDERINEXERCISETHERESULTISIMMEDIATELYPROVEDBYINDUCTIONONTHESIZEOFTHEBINARYTREETHETEXTDEFINESTHREEBASICORDERSFORTRAVERSINGABINARYTREEANOTHERALTERNATIVEWOULDBETOPROCEEDINTHREESTEPSASFOLLOWSAVISITTHEROOTBTRAVERSETHERIGHTSUBTREECTRAVERSETHELEFTSUBTREEUSINGTHESAMERULERECURSIVELYONALLNONEMPTYSUBTREESDOESTHISNEWORDERBEARANYSIMPLERELATIONTOTHETHREEORDERSALREADYDISCUSSEDITISTHEREVERSEOFPOSTORDERTHISISEASILYPROVEDBYINDUCTIONBINARYTREEORDERTHENODESOFABINARYTREEMAYBEIDENTIFIEDBYASEQUENCEOFZEROSDEWEYBINARYANDONESINANOTATIONANALOGOUSTODEWEYDECIMALNOTATIONFORTREESASFOLLOWSTHEROOTIFPRESENTISREPRESENTEDBYTHESEQUENCEROOTSIFPRESENTOFTHELEFTANDRIGHTSUBTREESOFTHENODEREPRESENTEDBYARERESPECTIVELYREPRESENTEDBYANDFOREXAMPLETHENODEINWOULDHAVETHEREPRESENTATIONSEEEXERCISEBINDEWEYSHOWTHATPREORDERINORDERANDPOSTORDERCANBEDESCRIBEDCONVENIENTLYINTERMSOFTHISNOTATIONINTHETREEOFEXERCISEFOREXAMPLEPREORDERISUSINGBINARYNOTATIONWHICHISINTHISCASEEQUIVALENTTOTHEDEWEYSYSTEMTHESTRINGSOFDIGITSHAVEBEENSORTEDLIKEWORDSINADICTIONARYINGENERALTHENODESWILLBELISTEDINPREORDERIFTHEYARESORTEDLEXICOGRAPHICALLYFROMLEFTTORIGHTWITHBLANKTHENODESWILLBELISTEDINPOSTORDERIFTHEYARESORTEDLEXICOGRAPHICALLYWITHBLANKFORINORDERUSEBLANKMOREOVERIFWEIMAGINETHEBLANKSATTHELEFTANDTREATTHEDEWEYLABELSASORDINARYBINARYNUMBERSWEGETLEVELORDERSEELEVELORDERPREORDERTOINORDERMSUPPOSETHATABINARYTREEHASNODESTHATAREINPREORDERANDININORDERSHOWTHATTHEPERMUTATIONCANBEOBTAINEDBYPASSINGSTACKPERMUTATIONSTHROUGHASTACKINTHESENSEOFEXERCISERAILROADINGCONVERSELYSHOWTHATANYPERMUTATIONOBTAINABLEWITHASTACKCORRESPONDSTOSOMEBINARYTREEINTHISWAYTHEFACTTHATISOBTAINABLEWITHASTACKISREADILYPROVEDBYINDUCTIONONORINFACTWEMAYOBSERVETHATALGORITHMTDOESPRECISELYWHATISREQUIREDINITSSTACKACTIONSTHECORRESPONDINGSEQUENCEOFSSANDXSASINEXERCISESANDXISTHESAMEASTHESEQUENCEOFSANDSASSUBSCRIPTSINDOUBLEORDERSEEEXERCISECONVERSELYIFISOBTAINABLEWITHASTACKANDIFTHENISAPERMUTATIONOFANDISAPERMUTATIONOFTHESEARETHEPERMUTATIONSCORRESPONDINGTOTHELEFTANDRIGHTSUBTREESANDBOTHAREOBTAINABLEWITHASTACKTHEPROOFNOWPROCEEDSBYINDUCTIONSHOWTHATIFWEAREGIVENTHEPREORDERANDTHEINORDEROFTHENODESOFABINARYTREETHEBINARYTREESTRUCTUREMAYBECONSTRUCTEDASSUMETHATTHENODESAREDISTINCTDOESTHESAMERESULTHOLDTRUEIFWEAREGIVENTHEPREORDERANDPOSTORDERINSTEADOFPREORDERANDINORDERORIFWEAREGIVENTHEINORDERANDPOSTORDERFROMTHEPREORDERTHEROOTISKNOWNTHENFROMTHEINORDERWEKNOWTHELEFTSUBTREEANDTHERIGHTSUBTREEANDINFACTWEKNOWTHEPREORDERANDINORDEROFTHENODESINTHELATTERSUBTREESHENCETHETREEISREADILYCONSTRUCTEDANDINDEEDITISQUITEAMUSINGTOCONSTRUCTASIMPLEALGORITHMTHATLINKSTHETREETOGETHERINTHENORMALFASHIONSTARTINGWITHTHENODESLINKEDTOGETHERINPREORDERINLLINKANDININORDERINRLINKSIMILARLYPOSTORDERANDINORDERTOGETHERCHARACTERIZETHESTRUCTUREBUTPREORDERANDPOSTORDERDONOTTHEREARETWOBINARYTREESHAVINGASPREORDERANDASPOSTORDERIFALLNONTERMINALNODESOFABINARYTREEHAVEBOTHBRANCHESNONEMPTYITSSTRUCTUREISCHARACTERIZEDBYPREORDERANDPOSTORDERFINDALLBINARYTREESWHOSENODESAPPEARINEXACTLYTHESAMESEQUENCEINBOTHAPREORDERANDINORDERBPREORDERANDPOSTORDERCINORDERANDPOSTORDERASINTHEPREVIOUSEXERCISEWEASSUMETHATTHENODESHAVEDISTINCTLABELSABINARYTREESWITHALLLLINKSNULLBBINARYTREESWITHZEROORONENODESCBINARYTREESWITHALLRLINKSNULLMWHENABINARYTREEHAVINGNODESISTRAVERSEDUSINGALGORITHMTSTATEHOWMANYTIMESEACHOFSTEPSTTTTANDTISPERFORMEDASAFUNCTIONOFTONCETTIMESTTIMESTTIMESTTIMESTHESECOUNTSCANBEDERIVEDBYINDUCTIONORBYKIRCHHOFFSLAWORBYEXAMININGPROGRAMTWHATISTHELARGESTNUMBEROFENTRIESTHATCANBEINTHESTACKATONCEDURINGTHEEXECUTIONOFALGORITHMTIFTHEBINARYTREEHASNODESTHEANSWERTOTHISQUESTIONISVERYIMPORTANTFORSTORAGEALLOCATIONIFTHESTACKISBEINGSTOREDCONSECUTIVELYABINARYTREEWITHALLRLINKSNULLWILLCAUSEALLNODEADDRESSESTOBEPUTINTHESTACKBEFOREANYAREREMOVEDAVETREEHEIGHTANALYZETHEAVERAGEVALUEOFTHELARGESTSTACKSIZEANALYSISOFALGORITHMSOCCURRINGDURINGTHEEXECUTIONOFALGORITHMTASAFUNCTIONOFGIVENTHATALLBINARYTREESWITHNODESARECONSIDEREDEQUALLYPROBABLELETBETHENUMBEROFBINARYTREESWITHNODESFORWHICHTHESTACKINALGORITHMTNEVERCONTAINSMORETHANITEMSIFWEFINDWHERECONTINUEDFRACTIONSHENCEWHEREITCANNOWBESHOWNTHATHENCEISMINUSTHETECHNIQUEOFEXERCISEDIVISORASYMPNOWYIELDSTHEASYMPTOTICSERIESNGDEBRUIJNDEKNUTHANDSORICEINGRAPHTHEORYANDCOMPUTINGEDBYRCREADNEWYORKACADEMICPRESSWHENTHEBINARYTREEREPRESENTSAFORESTASDESCRIBEDINSECTIONTHEQUANTITYANALYZEDHEREISTHEHEIGHTOFTHATFORESTTHEFURTHESTDISTANCEBETWEENANODEANDAROOTPLUSONEGENERALIZATIONSTOMANYOTHERVARIETIESOFTREESHAVEBEENOBTAINEDBYFLAJOLETANDODLYZKOJCOMPUTERANDSYSTEMSCITHEHEIGHTOFTREEORFORESTASYMPTOTICDISTRIBUTIONOFHEIGHTSBOTHNEARTHEMEANANDFARAWAYWASSUBSEQUENTLYANALYZEDBYFLAJOLETGAOODLYZKOANDRICHMONDCOMBINATORICSPROBABILITYANDCOMPUTINGDESIGNANALGORITHMANALOGOUSTOALGORITHMTTHATTRAVERSESABINARYTREEINPREORDERANDPROVETHATYOURALGORITHMISCORRECTTRAVERSEBINARYTREEINPREORDERTRAVERSEBINARYTREEINPOSTORDERVISITNODEPBETWEENSTEPSTANDTINSTEADOFINSTEPTFORTHEPROOFDEMONSTRATETHEVALIDITYOFTHESTATEMENTRECURSIONINDUCTIONSTARTINGATSTEPTWITHORIGINALVALUEMESSENTIALLYASINTHETEXTDESIGNANALGORITHMANALOGOUSTOALGORITHMTTHATTRAVERSESABINARYTREEINPOSTORDERSOLUTIONBYSARAUJOLETSTEPSTTHROUGHTBEUNCHANGEDEXCEPTTHATANEWVARIABLEQISINITIALIZEDTOINSTEPTQWILLPOINTTOTHELASTNODEVISITEDIFANYSTEPTBECOMESTWOSTEPSTTRIGHTBRANCHDONEIFORGOONTOTOTHERWISESETANDRETURNTOTTVISITPVISITNODEPSETANDRETURNTOTASIMILARPROOFAPPLIESSTEPSTANDTCANBESTREAMLINEDSOTHATNODESARENOTTAKENOFFTHESTACKANDIMMEDIATELYREINSERTEDCOUNTNULLLINKSSHOWTHATIFABINARYTREEWITHNODESISREPRESENTEDASINTHETOTALNUMBEROFLINKSINTHEREPRESENTATIONCANBEEXPRESSEDASASIMPLEFUNCTIONOFTHISQUANTITYDOESNOTDEPENDONTHESHAPEOFTHETREENULLLINKSINBINARYTREESBYINDUCTIONTHEREAREALWAYSEXACTLYLINKSCOUNTINGTWHENITISNULLTHEREARENONNULLLINKSCOUNTINGTSOTHEREMARKINTHETEXTABOUTTHEMAJORITYOFNULLLINKSISJUSTIFIEDINATHREADEDTREEREPRESENTATIONLIKEEACHNODEEXCEPTTHELISTHEADHASEXACTLYONELINKPOINTINGTOITFROMABOVENAMELYTHELINKFROMITSPARENTSOMEOFTHENODESALSOHAVELINKSPOINTINGTOTHEMFROMBELOWFOREXAMPLETHENODECONTAININGHASTWOPOINTERSCOMINGUPFROMBELOWWHILENODEHASJUSTONEISTHEREANYSIMPLECONNECTIONBETWEENTHENUMBEROFLINKSPOINTINGTOANODEANDSOMEOTHERBASICPROPERTYOFTHATNODEWENEEDTOKNOWHOWMANYLINKSPOINTTOAGIVENNODEWHENWEARECHANGINGTHETREESTRUCTURETHREADEDBINARYTREETHEREISATHREADLLINKORRLINKPOINTINGTOANODEIFANDONLYIFITHASANONEMPTYRIGHTORLEFTSUBTREERESPECTIVELYSEEFIGTHREADSTHEDIAGRAMSINFIGTHREADSHELPTOPROVIDEANINTUITIVECHARACTERIZATIONOFTHEPOSITIONOFNODEQINABINARYTREEINTERMSOFTHESTRUCTURENEARNODEQIFNODEQHASANONEMPTYRIGHTSUBTREECONSIDERINTHEUPPERDIAGRAMSNODEQISTHELEFTMOSTNODEOFTHATRIGHTSUBTREEIFNODEQHASANEMPTYRIGHTSUBTREECONSIDERINTHELOWERDIAGRAMSNODEQISLOCATEDBYPROCEEDINGUPWARDINTHETREEUNTILAFTERTHEFIRSTUPWARDSTEPTOTHERIGHTGIVEASIMILARINTUITIVERULEFORFINDINGTHEPOSITIONOFNODEQINABINARYTREEINTERMSOFTHESTRUCTURENEARNODEQIFQISLLINKQTHUSQISONESTEPDOWNANDTOTHELEFTOTHERWISEQISOBTAINEDBYGOINGUPWARDSINTHETREEIFNECESSARYREPEATEDLYUNTILTHEFIRSTTIMEITISPOSSIBLETOGODOWNTOTHERIGHTWITHOUTRETRACINGSTEPSTYPICALEXAMPLESARETHETRIPSFROMPTOPANDFROMQTOQINTHEFOLLOWINGTREEGIVEANALGORITHMANALOGOUSTOALGORITHMSFORDETERMININGPINATHREADEDBINARYTREEASSUMETHATTHETREEHASALISTHEADASINANDTRAVERSEBINARYTREEINPREORDERTHREADEDBINARYTREEIFSETANDTERMINATEOTHERWISESETTHENSETZEROORMORETIMESUNTILFINDINGFINALLYSETONCEMOREDOUBLEORDERMANYALGORITHMSDEALINGWITHTREESLIKETOVISITEACHNODETWICEINSTEADOFONCEUSINGACOMBINATIONOFPREORDERANDINORDERTHATWEMIGHTCALLDOUBLEORDERTRAVERSALOFABINARYTREEINDOUBLEORDERISDEFINEDASFOLLOWSIFTHEBINARYTREEISEMPTYDONOTHINGOTHERWISEAVISITTHEROOTFORTHEFIRSTTIMEBTRAVERSETHELEFTSUBTREEINDOUBLEORDERCVISITTHEROOTFORTHESECONDTIMEDTRAVERSETHERIGHTSUBTREEINDOUBLEORDERFOREXAMPLETRAVERSALOFINDOUBLEORDERGIVESTHESEQUENCEWHEREMEANSTHATISBEINGVISITEDFORTHEFIRSTTIMEIFPPOINTSTOANODEOFTHETREEANDIFORDEFINEIFTHENEXTSTEPINDOUBLEORDERAFTERVISITINGNODEPTHETHTIMEISTOVISITNODEQTHETHTIMEORIFISTHELASTSTEPINDOUBLEORDERWEWRITEWHEREHEADISTHEADDRESSOFTHELISTHEADWEALSODEFINEASTHEFIRSTSTEPINDOUBLEORDERDESIGNANALGORITHMANALOGOUSTOALGORITHMTTHATTRAVERSESABINARYTREEINDOUBLEORDERANDALSODESIGNANALGORITHMANALOGOUSTOALGORITHMSTHATCOMPUTESDISCUSSTHERELATIONBETWEENTHESEALGORITHMSANDEXERCISESANDMODIFYALGORITHMTBYINSERTINGASTEPTVISITNODEPTHEFIRSTTIMEINSTEPTWEAREVISITINGNODEPTHESECONDTIMEGIVENATHREADEDTREETHETRAVERSALISEXTREMELYSIMPLEINEACHCASEWEMOVEATMOSTONESTEPINTHETREEINPRACTICETHEREFOREDOUBLEORDERANDTHEVALUESOFANDAREEMBEDDEDINAPROGRAMANDNOTEXPLICITLYMENTIONEDSUPPRESSINGALLTHEFIRSTVISITSGIVESUSPRECISELYALGORITHMSTANDSSUPPRESSINGALLTHESECONDVISITSGIVESUSTHESOLUTIONSTOEXERCISESANDDESIGNANALGORITHMANALOGOUSTOALGORITHMSFORTHECALCULATIONOFINAARIGHTTHREADEDBINARYTREEBAFULLYTHREADEDBINARYTREEIFPOSSIBLETHEAVERAGERUNNINGTIMEOFYOURALGORITHMSHOULDBEATMOSTASMALLCONSTANTWHENPISARANDOMNODEOFTHETREETRAVERSEBINARYTREEINPOSTORDERTHEBASICIDEAISTOSTARTBYFINDINGTHEPARENTQOFPTHENIFWEHAVEOTHERWISEWECANFINDBYREPEATEDLYSETTINGZEROORMORETIMESUNTILSEEFOREXAMPLEPANDINTHETREESHOWNTHEREISNOEFFICIENTALGORITHMTOFINDTHEPARENTOFPINAGENERALRIGHTTHREADEDTREESINCEADEGENERATERIGHTTHREADEDTREEINWHICHALLLEFTLINKSARENULLISESSENTIALLYACIRCULARLISTINWHICHTHELINKSGOTHEWRONGWAYTHEREFOREWECANNOTTRAVERSEARIGHTTHREADEDTREEINPOSTORDERWITHTHESAMEEFFICIENCYASTHESTACKMETHODOFEXERCISEIFWEKEEPNOHISTORYOFHOWWEHAVEREACHEDTHECURRENTNODEPBUTIFTHETREEISTHREADEDINBOTHDIRECTIONSWECANFINDPSPARENTEFFICIENTLYPARENTINATHREADEDTREEFFSETANDFIFSETANDANDREPEATTHISSTEPOTHERWISEGOTOFIFFSETANDTERMINATEIFOTHERWISESETZEROORMORETIMESUNTILTHENSETANDTERMINATEFSETANDTERMINATEWITHIFOTHERWISESETZEROORMORETIMESUNTILTHENSETANDTERMINATETHEAVERAGERUNNINGTIMEOFALGORITHMFISWHENPISARANDOMNODEOFTHETREEFORIFWECOUNTONLYTHESTEPSWHENPISARIGHTCHILDORONLYTHESTEPSWHENPISALEFTCHILDEACHLINKISTRAVERSEDFOREXACTLYONENODEPMODIFYPROGRAMTSOTHATITKEEPSTHESTACKINALINKEDLISTNOTINCONSECUTIVEMEMORYLOCATIONSSTACKLINKEDREPLACELINESBYREPLACELINESBYTENTLDLINKLDAVAILLDINFOJZOVERFLOWLDXAVAILLDXLINKSTXLINKSTXAVAILSTAVAILSTINFOENTSTLINKIFTWOMORELINESOFCODEAREADDEDATLINETLDLLINKJZTTOTIFWITHAPPROPRIATECHANGESINLINESANDTHERUNNINGTIMEGOESDOWNFROMTOTHISSAMEDEVICEWOULDREDUCETHERUNNINGTIMEOFPROGRAMTTOWHICHISASLIGHTIMPROVEMENTIFWESETINSITUTRAVERSEDESIGNANALGORITHMTHATTRAVERSESANUNTHREADEDBINARYTREEININORDERWITHOUTUSINGANYAUXILIARYSTACKITISPERMISSIBLETOALTERTHELLINKANDRLINKFIELDSOFTHETREENODESINANYMANNERWHATSOEVERDURINGTHETRAVERSALSUBJECTONLYTOTHECONDITIONTHATTHEBINARYTREESHOULDHAVETHECONVENTIONALREPRESENTATIONILLUSTRATEDINBOTHBEFOREANDAFTERYOURALGORITHMHASTRAVERSEDTHETREENOOTHERBITSINTHETREENODESAREAVAILABLEFORTEMPORARYSTORAGETHEFOLLOWINGSOLUTIONBYJOSEPHMMORRISINFPROCLETTERSTRAVERSESALSOINPREORDERSEEEXERCISEUUINITIALIZESETANDUDONEIFTHEALGORITHMTERMINATESULOOKLEFTSETIFVISITNODEPINPREORDERANDGOTOUUSEARCHFORTHREADSETZEROORMORETIMESUNTILEITHERORUINSERTORREMOVETHREADIFSETANDGOTOUOTHERWISESETITHADBEENCHANGEDTEMPORARILYTOPBUTWEVENOWTRAVERSEDPSLEFTSUBTREEUINORDERVISITVISITNODEPININORDERUGOTORIGHTORUPSETANDRETURNTOUUPREORDERVISITVISITNODEPINPREORDERUGOTOLEFTSETANDRETURNTOSTEPUMORRISALSOSUGGESTEDASLIGHTLYMORECOMPLICATEDWAYTOTRAVERSEINPOSTORDERACOMPLETELYDIFFERENTSOLUTIONWASFOUNDBYJMROBSONINFPROCLETTERSLETSSAYTHATANODEISFULLIFITSLLINKANDRLINKARENONNULLEMPTYIFITSLLINKANDRLINKAREBOTHEMPTYROBSONFOUNDAWAYTOMAINTAINASTACKOFPOINTERSTOTHEFULLNODESWHOSERIGHTSUBTREESAREBEINGVISITEDUSINGTHELINKFIELDSINEMPTYNODESYETANOTHERWAYTOAVOIDANAUXILIARYSTACKWASDISCOVEREDINDEPENDENTLYBYGLINDSTROMANDBDWYERINFPROCLETTERSLINDSTROMTHEIRALGORITHMTRAVERSESINTRIPLEORDERITTRIPLEORDERVISITSEVERYNODEEXACTLYTHREETIMESONCEINEACHOFPREORDERINORDERANDPOSTORDERBUTITDOESNOTKNOWWHICHOFTHETHREEISCURRENTLYBEINGDONEWINITIALIZESETANDWHERESISASENTINELVALUEANYNUMBERTHATISKNOWNTOBEDIFFERENTFROMANYLINKINTHETREEEGWBYPASSNULLIFSETANDWDONEIFTERMINATETHEALGORITHMWEWILLHAVEATTERMINATIONWVISITVISITNODEPWROTATESETANDRETURNTOWCORRECTNESSFOLLOWSFROMTHEFACTTHATIFWESTARTATWWITHPPOINTINGTOTHEROOTOFABINARYTREETANDQPOINTINGTOXWHEREXISNOTALINKINTHATTREETHEALGORITHMWILLTRAVERSETHETREEINTRIPLEORDERANDREACHSTEPWWITHANDIFISTHERESULTINGSEQUENCEOFNODESINTRIPLEORDERWEHAVETHEREFOREASLINDSTROMOBSERVEDTHETHREELINDSTROMTRIPLEORDERSUBSEQUENCESEACHINCLUDEEVERYTREENODEJUSTONCESINCEISEITHERTHEPARENTORCHILDOFTHESESUBSEQUENCESVISITTHENODESINSUCHAWAYTHATEACHISATMOSTTHREELINKSAWAYFROMITSPREDECESSORSECTIONDESCRIBESAGENERALTRAVERSALSCHEMECALLEDPREPOSTORDERTHATHASTHISPROPERTYNOTONLYFORBINARYTREESBUTFORTREESINGENERALWRITEAPROGRAMFORTHEALGORITHMGIVENINEXERCISEANDCOMPAREITSEXECUTIONTIMETOPROGRAMSSANDTTHISPROGRAMUSESTHECONVENTIONSOFPROGRAMSTANDSWITHQINRIANDORRITHEOLDFASHIONEDCOMPUTERISNOTGOODATCOMPARINGINDEXREGISTERSFOREQUALITYSOVARIABLERISOMITTEDANDTHETESTISCHANGEDTOTHETOTALRUNNINGTIMEISWHEREISTHENUMBEROFNODESISTHENUMBEROFNULLRLINKSHENCEISTHENUMBEROFNONNULLLLINKSANDISTHENUMBEROFNODESONTHETREESRIGHTSPINETSPINEOFBINARYTREERLINKTRLINKRLINKTETCDESIGNALGORITHMSANALOGOUSTOALGORITHMIFORINSERTIONTOTHEINSERTIONINTHREADEDBINARYTREERIGHTTHREADEDBINARYTREERTAGRIGHTANDINSERTIONTOTHELEFTINARIGHTTHREADEDBINARYTREEASSUMETHATTHENODESHAVETHEFIELDSLLINKRLINKANDRTAGINSERTIONTOTHERIGHTINSERTIONTOTHELEFTASSUMINGSETINSERTIONTOTHELEFTBETWEENPANDSETANDTHENSETZEROORMORETIMESUNTILFINALLYSETAMOREEFFICIENTALGORITHMFORTHELASTCASECANBEUSEDIFWEKNOWANODEFSUCHTHATORASSUMINGTHELATTERFOREXAMPLEWECOULDSETTHISTAKESAFIXEDAMOUNTOFTIMEBUTITISGENERALLYNOTRECOMMENDEDBECAUSEITSWITCHESNODESAROUNDINMEMORYMISTHEOREMASTILLVALIDIFTHENODESOFANDPOSTORDERINBINARYTREEINORDERINBINARYTREESYMMETRICINBINARYTREEPREORDERINBINARYTREEAREGIVENINSYMMETRICORDERINSTEADOFPREORDERNOLINORDERBINTREESMLETBEASETOFBINARYTREESINWHICHTHEVALUEOFEACHINFOFIELDBELONGSTOAGIVENSETWHEREISLINEARLYORDEREDBYARELATIONSEEEXERCISELINORDGIVENANYTREESINLETUSNOWDEFINEIFANDONLYIFIISEMPTYORIIANDARENOTEMPTYANDORIIIANDARENOTEMPTYINFOROOTINFOROOTANDLEFTISNOTEQUIVALENTTOLEFTORIVANDARENOTEMPTYLEFTISEQUIVALENTTOLEFTANDHERELEFTANDRIGHTDENOTETHELEFTANDRIGHTSUBTREESOFPROVETHATAANDIMPLIESBISEQUIVALENTTOIFANDONLYIFANDCFORANYINWEHAVEEITHERORTHUSIFEQUIVALENTTREESINAREREGARDEDASEQUALTHERELATIONINDUCESLINEARORDERINGOFBINARYTREESALINEARORDERINGONTHISORDERINGHASMANYAPPLICATIONSFOREXAMPLEINTHESIMPLIFICATIONOFALGEBRAICEXPRESSIONSWHENHASONLYONEELEMENTSOTHATTHEINFOOFEACHNODEISTHESAMEWEHAVETHESPECIALCASETHATEQUIVALENCEISTHESAMEASSIMILARITYWEFIRSTPROVEBBYINDUCTIONONTHENUMBEROFNODESINANDSIMILARLYCNOWABREAKSINTOSEVERALCASESWRITEIFIHOLDSIFIIHOLDSETCTHENANDIMPLIESANDIMPLIESANDTHEREMAININGTWOCASESARETREATEDBYPROVINGABYINDUCTIONONTHENUMBEROFNODESINMCONSIDERTHEORDERINGDEFINEDINTHEPRECEDINGEXERCISEPROVEATHEOREMANALOGOUSTOTHEOREMAGIVINGANECESSARYANDSUFFICIENTCONDITIONTHATANDMAKINGUSEOFDOUBLEORDERASDEFINEDINEXERCISEIFTHEDOUBLEORDEROFISWHERETHESARENODESANDTHESAREORFORMTHETRACEOFTHETREEWHEREANDORACCORDINGASORNOWIFANDONLYIFTHETRACEOFASDEFINEDHERELEXICOGRAPHICALLYPRECEDESOREQUALSTHETRACEOFFORMALLYTHISMEANSTHATWEHAVEEITHERANDFORORELSETHEREISAFORWHICHFORANDEITHERORANDDESIGNANALGORITHMTHATTESTSTWOGIVENTREESANDTOSEEWHETHERORISEQUIVALENTTOINTERMSOFTHERELATIONDEFINEDINEXERCISEASSUMINGTHATBOTHBINARYTREESARERIGHTTHREADEDASSUMETHATEACHNODEHASTHEFIELDSLLINKRLINKRTAGINFOUSENOAUXILIARYSTACKRRINITIALIZESETTHESEARETHERESPECTIVELISTHEADSOFTHEGIVENRIGHTTHREADEDBINARYTREESGOTORRCHECKINFOIFTERMINATEIFTERMINATERGOTOLEFTIFGOTORIFTERMINATEIFTERMINATEOTHERWISESETANDGOTORRENDOFTREEIFOREQUIVALENTLYIFTERMINATEISEQUIVALENTTORGOTORIGHTIFSETANDGOTORIFTERMINATEIFTERMINATEOTHERWISESETANDGOTORTOPROVETHEVALIDITYOFTHISALGORITHMANDTHEREFORETOUNDERSTANDHOWITWORKSONEMAYSHOWBYINDUCTIONONTHESIZEOFTHETREETHATTHERECURSIONINDUCTIONFOLLOWINGSTATEMENTISVALIDSTARTINGATSTEPRWITHPANDPPOINTINGTOTHEROOTSOFTWONONEMPTYRIGHTTHREADEDBINARYTREESANDTHEALGORITHMWILLTERMINATEIFANDARENOTEQUIVALENTINDICATINGWHETHERORTHEALGORITHMWILLREACHSTEPRIFANDAREEQUIVALENTWITHPANDPTHENPOINTINGRESPECTIVELYTOTHESUCCESSORNODESOFANDINSYMMETRICORDERAFTERALGORITHMCHASBEENUSEDTOMAKEACOPYOFATREEISTHENEWBINARYTREEEQUIVALENTTOTHEORIGINALORSIMILARTOITEQUIVALENTANDSIMILARMPROVEASRIGOROUSLYASPOSSIBLETHATALGORITHMCISVALIDPROVEBYINDUCTIONONTHESIZEOFTHATTHEFOLLOWINGSTATEMENTISVALIDSTARTINGATSTEPCWITHPPOINTINGTOTHEROOTOFANONEMPTYBINARYTREEANDWITHQPOINTINGTOANODETHATHASEMPTYLEFTANDRIGHTSUBTREESTHEPROCEDUREWILLULTIMATELYARRIVEATSTEPCAFTERSETTINGANDATTACHINGCOPIESOFTHELEFTANDRIGHTSUBTREESOFNODEPTONODEQANDWITHPANDQPOINTINGRESPECTIVELYTOTHEPREORDERSUCCESSORNODESOFTHETREESANDNODEQDESIGNANALGORITHMTHATTHREADSANUNTHREADEDTREEFOREXAMPLETHREADANUNTHREADEDTREEITSHOULDTRANSFORMINTONOTEALWAYSUSENOTATIONSLIKEPANDPWHENPOSSIBLEINSTEADOFREPEATINGTHESTEPSFORTRAVERSALALGORITHMSLIKEALGORITHMTASSUMETHATTHEPOINTERTINISLLINKHEADINTHUSANDISTHEFIRSTNODEOFTHEBINARYTREEINSYMMETRICORDERLLINITIALIZESETLADVANCESETSEEBELOWLTHREADIFSETOTHERWISESETIFSETOTHERWISESETLDONEIFSETANDRETURNTOLSTEPLOFTHISALGORITHMIMPLIESTHEACTIVATIONOFANINORDERTRAVERSALCOROUTINELIKEALGORITHMTWITHTHEADDITIONALPROVISOTHATALGORITHMTVISITSHEADAFTERITHASFULLYTRAVERSEDTHETREETHISNOTATIONISACONVENIENTSIMPLIFICATIONINTHEDESCRIPTIONOFTREEALGORITHMSSINCEWENEEDNOTREPEATTHESTACKMECHANISMSOFALGORITHMTOVERANDOVERAGAINOFCOURSEALGORITHMSCANNOTBEUSEDDURINGSTEPLSINCETHETREEHASNTBEENTHREADEDYETBUTALGORITHMUINANSWERCANBEUSEDINSTEPLITPROVIDESUSWITHAVERYPRETTYMETHODTHATTHREADSATREEWITHOUTUSINGANYAUXILIARYSTACKDESIGNANALGORITHMTHATERASESARIGHTTHREADEDBINARYERASEARIGHTTHREADEDBINARYTREETREEYOURALGORITHMSHOULDRETURNALLOFTHETREENODESEXCEPTTHELISTHEADTOTHEAVAILLISTANDITSHOULDMAKETHELISTHEADSIGNIFYANEMPTYBINARYTREEASSUMETHATEACHNODEHASTHEFIELDSLLINKRLINKRTAGUSENOAUXILIARYSTACKXXSETXSETUSINGSAYALGORITHMSMODIFIEDFORARIGHTTHREADEDTREEXIFSETXIFSETANDGOBACKTOXXSETOTHERSOLUTIONSTHATDECREASETHELENGTHOFTHEINNERLOOPARECLEARLYPOSSIBLEALTHOUGHTHEORDEROFTHEBASICSTEPSISSOMEWHATCRITICALTHESTATEDPROCEDUREWORKSBECAUSEWENEVERRETURNANODETOAVAILABLESTORAGEUNTILAFTERALGORITHMSHASLOOKEDATBOTHITSLLINKANDITSRLINKASOBSERVEDINTHETEXTEACHOFTHESELINKSISUSEDPRECISELYONCEDURINGACOMPLETETREETRAVERSALSUPPOSETHATEACHNODEOFABINARYTREEHASFOURLINKFIELDSLLINKANDRLINKWHICHPOINTTOLEFTANDRIGHTSUBTREESORASINANUNTHREADEDTREESUCANDPREDWHICHPOINTTOTHESUCCESSORINSERTIONINTOQUADRUPLYLINKEDBINARYTREEQUADRUPLYLINKEDBINARYTREEANDPREDECESSOROFTHENODEINSYMMETRICORDERTHUSANDPREDPPSUCHATREECONTAINSMOREINFORMATIONTHANATHREADEDTREEDESIGNANALGORITHMLIKEALGORITHMIFORINSERTIONINTOSUCHATREETHEREISMORETHANONEWAYTOTHREADATREECONSIDERTHEFOLLOWINGREPRESENTATIONUSINGTHREEFIELDSLTAGLLINKRLINKLTAGLLINKINBINARYTREERLINKINBINARYTREEREPRESENTATIONOFBINARYTREEINEACHNODELTAGPDEFINEDTHESAMEASINATHREADEDBINARYTREELLINKPALWAYSEQUALTOPRLINKPDEFINEDTHESAMEASINANUNTHREADEDBINARYTREEDISCUSSINSERTIONALGORITHMSFORSUCHAREPRESENTATIONANDWRITEOUTTHECOPYINGALGORITHMALGORITHMCINDETAILFORTHISREPRESENTATIONCOPYABINARYTREEINSERTINGNODEQJUSTTOTHELEFTANDBELOWNODEPISQUITESIMPLESETINSERTIONTOTHERIGHTISCONSIDERABLYHARDERSINCEITESSENTIALLYREQUIRESFINDINGQWHICHISOFCOMPARABLEDIFFICULTYTOFINDINGQSEEEXERCISETHENODEMOVINGTECHNIQUEDISCUSSEDINEXERCISECOULDPERHAPSBEUSEDSOGENERALINSERTIONSAREMOREDIFFICULTWITHTHISTYPEOFTHREADINGBUTTHEINSERTIONSREQUIREDBYALGORITHMCARENOTASDIFFICULTASINSERTIONSAREINGENERALANDINFACTTHECOPYINGPROCESSISSLIGHTLYFASTERFORTHISKINDOFTHREADINGCCSETGOTOCTHEASSUMPTIONSANDPHILOSOPHYOFALGORITHMCINTHETEXTAREBEINGUSEDTHROUGHOUTCIFSETCSETCIFSETCSETCIFGOTOCTHEALGORITHMNOWSEEMSALMOSTTOOSIMPLETOBECORRECTALGORITHMCFORTHREADEDORRIGHTTHREADEDBINARYTREESTAKESSLIGHTLYLONGERDUETOTHEEXTRATIMETOCALCULATEPQINSTEPCITWOULDBEPOSSIBLETOTHREADRLINKSINTHEUSUALWAYORTOPUTPINRLINKPINCONJUNCTIONWITHTHISCOPYINGMETHODBYAPPROPRIATELYSETTINGTHEVALUESOFRLINKRANDRLINKTQINSTEPSCANDCLETPPOINTTOANODEINSOMEBINARYTREEANDLETHEADPOINTTOTHELISTHEADOFANEMPTYBINARYTREEGIVEANALGORITHMLISTHEADOFTHREADEDBINARYTREETHATIREMOVESNODEPANDALLOFITSSUBTREESFROMWHATEVERTREEITWASINANDTHENIIATTACHESNODEPANDITSSUBTREESTONODEHEADASSUMETHATALLTHEBINARYTREESINQUESTIONARERIGHTTHREADEDWITHFIELDSLLINKRTAGRLINKINEACHNODERTAGRIGHTTHREADEDBINARYTREEAASETANDTHENREPEATEDLYSETZEROORMORETIMESUNTILASETIFSETOTHERWISESETTHENREPEATEDLYSETZEROORMORETIMESUNTILTHENFINALLYSETTHISSTEPHASREMOVEDNODEPANDITSSUBTREESFROMTHEORIGINALTREEASETTHEKEYTOINVENTINGANDORUNDERSTANDINGTHISALGORITHMISTHECONSTRUCTIONOFGOODBEFOREANDAFTERDIAGRAMSTERNARYTRAVERSALDEFINEATERNARYTREEANDMOREGENERALLYAARYTARYTREETREEFORANYINAMANNERANALOGOUSTOOURDEFINITIONOFABINARYTREEANDEXPLORETHETOPICSDISCUSSEDINTHISSECTIONINCLUDINGTOPICSFOUNDINTHEEXERCISESABOVETHATCANBEGENERALIZEDTOARYTREESINAMEANINGFULWAYMEXERCISEWELLORDERSHOWSTHATLEXICOGRAPHICORDEREXTENDSAWELLORDERINGOFASETTOAWELLORDERINGOFTHETUPLESOFELEMENTSOFEXERCISEABOVESHOWSTHATALINEARORDERINGOFTHEINFORMATIONINTREENODESCANBEEXTENDEDTOALINEARORDERINGOFTREESUSINGASIMILARDEFINITIONIFTHERELATIONWELLORDERSISTHEEXTENDEDRELATIONOFEXERCISEAWELLORDERINGOFNOSEETHEANSWERTOEXERCISEWELLORDEREFERGTREESDFERGUSONIFTWOCOMPUTERWORDSARENECESSARYTOCONTAINTWOLINKFIELDSANDANINFOFIELDREPRESENTATIONREPRESENTATIONOFBINARYTREESREQUIRESWORDSOFMEMORYFORATREEWITHNODESDESIGNAREPRESENTATIONSCHEMEFORBINARYTREESTHATUSESLESSSPACEASSUMINGTHATONELINKANDANINFOFIELDWILLFITINASINGLECOMPUTERWORDIFINTHEREPRESENTATIONLETOTHERWISELETWHERENODEQCORRESPONDSTONODELLINKPANDNODEQTONODERLINKPTHECONDITIONLLINKPORISREPRESENTEDBYASENTINELINNODEQORNODEQRESPECTIVELYTHISREPRESENTATIONUSESBETWEENANDMEMORYPOSITIONSUNDERTHESTATEDASSUMPTIONSWOULDREQUIREWORDSOFMEMORYCOMPAREDTOINTHEPRESENTSCHEMEINSERTIONANDDELETIONOPERATIONSAREAPPROXIMATELYOFEQUALEFFICIENCYINEITHERREPRESENTATIONBUTTHISREPRESENTATIONISNOTQUITEASVERSATILEINCOMBINATIONWITHOTHERSTRUCTURESBINARYTREEREPRESENTATIONOFTREESREPRESENTATIONOFFORESTSTREESLINKEDPARENTCHILDNATURALCORRESPONDENCEWETURNNOWFROMBINARYTREESTOJUSTPLAINTREESLETUSRECALLTHEBASICDIFFERENCESBETWEENTREESANDBINARYTREESASWEHAVEDEFINEDTHEMATREEALWAYSHASAROOTNODESOITISNEVEREMPTYEACHNODEOFATREECANHAVECHILDRENABINARYTREECANBEEMPTYANDEACHOFITSNODESCANHAVEORCHILDRENWEDISTINGUISHBETWEENALEFTCHILDANDARIGHTCHILDRECALLALSOTHATAFORESTISANORDEREDSETOFZEROORMORETREESTHESUBTREESIMMEDIATELYBELOWANYNODEOFATREEFORMAFORESTTHEREISANATURALWAYTOREPRESENTANYFORESTASABINARYTREECONSIDERTHEFOLLOWINGFORESTOFTWOTREESTHECORRESPONDINGBINARYTREEISOBTAINEDBYLINKINGTOGETHERTHECHILDRENOFEACHFAMILYANDREMOVINGVERTICALLINKSEXCEPTFROMAPARENTTOAFIRSTCHILDTHENTILTTHEDIAGRAMCLOCKWISEANDTWEAKITSLIGHTLYOBTAININGABINARYTREECONVERSELYITISEASYTOSEETHATANYBINARYTREECORRESPONDSTOAUNIQUEFORESTOFTREESBYREVERSINGTHEPROCESSTHETRANSFORMATIONFROMTOISEXTREMELYIMPORTANTITISCALLEDTHENATURALCORRESPONDENCEBETWEENFORESTSANDBINARYTREESINPARTICULARITGIVESALEFTCHILDRIGHTSIBLINGLINKSRIGHTSIBLINGLEFTCHILDLINKSCORRESPONDENCEBETWEENTREESANDASPECIALCLASSOFBINARYTREESNAMELYTHEBINARYTREESTHATHAVEAROOTBUTNORIGHTSUBTREEWEMIGHTALSOCHANGEOURVIEWPOINTSLIGHTLYANDLETTHEROOTOFATREECORRESPONDTOTHELISTHEADOFABINARYTREETHUSOBTAININGAONETOONECORRESPONDENCEBETWEENTREESWITHNODESANDBINARYTREESWITHNODESLETBEAFORESTOFTREESTHEBINARYTREECORRESPONDINGTOCANBEDEFINEDRIGOROUSLYASFOLLOWSAIFISEMPTYBIFTHEROOTOFISROOTTHELEFTSUBTREEOFISWHEREARETHESUBTREESOFROOTANDTHERIGHTSUBTREEOFISTHESERULESSPECIFYTHETRANSFORMATIONFROMTOPRECISELYNATURALCORRESPONDENCERECURSIVEDEFINITIONITWILLOCCASIONALLYBECONVENIENTTODRAWOURBINARYTREEDIAGRAMASINWITHOUTTHEROTATIONTHETHREADEDBINARYTREECORRESPONDINGTHREADEDTREETOISCOMPAREWITHFIGTHREADSGIVINGTHELATTERACHANGEINORIENTATIONNOTICETHATRIGHTTHREADLINKSGOFROMTHERIGHTMOSTCHILDOFCHILDPARENTAFAMILYTOTHEPARENTLEFTTHREADLINKSDONOTHAVESUCHANATURALINTERPRETATIONDUETOTHELACKOFSYMMETRYBETWEENLEFTANDRIGHTTHREADEDTREETHEIDEASABOUTTRAVERSALEXPLOREDINTHEPREVIOUSSECTIONCANBERECASTINTRAVERSALOFTREEPREORDERINTREEPOSTORDERINTREETERMSOFFORESTSANDTHEREFORETREESTHEREISNOSIMPLEANALOGOFTHEINORDERSEQUENCESINCETHEREISNOOBVIOUSPLACETOINSERTAROOTAMONGITSDESCENDANTSBUTPREORDERANDPOSTORDERCARRYOVERINANOBVIOUSMANNERGIVENANYNONEMPTYFORESTTHETWOBASICWAYSTOTRAVERSEITMAYBEDEFINEDASFOLLOWSINORDERTOUNDERSTANDTHESIGNIFICANCEOFTHESETWOMETHODSOFTRAVERSALCONSIDERTHEFOLLOWINGNOTATIONFOREXPRESSINGTREESTRUCTUREBYNESTEDPARENTHESESTHISNOTATIONCORRESPONDSTOTHEFORESTWEREPRESENTATREEBYTHEINFORMATIONWRITTENINITSROOTFOLLOWEDBYAREPRESENTATIONOFITSSUBTREESWEREPRESENTANONEMPTYFORESTBYAPARENTHESIZEDLISTOFTHEREPRESENTATIONSOFITSTREESSEPARATEDBYCOMMASIFISTRAVERSEDINPREORDERWEVISITTHENODESINTHESEQUENCEABCKDEHFJGTHISISSIMPLYWITHTHEPARENTHESESANDCOMMASREMOVEDPREORDERISANATURALWAYTOLISTTHENODESOFATREEWELISTTHEROOTFIRSTTHENTHEDESCENDANTSIFATREESTRUCTUREISREPRESENTEDBYINDENTATIONASINFIGTREESTRUCTCTHEROWSAPPEARINPREORDERTHESECTIONNUMBERSOFTHISBOOKITSELFSEEFIGCHAPTREEAPPEARINPREORDERTHUSFOREXAMPLESECTIONISFOLLOWEDBYSECTIONTHENCOMESECTIONSETCITISINTERESTINGTONOTETHATPREORDERISATIMEHONOREDCONCEPTTHATMIGHTMEANINGFULLYBECALLEDDYNASTICORDERATTHEDEATHOFAKINGDUKEOREARLTHETITLEPASSESTOTHEFIRSTSONTHENTODESCENDANTSOFTHEFIRSTSONANDFINALLYIFTHESEALLDIEOUTITPASSESTOOTHERSONSOFTHEFAMILYINTHESAMEWAYENGLISHCUSTOMALSOINCLUDESDAUGHTERSINAFAMILYONTHESAMEBASISASSONSEXCEPTTHATTHEYCOMEAFTERALLTHESONSINTHEORYWECOULDTAKEALINEALCHARTOFALLTHEARISTOCRACYANDWRITEOUTTHENODESINPREORDERTHENIFWECONSIDERONLYTHEPEOPLEPRESENTLYLIVINGWEWOULDOBTAINTHEORDEROFSUCCESSIONTOTHETHRONEEXCEPTASMODIFIEDBYACTSOFABDICATIONPOSTORDERFORTHENODESINISTHISISANALOGOUSTOPREORDEREXCEPTTHATITCORRESPONDSTOTHESIMILARPARENTHESISNOTATIONINWHICHANODEAPPEARSJUSTAFTERITSDESCENDANTSINSTEADOFJUSTBEFORETHEDEFINITIONSOFPREORDERANDPOSTORDERMESHVERYNICELYWITHTHENATURALCORRESPONDENCEBETWEENTREESANDBINARYTREESSINCETHESUBTREESOFTHEFIRSTTREECORRESPONDTOTHELEFTBINARYSUBTREEANDTHEREMAININGTREESCORRESPONDTOTHERIGHTBINARYSUBTREEBYCOMPARINGTHESEDEFINITIONSWITHTHECORRESPONDINGDEFINITIONSONPAGETRAVERSALPAGEWEFINDTHATTRAVERSINGAFORESTINPREORDERISEXACTLYTHESAMEASTRAVERSINGTHECORRESPONDINGBINARYTREEINPREORDERTRAVERSINGAFORESTINPOSTORDERISEXACTLYTHESAMEASTRAVERSINGTHECORRESPONDINGBINARYTREEININORDERTHEALGORITHMSDEVELOPEDINSECTIONMAYTHEREFOREBEUSEDWITHOUTCHANGENOTETHATPOSTORDERFORTREESCORRESPONDSTOINORDERNOTPOSTORDERFORBINARYTREESTHISISFORTUNATESINCEWEHAVESEENTHATITISCOMPARATIVELYHARDTOTRAVERSEBINARYTREESINPOSTORDERBECAUSEOFTHISEQUIVALENCEWEUSETHENOTATIONFORTHEPOSTORDERSUCCESSOROFNODEPINATREEORFORESTWHILEITDENOTESTHEINORDERSUCCESSORINABINARYTREEBINARYTREESASANEXAMPLEOFTHEAPPLICATIONOFTHESEMETHODSTOAPRACTICALREPRESENTATIONOFALGEBRAICFORMULASDIAGRAMOFTREESPROBLEMWEWILLCONSIDERTHEMANIPULATIONOFALGEBRAICFORMULASSUCHFORMULASAREMOSTPROPERLYREGARDEDASREPRESENTATIONSOFTREESTRUCTURESNOTASONEORTWODIMENSIONALCONFIGURATIONSOFSYMBOLSNOREVENASBINARYTREESFOREXAMPLETHEFORMULAHASTHETREEREPRESENTATIONHERETHEILLUSTRATIONONTHELEFTISACONVENTIONALTREEDIAGRAMLIKEFIGALGTREEINWHICHTHEBINARYOPERATORSANDTHELATTERDENOTESEXPONENTIATIONHAVETWOSUBTREESCORRESPONDINGTOTHEIROPERANDSTHEUNARYOPERATORLNHASONESUBTREEVARIABLESANDCONSTANTSARETERMINALNODESTHEILLUSTRATIONONTHERIGHTSHOWSTHEEQUIVALENTRIGHTTHREADEDBINARYTREEINCLUDINGANADDITIONALNODETHATISALISTHEADFORTHETREETHELISTHEADHASTHELISTHEADINTHREADEDTREEFORMDESCRIBEDINTHREADHEADITISIMPORTANTTONOTETHATEVENTHOUGHTHELEFTHANDTREEINBEARSASUPERFICIALRESEMBLANCETOABINARYTREEWEARETREATINGITHEREASATREEANDREPRESENTINGITBYAQUITEDIFFERENTBINARYTREESHOWNATTHERIGHTINALTHOUGHWECOULDDEVELOPROUTINESFORALGEBRAICMANIPULATIONSBASEDDIRECTLYONBINARYTREESTRUCTURESTHESOCALLEDTHREEADDRESSCODEREPRESENTATIONSOFALGEBRAICFORMULASSEVERALSIMPLIFICATIONSOCCURINPRACTICEIFWEUSETHEGENERALTREEREPRESENTATIONOFALGEBRAICFORMULASASINBECAUSEPOSTORDERTRAVERSALISEASIERINATREETHENODESOFTHELEFTHANDTREEINAREALGEBRAICEXPRESSIONSLIKEANDAREVERYIMPORTANTANDTHEYAREKNOWNPREORDERINTREEASPOLISHNOTATIONSBECAUSEFORMWASINTRODUCEDBYTHEPOLISHLOGICIANJANLUKASIEWICZEXPRESSIONISTHEPREFIXNOTATIONFORFORMULAANDISTHECORRESPONDINGPOSTFIXNOTATIONWEWILLRETURNTOTHEINTERESTINGTOPICOFPOLISHNOTATIONINLATERCHAPTERSFORNOWLETUSBECONTENTWITHTHEKNOWLEDGETHATPOLISHNOTATIONISDIRECTLYRELATEDTOTHEBASICORDERSOFTREETRAVERSALWESHALLASSUMETHATTREESTRUCTURESFORTHEALGEBRAICFORMULASWITHWHICHWEWILLBEDEALINGHAVENODESOFTHEFOLLOWINGFORMINPROGRAMSHERERLINKANDLLINKHAVETHEUSUALSIGNIFICANCEANDRTAGRTAGRIGHTTHREADEDTREELLINKINTREERLINKINTREEISNEGATIVEFORTHREADLINKSCORRESPONDINGTOINTHESTATEMENTSOFALGORITHMSTHETYPEFIELDISUSEDTODISTINGUISHDIFFERENTKINDSOFNODESMEANSTHATTHENODEREPRESENTSACONSTANTANDINFOISTHEVALUEOFTHECONSTANTMEANSTHATTHENODEREPRESENTSAVARIABLEANDINFOISTHEFIVELETTERALPHABETICNAMEOFTHISVARIABLEMEANSTHATTHENODEREPRESENTSANOPERATORINFOISTHEALPHABETICNAMEOFTHEOPERATORANDTHEVALUEISUSEDTODISTINGUISHTHEDIFFERENTOPERATORSETCWEWILLNOTCONCERNOURSELVESHEREWITHHOWTHETREESTRUCTUREHASBEENSETUPINSIDETHECOMPUTERMEMORYINTHEFIRSTPLACESINCETHISTOPICISANALYZEDINGREATDETAILINCHAPTERLETUSMERELYASSUMETHATTHETREEALREADYAPPEARSINOURCOMPUTERMEMORYDEFERRINGQUESTIONSOFINPUTANDOUTPUTUNTILLATERWESHALLNOWDISCUSSTHECLASSICALEXAMPLEOFALGEBRAICMANIPULATIONFINDINGTHEDERIVATIVEOFAFORMULAWITHRESPECTTOTHEVARIABLEPROGRAMSFORALGEBRAICDIFFERENTIATIONWEREAMONGTHEFIRSTDIFFERENTIATIONSYMBOLMANIPULATIONROUTINESEVERWRITTENFORCOMPUTERSTHEYWEREUSEDASEARLYASTHEPROCESSOFDIFFERENTIATIONILLUSTRATESMANYOFTHETECHNIQUESOFALGEBRAICMANIPULATIONANDITISOFSIGNIFICANTPRACTICALVALUEINSCIENTIFICAPPLICATIONSREADERSWHOARENOTFAMILIARWITHMATHEMATICALCALCULUSMAYCONSIDERTHISPROBLEMASANABSTRACTEXERCISEINFORMULAMANIPULATIONDEFINEDBYTHEFOLLOWINGRULESTHESERULESALLOWUSTOEVALUATETHEDERIVATIVEFORANYFORMULACOMPOSEDOFTHEOPERATORSLISTEDTHESIGNINRULEISAUNARYOPERATORWHICHISDIFFERENTFROMTHEBINARYINWEWILLUSENEGTOSTANDFORUNARYNEGATIONINTHETREENODESBELOWUNFORTUNATELYRULESDONTTELLTHEWHOLESTORYIFWEAPPLYTHEMBLINDLYTOARATHERSIMPLEFORMULALIKEWEGETWHICHISCORRECTBUTTOTALLYUNSATISFACTORYTOAVOIDSOMANYREDUNDANTOPERATIONSINTHEANSWERWEMUSTRECOGNIZETHESPECIALCASESOFADDINGORMULTIPLYINGBYZEROMULTIPLYINGBYONEORRAISINGTOTHEFIRSTPOWERTHESESIMPLIFICATIONSREDUCETOWHICHISMOREACCEPTABLEBUTSTILLNOTIDEALTHECONCEPTOFAREALLYSATISFACTORYANSWERISNOTWELLDEFINEDBECAUSEDIFFERENTMATHEMATICIANSWILLPREFERFORMULASTOBEEXPRESSEDINDIFFERENTWAYSHOWEVERITISCLEARTHATISNOTASSIMPLEASITCOULDBEINORDERTOMAKESUBSTANTIALPROGRESSOVERFORMULAITISNECESSARYTODEVELOPALGEBRAICSIMPLIFICATIONROUTINESSEEEXERCISEWHICHWOULDREDUCETOFOREXAMPLEWEWILLCONTENTOURSELVESHEREWITHROUTINESTHATCANPRODUCENOTOURMAININTERESTINTHISALGORITHMISASUSUALINTHEDETAILSOFHOWTHEPROCESSISCARRIEDOUTINSIDEACOMPUTERMANYHIGHERLEVELLANGUAGESANDSPECIALROUTINESAREAVAILABLEATMOSTCOMPUTERINSTALLATIONSWITHBUILTINFACILITIESTOSIMPLIFYALGEBRAICMANIPULATIONSLIKETHESEBUTTHEPURPOSEOFTHEPRESENTEXAMPLEISTOGAINMOREEXPERIENCEINFUNDAMENTALTREEOPERATIONSTHEIDEABEHINDTHEFOLLOWINGALGORITHMISTOTRAVERSETHETREEINPOSTORDERFORMINGTHEDERIVATIVEOFEACHNODEASWEGOUNTILEVENTUALLYTHEENTIREDERIVATIVEHASBEENCALCULATEDUSINGPOSTORDERMEANSTHATWEWILLARRIVEATANOPERATORNODELIKEAFTERITSOPERANDSHAVEBEENDIFFERENTIATEDRULESTHROUGHIMPLYTHATEVERYSUBFORMULAOFTHEORIGINALFORMULAWILLHAVETOBEDIFFERENTIATEDSOONERORLATERSOWEMIGHTASWELLDOTHEDIFFERENTIATIONSINPOSTORDERBYUSINGARIGHTTHREADEDTREEWEAVOIDTHENEEDFORASTACKDURINGTHEOPERATIONOFTHEALGORITHMONTHEOTHERHANDATHREADEDTREEREPRESENTATIONHASTHEDISADVANTAGETHATWEWILLNEEDTOMAKECOPIESOFSUBTREESFOREXAMPLEINTHERULEFORWEMIGHTNEEDTOCOPYANDTHREETIMESEACHIFWEHADCHOSENTOUSEALISTREPRESENTATIONASINSECTIONINSTEADOFATREEWECOULDHAVEAVOIDEDSUCHCOPYINGDDIFFERENTIATIONALGORITHMDDIFFERENTIATIONIFYISTHEADDRESSOFALISTHEADTHATPOINTSTOAFORMULAREPRESENTEDASDESCRIBEDABOVEANDIFDYISTHEADDRESSOFTHELISTHEADFORANEMPTYTREETHISALGORITHMMAKESNODEDYPOINTTOATREEREPRESENTINGTHEANALYTICDERIVATIVEOFYWITHRESPECTTOTHEVARIABLEXDINITIALIZESETNAMELYTHEFIRSTNODEOFTHETREEINPOSTORDERWHICHISTHEFIRSTNODEOFTHECORRESPONDINGBINARYTREEININORDERDDIFFERENTIATESETANDIFALSOSETTHENPERFORMTHEROUTINEDIFFTYPEPDESCRIBEDBELOWTHEROUTINESDIFFDIFFETCWILLFORMTHEDERIVATIVEOFTHETREEWITHROOTPANDWILLSETPOINTERVARIABLEQTOTHEADDRESSOFTHEROOTOFTHEDERIVATIVETHEVARIABLESPANDQARESETUPFIRSTINORDERTOSIMPLIFYTHESPECIFICATIONOFTHEDIFFROUTINESDRESTORELINKIFTYPEPDENOTESABINARYOPERATORSETSEETHENEXTSTEPFORANEXPLANATIONDADVANCETOPSETNOWIFTHATISIFNODEPHASASIBLINGTOTHERIGHTSETTHISISTHETRICKYPARTOFTHEALGORITHMWETEMPORARILYDESTROYTHESTRUCTUREOFTREEYSOTHATALINKTOTHEDERIVATIVEOFPISSAVEDFORFUTUREUSETHEMISSINGLINKWILLBERESTOREDLATERINSTEPDSEEEXERCISEFORFURTHERDISCUSSIONOFTHISTRICKDDONEIFRETURNTOSTEPDOTHERWISESETANDTHEPROCEDUREDESCRIBEDINALGORITHMDISJUSTTHEBACKGROUNDROUTINEFORTHEDIFFERENTIATIONOPERATIONSTHATAREPERFORMEDBYTHEPROCESSINGROUTINESDIFFDIFFCALLEDINSTEPDINMANYWAYSPOSTORDERINTREEINTERPRETERALGORITHMDISLIKETHECONTROLROUTINEFORANINTERPRETIVESYSTEMORMACHINESIMULATORASDISCUSSEDINSECTIONBUTITTRAVERSESATREEINSTEADOFASIMPLESEQUENCEOFINSTRUCTIONSTOCOMPLETEALGORITHMDWEMUSTDEFINETHEROUTINESTHATDOTHEACTUALDIFFERENTIATIONINTHEFOLLOWINGDISCUSSIONTHESTATEMENTPPOINTSTOATREEMEANSTHATNODEPISTHEROOTOFATREESTOREDASARIGHTTHREADEDBINARYTREEALTHOUGHBOTHRLINKPANDRTAGPWILLBEMEANINGLESSSOFARASTHISTREEISCONCERNEDWEWILLMAKEUSEOFATREECONSTRUCTIONFUNCTIONTHATMAKESNEWTREESCONSTRUCTIONOFTREESBYJOININGSMALLERONESTOGETHERLETDENOTESOMEKINDOFNODEEITHERACONSTANTVARIABLEOROPERATORANDLETUANDVDENOTEPOINTERSTOTREESTHENTREEUVMAKESANEWTREEWITHINITSROOTNODEANDWITHUANDVTHESUBTREESOFTHEROOTTREEUSIMILARLYMAKESANEWTREEWITHONLYONESUBTREETREEMAKESANEWTREEWITHASATERMINALROOTNODEFURTHERMORETYPEWISSETAPPROPRIATELYDEPENDINGONINALLCASESTHEVALUEOFTREEISWTHATISAPOINTERTOTHETREEJUSTCONSTRUCTEDTHEREADERSHOULDSTUDYTHESETHREEDEFINITIONSCAREFULLYSINCETHEYILLUSTRATETHEBINARYTREEREPRESENTATIONOFTREESANOTHERFUNCTIONCOPYUMAKESACOPYOFTHETREEPOINTEDTOBYUANDHASASITSVALUEAPOINTERTOTHETREETHEREBYCREATEDTHEBASICFUNCTIONSTREEANDCOPYMAKEITEASYTOBUILDUPATREEFORTHEDERIVATIVEOFAFORMULASTEPBYSTEPCONSTRUCTIONOFTREESNULLARYOPERATORSCONSTANTSANDVARIABLESFORTHESEOPERATIONSNODEPISATERMINALNODEANDTHEVALUESOFPPQANDQBEFORETHEOPERATIONAREIRRELEVANTDIFFNODEPISACONSTANTSETDIFFNODEPISAVARIABLEIFXSETOTHERWISESETUNARYOPERATORSLOGARITHMANDNEGATIONFORTHESEOPERATIONSNODEPHASONECHILDPOINTEDTOBYPANDQPOINTSTOTHEVALUESOFPANDQBEFORETHEOPERATIONAREIRRELEVANTNODEPISLNIFSETNODEPISNEGIFSETBINARYOPERATORSADDITIONSUBTRACTIONMULTIPLICATIONDIVISIONEXPONENTIATIONFORTHESEOPERATIONSNODEPHASTWOCHILDRENANDPOINTEDTORESPECTIVELYBYPANDPQANDQPOINTRESPECTIVELYTOOPERATIONIFSETOTHERWISEIFSETANDOTHERWISESETOPERATIONIFSETANDOTHERWISEIFSETANDSETOTHERWISESETOPERATIONIFSETTHENIFSETTHENGOTODIFFHEREMULTUVISANEWFUNCTIONTHATCONSTRUCTSATREEFORBUTALSOMAKESATESTTOSEEIFUORVISEQUALTOIFANDSETANDIFANDSETANDOTHERWISESETOPERATIONIFSETTHENIFSETTHENGOTODIFFOPERATIONSEEEXERCISEWECONCLUDETHISSECTIONBYSHOWINGHOWALLOFTHEOPERATIONSABOVEAREREADILYTRANSFORMEDINTOACOMPUTERPROGRAMSTARTINGFROMSCRATCHWITHONLYMACHINELANGUAGEASABASISTHENEXTPARTOFTHEPROGRAMCONTAINSTHEBASICSUBROUTINESTREEANDCOPYTHEFORMERHASTHREEENTRANCESTREETREEANDTREEACCORDINGTOTHENUMBEROFSUBTREESOFTHETREEBEINGCONSTRUCTEDREGARDLESSOFWHICHENTRANCETOTHESUBROUTINEISUSEDRAWILLCONTAINTHEADDRESSOFASPECIALCONSTANTINDICATINGWHATTYPEOFNODEFORMSTHEROOTOFTHETREEBEINGCONSTRUCTEDTHESESPECIALCONSTANTSAPPEARINLINESSUBROUTINESCONSTRUCTIONOFTREESTHEREMAININGPORTIONOFTHEPROGRAMCORRESPONDSTOTHEDIFFERENTIATIONROUTINESDIFFDIFFTHESEROUTINESAREWRITTENTORETURNCONTROLTOSTEPDAFTERPROCESSINGABINARYOPERATOROTHERWISETHEYRETURNTOSTEPDTHEOTHERTWOROUTINESDIVANDPWRARESIMILARANDTHEYHAVEBEENLEFTASEXERCISESSEEEXERCISESANDEXERCISESTHETEXTGIVESAFORMALDEFINITIONOFTHEBINARYTREECORRESPONDINGTOAFORESTGIVEAFORMALDEFINITIONTHATREVERSESTHEPROCESSINOTHERWORDSDEFINETHEFORESTCORRESPONDINGTOABINARYTREERECURSIVEDEFINITIONIFISEMPTYISANEMPTYFORESTOTHERWISECONSISTSOFATREEPLUSTHEFORESTWHEREANDWEDEFINEDDEWEYDECIMALNOTATIONFORFORESTSINSECTIONANDDEWEYBINARYFORBINARYTREESINEXERCISEBINARYTREEORDERTHUSTHENODEINISREPRESENTEDBYANDINTHEEQUIVALENTBINARYTREEITISREPRESENTEDBYIFPOSSIBLEGIVEARULETHATDIRECTLYEXPRESSESTHENATURALCORRESPONDENCEBETWEENTREESANDBINARYTREESASACORRESPONDENCEBETWEENTHEDEWEYDECIMALNOTATIONSTHENUMBEROFZEROSINTHEBINARYNOTATIONISTHENUMBEROFDECIMALPOINTSINTHEDECIMALNOTATIONTHEEXACTFORMULAFORTHECORRESPONDENCEISWHEREDENOTESONESINAROWWHATISTHERELATIONBETWEENDEWEYDECIMALNOTATIONFORTHENODESOFAFORESTANDTHEPREORDERANDPOSTORDEROFTHOSENODESPREORDEROFTREEPOSTORDEROFTREESORTTHEDEWEYDECIMALNOTATIONSFORTHENODESLEXICOGRAPHICALLYFROMLEFTTORIGHTASINADICTIONARYPLACINGASHORTERSEQUENCEINFRONTOFITSEXTENSIONSFORPREORDERANDBEHINDITSEXTENSIONSFORPOSTORDERTHUSIFWEWERESORTINGWORDSINSTEADOFSEQUENCESOFNUMBERSWEWOULDPLACETHEWORDSCATCATARACTINTHEUSUALDICTIONARYORDERTOGETPREORDERWEWOULDREVERSETHEORDEROFINITIALSUBWORDSCATARACTCATTOGETPOSTORDERTHESERULESAREREADILYPROVEDBYINDUCTIONONTHESIZEOFTHETREEISTHEFOLLOWINGSTATEMENTTRUEORFALSETHETERMINALNODESOFATREEOCCURINTHESAMERELATIVEPOSITIONINPREORDERANDPOSTORDERTRUEBYINDUCTIONONTHENUMBEROFNODESDUALBINREPANOTHERCORRESPONDENCEBETWEENFORESTSANDBINARYTREESCOULDBEDEFINEDBYLETTINGRLINKPPOINTTOTHERIGHTMOSTCHILDOFNODEPANDLLINKPTOTHENEARESTSIBLINGONTHELEFTLETBEAFORESTTHATRIGHTCHILDLEFTSIBLINGLINKSLEFTSIBLINGRIGHTCHILDLINKSCORRESPONDSINTHISWAYTOABINARYTREEWHATORDERONTHENODESOFCORRESPONDSTOAPREORDERBPOSTORDERONAINORDERBPOSTORDERITISINTERESTINGTOFORMULATERIGOROUSINDUCTIONPROOFSOFTHEEQUIVALENCEOFTHESETRAVERSALALGORITHMSLETBEANONEMPTYBINARYTREEINWHICHEACHNODEHASORCHILDRENIFWEREGARDASANORDINARYTREEITCORRESPONDSVIATHENATURALCORRESPONDENCETOANOTHERBINARYTREEISTHEREANYSIMPLERELATIONBETWEENPREORDERINORDERANDPOSTORDEROFTHENODESOFASDEFINEDFORBINARYTREESANDTHESAMETHREEORDERSFORTHENODESOFPREORDEROFBINARYTREEINORDEROFBINARYTREEPOSTORDEROFBINARYTREEWEHAVEPREORDERPREORDERANDPOSTORDERINORDEREVENIFHASNODESWITHONLYONECHILDTHEREMAININGTWOORDERSARENOTINANYSIMPLERELATIONFOREXAMPLETHEROOTOFCOMESATTHEENDINONECASEANDABOUTINTHEMIDDLEINTHEOTHERMAFORESTMAYBEREGARDEDASAPARTIALORDERINGIFWESAYTHATEACHNODEPRECEDESITSDESCENDANTSINTHETREEARETHENODESTOPOLOGICALLYTOPOLOGICALSORTINGSORTEDASDEFINEDINSECTIONWHENTHEYARELISTEDINAPREORDERBPOSTORDERCREVERSEPREORDERDREVERSEPOSTORDERAYESBNOCNODYESNOTETHATREVERSEPREORDEROFAFORESTEQUALSPOSTORDEROFTHELEFTRIGHTREVERSEDFORESTINTHESENSEOFMIRRORREFLECTIONMEXERCISELINORDERBINTREESSHOWSHOWANORDERINGBETWEENTHEINFORMATIONSTOREDINTHEINDIVIDUALNODESOFABINARYTREEMAYBEEXTENDEDTOALINEARLINEARORDERINGOFTREESORDERINGOFALLBINARYTREESTHESAMECONSTRUCTIONLEADSTOANORDERINGOFALLTREESUNDERTHENATURALCORRESPONDENCEREFORMULATETHEDEFINITIONOFTHATEXERCISEINTERMSOFTREESMEANSTHATEITHERORTHESEINFOSAREEQUALANDTHEFOLLOWINGCONDITIONHOLDSSUPPOSETHESUBTREESOFROOTAREANDTHESUBTREESOFROOTAREANDLETBEASLARGEASPOSSIBLESUCHTHATISEQUIVALENTTOFORTHENEITHERORANDMSHOWTHATTHETOTALNUMBEROFNONTERMINALNODESINAFORESTHASASIMPLERELATIONTOTHETOTALNUMBEROFRIGHTLINKSEQUALTOINTHECORRESPONDINGUNTHREADEDBINARYTREETHENUMBEROFNONTERMINALNODESISONELESSTHANTHENUMBEROFRIGHTLINKSTHATAREINANONEMPTYFORESTBECAUSETHENULLRIGHTLINKSCORRESPONDTOTHERIGHTMOSTCHILDOFEACHNONTERMINALNODEANDALSOTOTHEROOTOFTHERIGHTMOSTTREEINTHEFORESTTHISFACTGIVESANOTHERPROOFOFEXERCISECOUNTNULLLINKSSINCETHENUMBEROFNULLLEFTLINKSISOBVIOUSLYEQUALTOTHENUMBEROFTERMINALNODESFORESTSIMILARITYMLETBEAFORESTOFTREESWHOSENODESINPREORDERAREANDLETBEAFORESTWHOSENODESINPREORDERARELETDENOTETHEDEGREETHENUMBEROFCHILDRENOFNODEINTERMSOFTHESEIDEASFORMULATEANDPROVEATHEOREMANALOGOUSTOTHEOREMBINSIMILARITYSIMILARFORESTSEQUIVALENTFORESTSTHEFORESTSARESIMILARIFANDONLYIFANDFORTHEYAREEQUIVALENTIFANDONLYIFINADDITIONTHEPROOFISSIMILARTOTHEPREVIOUSPROOFBYGENERALIZINGLEMMABINPOLISHLETDRAWTREESANALOGOUSTOTHOSESHOWNINCORRESPONDINGTOTHEFORMULADIAGRAMSOFTREESMGIVESPECIFICATIONSFORTHEROUTINEDIFFTHEOPERATIONWHICHWASOMITTEDFROMTHEALGORITHMINTHETEXTIFSETTHENIFTYPEPANDSETINFOPIFSETTHENSETIFSETFINALLYGOTODIFFMIXCOPYTREEWRITEAPROGRAMFORTHECOPYSUBROUTINEWHICHFITSINTHEPROGRAMOFTHETEXTBETWEENLINESHINTADAPTALGORITHMBINCOPYTOTHECASEOFRIGHTTHREADEDBINARYTREESWITHSUITABLEINITIALCONDITIONSCOPYABINARYTREETHEFOLLOWINGPROGRAMIMPLEMENTSALGORITHMBINCOPYWITHANDWITHAPPROPRIATECHANGESTOTHEINITIALIZATIONANDTERMINATIONCONDITIONSMHOWLONGDOESITTAKETHEPROGRAMOFEXERCISETOCOPYATREEWITHNODESLETBETHENUMBEROFNONTERMINALOPERATORNODESCOPIEDTHENUMBEROFEXECUTIONSOFTHEVARIOUSLINESINTHEPREVIOUSPROGRAMISASFOLLOWSTHETOTALTIMEISWEUSEABOUTOFTHETIMETOGETAVAILABLENODESTOTRAVERSEANDTOCOPYTHEINFOANDLINKINFORMATIONWRITEAPROGRAMFORTHEDIVROUTINECORRESPONDINGTODIFFASSPECIFIEDINTHETEXTTHISROUTINESHOULDBEADDEDTOTHEPROGRAMINTHETEXTAFTERLINECOMMENTSARELEFTTOTHEREADERWRITEAPROGRAMFORTHEPWRROUTINECORRESPONDINGTODIFFASSPECIFIEDINEXERCISETHISROUTINESHOULDBEADDEDTOTHEPROGRAMINTHETEXTAFTERTHESOLUTIONTOEXERCISEDIFFERENTIATIONCOMMENTSARELEFTTOTHEREADERALGSIMPLIFMWRITEAPROGRAMTODOALGEBRAICSIMPLIFICATIONCAPABLEOFREDUCINGFOREXAMPLEORTOHINTSINCLUDEANEWFIELDWITHEACHNODEREPRESENTINGITSCOEFFICIENTFORSUMMANDSORITSEXPONENTFORFACTORSINAPRODUCTAPPLYALGEBRAICIDENTITIESLIKEREPLACINGBYREMOVETHEOPERATIONSANDNEGWHENPOSSIBLEBYUSINGEQUIVALENTADDITIONORMULTIPLICATIONOPERATIONSMAKEANDINTOARYINSTEADOFBINARYOPERATORSCOLLECTLIKETERMSBYSORTINGTHEIROPERANDSINTREEORDEREXERCISESOMESUMSANDPRODUCTSWILLNOWREDUCETOZEROORUNITYPRESENTINGPERHAPSFURTHERSIMPLIFICATIONSOTHERADJUSTMENTSLIKEREPLACINGASUMOFLOGARITHMSBYTHELOGARITHMOFAPRODUCTALSOSUGGESTTHEMSELVESREFERENCESTOEARLYWORKONSUCHPROBLEMSCANBEFOUNDINASURVEYARTICLEBYJSAMMETCACMANORIENTEDTREESPECIFIEDBYLINKSFORIMPLICITLYDEFINESANORDEREDTREEIFTHENODESINEACHFAMILYPARENTLINKSORIENTEDTREECONVERTEDTOORDEREDTREEAREORDEREDBYTHEIRLOCATIONDESIGNANEFFICIENTALGORITHMTHATCONSTRUCTSADOUBLYLINKEDCIRCULARLISTCONTAININGTHENODESOFTHISORDEREDTREEINPREORDERFOREXAMPLEGIVENYOURALGORITHMSHOULDPRODUCEANDITSHOULDALSOREPORTTHATTHEROOTNODEISFIRSTSETJJFORALLSOTHATEACHNODEISINACIRCULARLISTOFLENGTHTHENFORINTHISORDERIFJSETOTHERWISEINSERTTHECIRCULARLISTSTARTINGWITHINTOTHECIRCULARLISTSTARTINGWITHJASFOLLOWSJKJJKLITHISWORKSBECAUSEAEACHNONROOTNODEISALWAYSPRECEDEDBYITSPARENTORBYADESCENDANTOFITSPARENTBNODESOFEACHFAMILYAPPEARINTHEIRPARENTSLISTINORDEROFLOCATIONCPREORDERISTHEUNIQUEORDERSATISFYINGAANDBMAFREELATTICEISAMATHEMATICALSYSTEMWHICHFORTHEPURPOSESOFTHISEXERCISECANBESIMPLYDEFINEDASTHESETOFALLFORMULASCOMPOSEDOFVARIABLESANDTWOABSTRACTBINARYOPERATORSANDARELATIONISDEFINEDBETWEENCERTAINFORMULASANDINTHEFREELATTICEBYTHEFOLLOWINGRULESIIFANDONLYIFORORORIIIFANDONLYIFANDIIIIFANDONLYIFANDIVIFANDONLYIFORWHENISAVARIABLEVIFANDONLYIFORWHENISAVARIABLEVIIFANDONLYIFWHENANDAREVARIABLESFOREXAMPLEWEFINDDESIGNANALGORITHMTHATTESTSWHETHERORNOTGIVENTWOFORMULASANDINTHEFREELATTICEANCESTORCODEMPROVETHATIFANDARENODESOFAFORESTISAPROPERANCESTOROFIFANDONLYIFPRECEDESINPREORDERANDFOLLOWSINPOSTORDERPREORDEROFTREEPOSTORDEROFTREEDESCENDANTIFISANANCESTOROFITISIMMEDIATEBYINDUCTIONTHATPRECEDESINPREORDERANDFOLLOWSINPOSTORDERCONVERSELYSUPPOSEPRECEDESINPREORDERANDFOLLOWSINPOSTORDERWEMUSTSHOWTHATISANANCESTOROFTHISISCLEARIFISTHEROOTOFTHEFIRSTTREEIFISANOTHERNODEOFTHEFIRSTTREEMUSTBEALSOSINCEFOLLOWSINPOSTORDERSOINDUCTIONAPPLIESSIMILARLYIFISNOTINTHEFIRSTTREEMUSTNOTBEEITHERSINCEPRECEDESINPREORDERTHISEXERCISEALSOFOLLOWSEASILYFROMTHERESULTOFEXERCISEITGIVESUSAQUICKTESTFORANCESTORHOODIFWEKNOWEACHNODESPOSITIONINPREORDERANDPOSTORDERSPECIALARITIESALGORITHMDCONTROLSTHEDIFFERENTIATIONACTIVITYFORBINARYOPERATORSUNARYOPERATORSANDNULLARYOPERATORSTHUSFORTREESWHOSENODESHAVEDEGREEANDBUTITDOESNOTINDICATEEXPLICITLYHOWTHECONTROLWOULDBEHANDLEDFORTERNARYOPERATORSANDNODESOFHIGHERDEGREEFOREXAMPLEEXERCISESUGGESTSMAKINGADDITIONANDMULTIPLICATIONINTOOPERATORSWITHANYNUMBEROFOPERANDSISITPOSSIBLETOEXTENDALGORITHMDINASIMPLEWAYSOTHATITWILLHANDLEOPERATORSOFDEGREEMORETHANIFNODEPISABINARYOPERATORPOINTERSTOITSTWOOPERANDSAREANDALGORITHMDMAKESUSEOFTHEFACTTHATSOTHATRLINKPMAYBECHANGEDTOQAPOINTERTOTHEDERIVATIVEOFNODEPTHENRLINKPISRESETLATERINSTEPDFORTERNARYOPERATIONSWEWOULDHAVESAYSOITISDIFFICULTTOGENERALIZETHEBINARYTRICKAFTERCOMPUTINGTHEDERIVATIVEQWECOULDSETTEMPORARILYANDTHENAFTERCOMPUTINGTHENEXTDERIVATIVEQWECOULDSETANDANDRESETBUTTHISISCERTAINLYINELEGANTANDITBECOMESPROGRESSIVELYMORESOASTHEDEGREEOFTHEOPERATORBECOMESHIGHERTHEREFORETHEDEVICEOFTEMPORARILYCHANGINGRLINKPINALGORITHMDISDEFINITELYATRICKNOTATECHNIQUEAMOREAESTHETICWAYTOCONTROLADIFFERENTIATIONPROCESSBECAUSEITGENERALIZESTOOPERATORSOFHIGHERDEGREEANDDOESNOTRELYONISOLATEDTRICKSCANBEBASEDONALGORITHMLOCALFUNCSEEEXERCISENEWDERIVTREEEMBEDDINGMIFANDARETREESLETUSSAYCANBEEMBEDDEDINWRITTENIFTHEREISAONETOONEFUNCTIONFROMTHENODESOFINTOTHENODESOFSUCHTHATPRESERVESBOTHPREORDERANDPOSTORDERINOTHERWORDSPRECEDESINPREORDERFORIFANDONLYIFPRECEDESINPREORDERFORANDTHESAMEHOLDSFORPOSTORDERSEEFIGFIGEMBEDDINGOFTREESFIGINFIGONETREEEMBEDDEDINANOTHERSEEEXERCISEIFHASMORETHANONENODELETBETHELEFTMOSTSUBTREEOFROOTANDLETBETHERESTOFTHATISWITHDELETEDPROVETHATCANBEEMBEDDEDINIFIHASJUSTONENODEORIIBOTHANDHAVEMORETHANONENODEANDEITHERORORANDDOESTHECONVERSEHOLDFROMTHEDEFINITIONITFOLLOWSIMMEDIATELYTHATTHERELATIONISTRANSITIVETHATISIFANDTHENINFACTTHERELATIONISEASILYSEENTOBEAPARTIALORDERINGIFWELETBETHEFUNCTIONTAKINGNODESINTOTHEMSELVESCLEARLYANDTHEREFOREIFORWEMUSTHAVESUPPOSEANDAREFUNCTIONSTHATRESPECTIVELYSHOWANDLETIFISINIFISROOTOTHERWISENOWITFOLLOWSEASILYTHATSHOWSFOREXAMPLEIFWELETDENOTEWEHAVEPREORDERPREORDERTHECONVERSEDOESNOTHOLDCONSIDERTHESUBTREESWITHROOTSANDINFIGFIGOTHERREPRESENTATIONSOFTREESREPRESENTATIONOFTREESLLINKINTREERLINKINTREETREESSEQUENTIALTHEREAREMANYWAYSTOREPRESENTTREESTRUCTURESINSIDEACOMPUTERBESIDESTHELLINKRLINKLEFTCHILDRIGHTSIBLINGMETHODGIVENINTHEPREVIOUSSECTIONLEFTCHILDRIGHTSIBLINGLINKSRIGHTSIBLINGLEFTCHILDLINKSASUSUALTHEPROPERCHOICEOFREPRESENTATIONDEPENDSHEAVILYONWHATKINDOFOPERATIONSWEWANTTOPERFORMONTHETREESINTHISSECTIONWEWILLCONSIDERAFEWOFTHETREEREPRESENTATIONMETHODSTHATHAVEPROVEDTOBEESPECIALLYUSEFULFIRSTWECANUSESEQUENTIALMEMORYTECHNIQUESASINTHECASEOFLINEARLISTSTHISMODEOFALLOCATIONISMOSTSUITABLEWHENWEWANTACOMPACTREPRESENTATIONOFATREESTRUCTURETHATISNOTGOINGTOBESUBJECTTORADICALDYNAMICCHANGESINSIZEORSHAPEDURINGPROGRAMEXECUTIONTHEREAREMANYSITUATIONSINWHICHWENEEDESSENTIALLYCONSTANTTABLESOFTREESTRUCTURESFORREFERENCEWITHINAPROGRAMANDTHEDESIREDFORMOFTHESETREESINMEMORYDEPENDSONTHEWAYINWHICHTHETABLESARETOBEEXAMINEDTHEMOSTCOMMONSEQUENTIALREPRESENTATIONOFTREESANDFORESTSCORRESPONDSESSENTIALLYTOTHEOMISSIONOFLLINKFIELDSBYUSINGCONSECUTIVEADDRESSINGINSTEADFOREXAMPLELETUSLOOKAGAINATTHEFORESTDIAGRAMSOFTREESCONSIDEREDINTHEPREVIOUSSECTIONWHICHHASTHETREEDIAGRAMSTHEPREORDERSEQUENTIALREPRESENTATIONHASTHENODESAPPEARINGINPREORDERLTAGWITHTHEFIELDSINFORLINKANDLTAGINEACHNODEHERENONNULLRLINKSHAVEBEENINDICATEDBYARROWSANDFORTERMINALNODESISINDICATEDBYLLINKISUNNECESSARYSINCEITWOULDEITHERBENULLORITWOULDPOINTTOTHENEXTITEMINSEQUENCEITISINSTRUCTIVETOCOMPAREWITHTHISREPRESENTATIONHASSEVERALINTERESTINGPROPERTIESINTHEFIRSTPLACEALLSUBTREESOFANODEAPPEARIMMEDIATELYAFTERTHATNODESOTHATALLSUBTREESWITHINTHEORIGINALFORESTAPPEARINCONSECUTIVEBLOCKSCOMPARETHISWITHTHENESTEDPARENTHESESINANDINFIGTREESTRUCTBINTHESECONDPLACENOTICETHATTHERLINKARROWSNEVERCROSSEACHOTHERINTHISWILLBETRUEINGENERALFORINABINARYTREEALLNODESBETWEENXANDRLINKXINPREORDERLIEINTHELEFTSUBTREEOFXHENCENOOUTWARDARROWSWILLEMERGEFROMTHATPARTOFTHETREEINTHETHIRDPLACEWEMAYOBSERVETHATTHELTAGFIELDWHICHINDICATESWHETHERANODEISTERMINALORNOTISREDUNDANTSINCEOCCURSONLYATTHEENDOFTHEFORESTANDJUSTPRECEDINGEVERYDOWNWARDPOINTINGARROWINDEEDTHESEREMARKSSHOWTHATTHERLINKFIELDITSELFISALMOSTREDUNDANTALLWEREALLYNEEDTOREPRESENTTHESTRUCTUREISRTAGANDLTAGTHUSITRTAGISPOSSIBLETODEDUCEFROMMUCHLESSDATAASWESCANFROMLEFTTORIGHTTHEPOSITIONSWITHCORRESPONDTONONNULLRLINKSTHATMUSTBEFILLEDINEACHTIMEWEPASSANITEMWITHWESHOULDSETTHERLINKFIELDOFTHEMOSTRECENTNODEWHOSERTAGWASBLANKTHELOCATIONSOFINCOMPLETERLINKSCANTHEREFOREBEKEPTONASTACKWEHAVEESSENTIALLYPROVEDTHEOREMBINSIMILARITYAGAINTHEFACTTHATRLINKORLTAGISREDUNDANTINISOFLITTLEORNOHELPTOUSUNLESSWEARESCANNINGTHEENTIREFORESTSEQUENTIALLYSINCEEXTRACOMPUTATIONISREQUIREDTODEDUCETHEMISSINGINFORMATIONTHEREFOREWEOFTENNEEDALLOFTHEDATAINHOWEVERTHEREISEVIDENTLYSOMEWASTEDSPACESINCEMORETHANHALFOFTHERLINKFIELDSAREEQUALTOFORTHISPARTICULARFORESTTHEREARETWOCOMMONWAYSTOMAKEUSEOFTHEWASTEDSPACEFILLTHERLINKOFEACHNODEWITHTHEADDRESSFOLLOWINGTHESUBTREEBELOWTHATNODETHEFIELDISNOWOFTENCALLEDSCOPEINSTEADOFRLINKSCOPESINCEITINDICATESTHERIGHTBOUNDARYOFTHEINFLUENCEDESCENDANTSOFEACHNODEINSTEADOFWEWOULDHAVETHEARROWSSTILLDONOTCROSSEACHOTHERFURTHERMOREISCHARACTERIZEDBYTHECONDITIONWHEREISTHENUMBEROFWORDSPERNODEONEEXAMPLEOFTHEUSEOFTHISSCOPEIDEAAPPEARSINEXERCISEDAHMSCOPESDECREASETHESIZEOFEACHNODEBYREMOVINGTHERLINKFIELDANDADDSPECIALLINKNODESJUSTBEFORENODESTHATFORMERLYHADANONNULLRLINKHEREINDICATESTHESPECIALLINKNODESWHOSEINFOSOMEHOWCHARACTERIZESTHEMASLINKSPOINTINGASSHOWNBYTHEARROWSIFTHEINFOLTAGANDRLINKFIELDSOFOCCUPYROUGHLYTHESAMEAMOUNTOFSPACETHENETEFFECTOFTHECHANGETOISTOCONSUMELESSMEMORYSINCETHENUMBEROFNODESISALWAYSLESSTHANTHENUMBEROFNONNODESREPRESENTATIONISSOMEWHATANALOGOUSTOASEQUENCEOFINSTRUCTIONSINAONEADDRESSCOMPUTERLIKEWITHTHENODESCORRESPONDINGTOCONDITIONALJUMPINSTRUCTIONSANOTHERSEQUENTIALREPRESENTATIONANALOGOUSTOMAYBEDEVISEDBYOMITTINGRLINKSINSTEADOFLLINKSINTHISCASEWELISTTHENODESOFTHEFORESTINANEWORDERTHATMAYBECALLEDFAMILYORDERSINCETHEMEMBERSOFEACHFAMILYAPPEARTOGETHERFAMILYORDERFORANYFORESTMAYBEDEFINEDRECURSIVELYASFOLLOWSVISITTHEROOTOFTHEFIRSTTREETRAVERSETHEREMAININGTREESINFAMILYORDERTRAVERSETHESUBTREESOFTHEROOTOFTHEFIRSTTREEINFAMILYORDERCOMPARETHISWITHTHEDEFINITIONSOFPREORDERANDPOSTORDERINTHEPREVIOUSSECTIONFAMILYORDERISIDENTICALWITHTHEREVERSEOFPOSTORDERINTHECORRESPONDINGBINARYTREETHEFAMILYORDERSEQUENTIALREPRESENTATIONOFTHETREESISINTHISCASETHERTAGENTRIESSERVETODELIMITTHEFAMILIESFAMILYORDERBEGINSBYLISTINGTHEROOTSOFALLTREESINTHEFORESTTHENCONTINUESBYLISTINGINDIVIDUALFAMILIESSUCCESSIVELYCHOOSINGTHEFAMILYOFTHEMOSTRECENTLYAPPEARINGNODEWHOSEFAMILYHASNOTYETBEENLISTEDITFOLLOWSTHATTHELLINKARROWSWILLNEVERCROSSANDTHEOTHERPROPERTIESOFPREORDERREPRESENTATIONCARRYOVERINASIMILARWAYINSTEADOFUSINGFAMILYORDERWECOULDALSOSIMPLYLISTTHENODESFROMLEFTTORIGHTONELEVELATATIMETHISISCALLEDLEVELORDERSEEGSALTONCACMANDTHELEVELORDERSEQUENTIALREPRESENTATIONOFISTHISISLIKEBUTTHEFAMILIESARECHOSENINFIRSTINFIRSTOUTFASHIONRATHERTHANLASTINFIRSTOUTEITHERORMAYBEREGARDEDASANATURALANALOGFORTREESOFTHESEQUENTIALREPRESENTATIONOFLINEARLISTSRTAGBREADTHFIRSTTHEREADERWILLEASILYSEEHOWTODESIGNALGORITHMSTHATTRAVERSEANDANALYZETREESREPRESENTEDSEQUENTIALLYASABOVESINCETHELLINKANDRLINKINFORMATIONISESSENTIALLYAVAILABLEJUSTASTHOUGHWEHADAFULLYLINKEDTREESTRUCTUREANOTHERSEQUENTIALMETHODCALLEDPOSTORDERWITHDEGREESISSOMEWHATDIFFERENTFROMTHETECHNIQUESABOVEWELISTTHENODESINPOSTORDERANDGIVETHEDEGREEOFEACHNODEINSTEADOFLINKSFORAPROOFTHATTHISISSUFFICIENTTOCHARACTERIZETHETREESTRUCTURESEEEXERCISEFORESTSIMILARITYTHISORDERISUSEFULFORTHEBOTTOMUPEVALUATIONOFEVALUATETREEFUNCTIONFUNCTIONSDEFINEDONTHENODESOFATREEASINTHEFOLLOWINGALGORITHMFLOCALFUNCALGORITHMFEVALUATEALOCALLYDEFINEDFUNCTIONINATREESUPPOSEISAFUNCTIONOFTHENODESOFATREESUCHTHATTHEVALUEOFATANODEDEPENDSONLYONANDTHEVALUESOFONTHECHILDRENOFTHEFOLLOWINGALGORITHMUSINGANAUXILIARYSTACKEVALUATESATEACHNODEOFANONEMPTYFORESTFINITIALIZESETTHESTACKEMPTYANDLETPPOINTTOTHEFIRSTNODEOFTHEFORESTINPOSTORDERFEVALUATESETTHEFIRSTTIMETHISSTEPISREACHEDWILLBEZEROINGENERALWHENWEGETTOTHISPOINTITWILLALWAYSBETRUETHATTHETOPITEMSOFTHESTACKAREFROMTHETOPOFTHESTACKDOWNWARDWHEREARETHECHILDRENOFNODEPFROMLEFTTORIGHTEVALUATEUSINGTHEVALUESOFFOUNDONTHESTACKFUPDATETHESTACKREMOVETHETOPITEMSOFTHESTACKTHENPUTTHEVALUEONTOPOFTHESTACKFADVANCEIFPISTHELASTNODEINPOSTORDERTERMINATETHEALGORITHMTHESTACKWILLTHENCONTAINFROMTOPTOBOTTOMWHEREARETHETREESOFTHEGIVENFORESTOTHERWISESETPTOITSSUCCESSORINPOSTORDERTHISWOULDBESIMPLYINTHEREPRESENTATIONANDRETURNTOSTEPFTHEVALIDITYOFALGORITHMFFOLLOWSBYINDUCTIONONTHESIZEOFTHETREESPROCESSEDSEEEXERCISETHISALGORITHMBEARSASTRIKINGSIMILARITYTOTHEDIFFERENTIATIONPROCEDUREOFTHEPREVIOUSSECTIONALGORITHMDIFFERENTIATIONWHICHEVALUATESAFUNCTIONOFACLOSELYRELATEDTYPESEEEXERCISETHESAMEIDEAISUSEDINMANYINTERPRETIVEROUTINESINCONNECTIONWITHTHEEVALUATIONOFARITHMETICEXPRESSIONSINPOSTFIXNOTATIONWEWILLRETURNTOTHISTOPICINCHAPTERSEEALSOEXERCISEWHICHGIVESANOTHERIMPORTANTPROCEDURESIMILARTOALGORITHMFTHUSWEHAVESEENVARIOUSSEQUENTIALREPRESENTATIONSOFTREESANDFORESTSTREESSEQUENTIALTREESLINKEDTHEREAREALSOANUMBEROFLINKEDFORMSOFREPRESENTATIONWHICHWESHALLNOWCONSIDERTHEFIRSTIDEAISRELATEDTOTHETRANSFORMATIONTHATTAKESINTOWEREMOVETHEINFOFIELDSFROMALLNONTERMINALNODESANDPUTTHISINFORMATIONASANEWTERMINALNODEBELOWTHEPREVIOUSNODEFOREXAMPLETHETREESWOULDBECOMETHISNEWFORMSHOWSTHATWEMAYASSUMEWITHOUTLOSSOFGENERALITYTHATALLINFOINATREESTRUCTUREAPPEARSINITSTERMINALNODESTHEREFOREINTHENATURALBINARYTREEREPRESENTATIONOFSECTIONTHELLINKANDINFOFIELDSAREMUTUALLYEXCLUSIVEANDTHEYCANSHARETHESAMEFIELDINEACHNODEANODEMIGHTHAVETHEFIELDSWHERETHESIGNLTAGTELLSWHETHERTHESECONDFIELDISALINKORNOTLTAGCOMPARETHISREPRESENTATIONWITHFOREXAMPLETHETWOWORDFORMATOFFORMULANODEFIELDSINSECTIONBYCUTTINGINFODOWNFROMBYTESTOWECANFITEACHNODEINTOONEWORDHOWEVERNOTICETHATTHEREARENOWNODESINSTEADOFTHEFORESTTAKESWORDSOFMEMORYWHILETAKESYETTHELATTERHASBYTESOFINFOCOMPAREDTOINTHEOTHERTHEREISNOREALGAININMEMORYSPACEINUNLESSTHEEXCESSINFOSPACEWASGOINGTOWASTETHELLINKSREPLACEDINAREREMOVEDATTHEEXPENSEOFABOUTTHESAMENUMBEROFNEWRLINKSINTHEADDEDNODESPRECISEDETAILSOFTHEDIFFERENCESBETWEENTHETWOREPRESENTATIONSAREDISCUSSEDINEXERCISEINTHESTANDARDBINARYTREEREPRESENTATIONOFATREETHELLINKFIELDMIGHTBEMOREACCURATELYCALLEDTHELCHILDFIELDSINCEITPOINTSFROMAPARENTLCHILDCHILDNODETOITSLEFTMOSTCHILDTHELEFTMOSTCHILDISUSUALLYTHEYOUNGESTOFTHECHILDRENINTHETREESINCEITISEASIERTOINSERTANODEATTHELEFTOFAFAMILYTHANATTHERIGHTSOTHEABBREVIATIONLCHILDMAYALSOBETHOUGHTOFASTHELASTCHILDORLEASTCHILDMANYAPPLICATIONSOFTREESTRUCTURESREQUIRERATHERFREQUENTREFERENCESUPWARDINTHETREEASWELLASDOWNWARDATHREADEDTREEGIVESUSTHEABILITYTOGOUPWARDBUTNOTWITHGREATSPEEDWECANSOMETIMESDOBETTERIFWEHAVEATHIRDLINKPARENTINEACHNODETHISLEADSTOATRIPLYLINKEDTREEWHEREEACHNODEHASLCHILDRLINKANDPARENTLINKSFIGUREFIGRLINKINTREESHOWSATRIPLYLINKEDTREEREPRESENTATIONOFFORANEXAMPLEOFTHEUSEOFTRIPLYLINKEDTREESSEESECTIONLCHILDTRIPLYLINKEDTREEFIGFIGATRIPLYLINKEDTREEITISCLEARTHATTHEPARENTLINKALLBYITSELFISENOUGHTOSPECIFYANYPARENTLINKSREPRESENTATIONOFORIENTEDTREESORIENTEDFORESTSEQUIVALENCERELATIONSORIENTEDTREEORFORESTCOMPLETELYFORWECANDRAWTHEDIAGRAMOFTHETREEIFWEKNOWALLTHEUPWARDLINKSEVERYNODEEXCEPTTHEROOTHASJUSTONEPARENTBUTTHEREMAYBESEVERALCHILDRENSOITISSIMPLERTOGIVEUPWARDLINKSTHANDOWNWARDONESWHYTHENHAVENTWECONSIDEREDUPWARDLINKSMUCHEARLIERINOURDISCUSSIONTHEANSWEROFCOURSEISTHATUPWARDLINKSBYTHEMSELVESAREHARDLYADEQUATEINMOSTSITUATIONSSINCEITISVERYDIFFICULTTOTELLQUICKLYIFANODEISTERMINALORNOTORTOLOCATEANYOFITSCHILDRENETCTHEREISHOWEVERAVERYIMPORTANTAPPLICATIONINWHICHUPWARDLINKSARESUFFICIENTBYTHEMSELVESWENOWTURNTOABRIEFSTUDYOFANELEGANTALGORITHMFORDEALINGWITHEQUIVALENCERELATIONSDUETOMJFISCHERANDBAGALLERANEQUIVALENCERELATIONISARELATIONBETWEENTHEELEMENTSOFASETOFOBJECTSSATISFYINGTHEFOLLOWINGTHREEPROPERTIESFORANYOBJECTSANDNOTNECESSARILYDISTINCTINIIFANDTHENTRANSITIVITYIIIFTHENSYMMETRYIIIREFLEXIVITYCOMPARETHISWITHTHEDEFINITIONOFAPARTIALORDERINGRELATIONINSECTIONEQUIVALENCERELATIONSAREQUITEDIFFERENTFROMPARTIALORDERINGSINSPITEOFTHEFACTTHATTWOOFTHETHREEDEFININGPROPERTIESARETHESAMEEXAMPLESOFEQUIVALENCERELATIONSARETHERELATIONTHERELATIONOFCONGRUENCEMODULOFORINTEGERSTHERELATIONOFSIMILARITYBETWEENTREESASDEFINEDINSECTIONETCTHEEQUIVALENCEPROBLEMISTOREADINPAIRSOFEQUIVALENTELEMENTSANDTODETERMINELATERWHETHERTWOPARTICULARELEMENTSCANBEPROVEDEQUIVALENTORNOTONTHEBASISOFTHEGIVENPAIRSFOREXAMPLESUPPOSETHATISTHESETANDSUPPOSETHATWEAREGIVENTHEPAIRSITFOLLOWSTHATFOREXAMPLESINCEBUTWECANNOTSHOWTHATINFACTTHEPAIRSDIVIDEINTOTWOCLASSESSUCHTHATTWOELEMENTSAREEQUIVALENTIFANDONLYIFTHEYBELONGTOTHESAMECLASSITISNOTDIFFICULTTOPROVETHATANYEQUIVALENCERELATIONPARTITIONSITSSETINTODISJOINTCLASSESCALLEDTHEEQUIVALENCECLASSESSUCHTHATTWOELEMENTSAREEQUIVALENTIFANDONLYIFTHEYBELONGTOTHESAMECLASSTHEREFOREASOLUTIONTOTHEEQUIVALENCEPROBLEMISAMATTEROFKEEPINGTRACKOFEQUIVALENCECLASSESLIKEWEMAYSTARTWITHEACHELEMENTALONEINITSCLASSTHUSNOWIFWEAREGIVENTHERELATIONWEPUTTOGETHERINACLASSAFTERPROCESSINGTHEFIRSTTHREERELATIONSANDWEWILLHAVECHANGEDTOUNIONFINDNOWTHEPAIRPUTSTOGETHERETCTHEPROBLEMISTOFINDAGOODWAYTOREPRESENTSITUATIONSLIKEANDWITHINACOMPUTERSOTHATWECANEFFICIENTLYPERFORMTHEOPERATIONSOFMERGINGCLASSESTOGETHERANDOFTESTINGWHETHERTWOGIVENELEMENTSAREINTHESAMECLASSTHEALGORITHMBELOWUSESORIENTEDTREESTRUCTURESFORTHISPURPOSETHEELEMENTSOFBECOMENODESOFANORIENTEDFORESTANDTWONODESAREEQUIVALENTASACONSEQUENCEOFTHEEQUIVALENTPAIRSREADSOFARIFANDONLYIFTHEYBELONGTOTHESAMETREETHISTESTISEASYTOMAKESINCETWOELEMENTSAREINTHESAMETREEIFANDONLYIFTHEYAREBELOWTHESAMEROOTELEMENTFURTHERMOREITISEASYTOMERGETWOORIENTEDTREESTOGETHERBYSIMPLYATTACHINGONEASANEWSUBTREEOFTHEOTHERSROOTEEQUIVRELALGORITHMEPROCESSEQUIVALENCERELATIONSLETBETHESETOFNUMBERSANDLETPARENTPARENTPARENTBEINTEGERVARIABLESTHISALGORITHMINPUTSASETOFRELATIONSSUCHASANDADJUSTSTHEPARENTTABLETOREPRESENTASETOFORIENTEDTREESSOTHATTWOELEMENTSAREEQUIVALENTASACONSEQUENCEOFTHEGIVENRELATIONSIFANDONLYIFTHEYBELONGTOTHESAMETREENOTEINAMOREGENERALSITUATIONTHEELEMENTSOFWOULDBESYMBOLICNAMESINSTEADOFSIMPLYTHENUMBERSFROMTOTHENASEARCHROUTINEASINCHAPTERWOULDLOCATENODESCORRESPONDINGTOTHEELEMENTSOFANDPARENTWOULDBEAFIELDINEACHNODETHEMODIFICATIONSFORTHISMOREGENERALCASEARESTRAIGHTFORWARDEINITIALIZESETKFORTHISMEANSTHATALLTREESINITIALLYCONSISTOFAROOTALONEASINEINPUTNEWPAIRGETTHENEXTPAIROFEQUIVALENTELEMENTSFROMTHEINPUTIFTHEINPUTISEXHAUSTEDTHEALGORITHMTERMINATESEFINDROOTSIFJSETJANDREPEATTHISSTEPIFKSETKANDREPEATTHISSTEPAFTERTHISOPERATIONANDHAVEMOVEDUPTOTHEROOTSOFTWOTREESTHATARETOBEMADEEQUIVALENTTHEINPUTRELATIONWASREDUNDANTIFANDONLYIFWENOWHAVEEMERGETREESIFSETJGOBACKTOSTEPETHEREADERSHOULDTRYTHISALGORITHMONTHEINPUTAFTERPROCESSINGANDWEWILLHAVEWHICHREPRESENTSTHETREESAFTERTHISPOINTTHEREMAININGRELATIONSOFARESOMEWHATMOREINTERESTINGSEEEXERCISEEQUIVALENCERELATIONSORIENTEDFORESTSPARENTLINKSTHISEQUIVALENCEPROBLEMARISESINMANYAPPLICATIONSWEWILLDISCUSSSIGNIFICANTREFINEMENTSOFALGORITHMEINSECTIONWHENWESTUDYTHECONNECTIVITYOFGRAPHSAMOREGENERALVERSIONOFTHEPROBLEMWHICHARISESWHENACOMPILERPROCESSESEQUIVALENCEDECLARATIONSINLANGUAGESLIKEISDISCUSSEDINEXERCISEFIGFIGARINGSTRUCTURETOFIGAFIELDSBPOLYNOMIALCONSTANTCPOLYNOMIALDEXAMPLEFIGREPRESENTATIONOFPOLYNOMIALSUSINGFOURDIRECTIONALLINKSSHADEDAREASOFNODESINDICATEINFORMATIONTHATISIRRELEVANTINTHECONTEXTCONSIDEREDTHEREARESTILLMOREWAYSTOREPRESENTTREESINCOMPUTERMEMORYRECALLTHATWERINGSTRUCTURECIRCULARLINKAGEDISCUSSEDTHREEPRINCIPALMETHODSFORREPRESENTINGLINEARLISTSINSECTIONTHESTRAIGHTREPRESENTATIONWITHTERMINALLINKTHECIRCULARLYLINKEDLISTSANDTHEDOUBLYLINKEDLISTSTHEREPRESENTATIONOFUNTHREADEDBINARYTREESDESCRIBEDINSECTIONCORRESPONDSTOASTRAIGHTREPRESENTATIONINBOTHLLINKSANDRLINKSITISPOSSIBLETOGETEIGHTOTHERBINARYTREEREPRESENTATIONSBYINDEPENDENTLYUSINGANYOFTHESETHREEMETHODSINTHELLINKANDRLINKDIRECTIONSFOREXAMPLEFIGFIGSHOWSWHATWEGETIFCIRCULARLINKINGISUSEDINBOTHDIRECTIONSIFCIRCULARLINKSAREUSEDTHROUGHOUTASINTHEFIGUREWEHAVEWHATISCALLEDARINGSTRUCTURERINGSTRUCTURESHAVEPROVEDTOBEQUITEFLEXIBLEINANUMBEROFAPPLICATIONSTHEPROPERCHOICEOFREPRESENTATIONDEPENDSASALWAYSONTHETYPESOFINSERTIONSDELETIONSANDTRAVERSALSTHATARENEEDEDINTHEALGORITHMSTHATMANIPULATETHESESTRUCTURESAREADERWHOHASLOOKEDOVERTHEEXAMPLESGIVENSOFARINTHISCHAPTERSHOULDHAVENODIFFICULTYUNDERSTANDINGHOWTODEALWITHANYOFTHESEMEMORYREPRESENTATIONSRINGSTRUCTURETREESLINKEDREPRESENTATIONOFTREESWECLOSETHISSECTIONWITHANEXAMPLEOFMODIFIEDDOUBLYLINKEDRINGSTRUCTURESDOUBLYLINKEDLISTSQUADRUPLYLINKEDTREESMULTILINKEDSTRUCTURESADDITIONOFPOLYNOMIALSREPRESENTATIONOFPOLYNOMIALSFIGUREREPRESENTATIONOFPOLYNOMIALSAPPLIEDTOAPROBLEMWEHAVECONSIDEREDBEFOREARITHMETICONPOLYNOMIALSALGORITHMPOLYADDPERFORMSTHEADDITIONOFONEPOLYNOMIALTOANOTHERGIVENTHATTHETWOPOLYNOMIALSAREEXPRESSEDASCIRCULARLISTSVARIOUSOTHERALGORITHMSINTHATSECTIONGIVEOTHEROPERATIONSONPOLYNOMIALSHOWEVERTHEPOLYNOMIALSOFSECTIONARERESTRICTEDTOATMOSTTHREEVARIABLESWHENMULTIVARIABLEPOLYNOMIALSAREINVOLVEDITISUSUALLYMOREAPPROPRIATETOUSEATREESTRUCTUREINSTEADOFALINEARLISTAPOLYNOMIALEITHERISACONSTANTORHASTHEFORMWHEREISAVARIABLEANDAREPOLYNOMIALSINVOLVINGONLYVARIABLESALPHABETICALLYLESSTHANARENOTZEROTHISRECURSIVEDEFINITIONOFPOLYNOMIALSLENDSITSELFTOTREEREPRESENTATIONASINDICATEDINFIGFIGNODESHAVESIXFIELDSWHICHINTHECASEOFMIGHTFITINTHREEWORDSHERELEFTRIGHTUPANDDOWNARELINKSEXPISANINTEGERREPRESENTINGANEXPONENTANDCVISEITHERACONSTANTCOEFFICIENTORTHEALPHABETICNAMEOFAVARIABLETHEROOTNODEHASSELFTHEFOLLOWINGALGORITHMILLUSTRATESTRAVERSALINSERTIONANDDELETIONINSUCHAFOURWAYLINKEDTREESOITBEARSCAREFULSTUDYALGORITHMAADDITIONOFPOLYNOMIALSTHISALGORITHMADDSPOLYNOMIALPTOPOLYNOMIALQASSUMINGTHATPANDQAREPOINTERVARIABLESTHATLINKTOTHEROOTSOFDISTINCTPOLYNOMIALTREESHAVINGTHEFORMSHOWNINFIGFIGATTHECONCLUSIONOFTHEALGORITHMPOLYNOMIALPWILLBEUNCHANGEDANDPOLYNOMIALQWILLCONTAINTHESUMAATESTTYPEOFPOLYNOMIALIFTHATISIFPPOINTSTOACONSTANTTHENSETZEROORMORETIMESUNTILANDGOTOAIFTHENIFORIFGOTOAOTHERWISEIFSETANDREPEATTHISSTEPIFSETANDREPEATTHISSTEPSTEPAEITHERFINDSTWOMATCHINGTERMSOFTHEPOLYNOMIALSORELSEDETERMINESTHATANINSERTIONOFANEWVARIABLEMUSTBEMADEINTOTHECURRENTPARTOFPOLYNOMIALQADOWNWARDINSERTIONSETINSERTIONINTODOUBLYLINKEDRINGSTRUCTUREIFSETANDIFREPEATTHISOPERATIONUNTILULTIMATELYSETANDFINALLYSETANDANDRETURNTOAWEHAVEINSERTEDADUMMYZEROPOLYNOMIALJUSTBELOWNODEQTOOBTAINAMATCHWITHACORRESPONDINGPOLYNOMIALFOUNDWITHINPSTREETHELINKMANIPULATIONSDONEINTHISSTEPARESTRAIGHTFORWARDANDMAYBEDERIVEDEASILYUSINGBEFOREANDAFTERDIAGRAMSASEXPLAINEDINSECTIONAMATCHFOUNDATTHISPOINTPANDQPOINTTOCORRESPONDINGTERMSOFTHEGIVENPOLYNOMIALSSOADDITIONISREADYTOPROCEEDSETIFTHISSUMISZEROANDIFGOTOSTEPAIFGOTOAAADVANCETOLEFTAFTERSUCCESSFULLYADDINGATERMWELOOKFORTHENEXTTERMTOADDSETIFGOTOAOTHERWISESETONEORMORETIMESUNTILIFTHENRETURNTOSTEPAAINSERTTORIGHTSETSETANDRETURNTOSTEPAWENEEDEDTOINSERTANEWTERMINTHECURRENTROWJUSTTOTHERIGHTOFNODEQINORDERTOMATCHACORRESPONDINGEXPONENTINPOLYNOMIALPASINSTEPAABEFOREANDAFTERDIAGRAMMAKESTHEOPERATIONSCLEARARETURNUPWARDAROWOFPOLYNOMIALPHASNOWBEENCOMPLETELYTRAVERSEDSETAMOVEQUPTORIGHTLEVELIFGOTOAOTHERWISESETZEROORMORETIMESUNTILRETURNTOSTEPAADELETEZEROTERMSETDELETIONFROMDOUBLYLINKEDRINGSTRUCTUREANDCANCELLATIONOCCURREDSOAROWELEMENTOFPOLYNOMIALQISDELETEDIFNOWANDGOTOAOTHERWISERETURNTOAADELETECONSTANTPOLYNOMIALCANCELLATIONHASCAUSEDAPOLYNOMIALTOREDUCETOACONSTANTSOAROWOFPOLYNOMIALQISDELETEDSETANDSETIFSETANDIFREPEATTHISOPERATIONUNTILULTIMATELYAZERODETECTEDIFANDSETANDGOTOAOTHERWISEGOTOAATERMINATESETZEROORMORETIMESUNTILTHUSBRINGINGQTOTHEROOTOFTHETREETHISALGORITHMWILLACTUALLYRUNMUCHFASTERTHANALGORITHMPOLYADDIFPOLYNOMIALPHASFEWTERMSANDPOLYNOMIALQHASMANYSINCEITISNOTNECESSARYTOPASSOVERALLOFPOLYNOMIALQDURINGTHEADDITIONPROCESSTHEREADERWILLFINDITINSTRUCTIVETOSIMULATEALGORITHMABYHANDADDINGTHEPOLYNOMIALTOTHEPOLYNOMIALSHOWNINFIGFIGTHISCASEDOESNOTDEMONSTRATETHEEFFICIENCYOFTHEALGORITHMBUTITMAKESTHEALGORITHMGOTHROUGHALLOFITSPACESBYSHOWINGTHEDIFFICULTSITUATIONSTHATMUSTBEHANDLEDFORFURTHERCOMMENTARYONALGORITHMASEEEXERCISESANDADDITIONOFPOLYNOMIALSNOCLAIMISBEINGMADEHERETHATTHEREPRESENTATIONSHOWNINFIGFIGISTHEBESTFORPOLYNOMIALSINSEVERALVARIABLESINCHAPTERWEWILLCONSIDERANOTHERFORMATFORPOLYNOMIALREPRESENTATIONTOGETHERWITHARITHMETICALGORITHMSUSINGANAUXILIARYSTACKWITHSIGNIFICANTADVANTAGESOFCONCEPTUALSIMPLICITYWHENCOMPAREDTOALGORITHMAOURMAININTERESTINALGORITHMAISTHEWAYITTYPIFIESMANIPULATIONSONTREESWITHMANYLINKSEXERCISESIFWEHADONLYLTAGINFOANDRTAGFIELDSREPRESENTATIONOFTREESTREESSEQUENTIALLYLLINKINTREERLINKINTREENOTLLINKINALEVELORDERSEQUENTIALREPRESENTATIONLIKEWOULDITBEPOSSIBLETORECONSTRUCTTHELLINKSINOTHERWORDSARETHELLINKSREDUNDANTINASTHERLINKSAREINLTAGRTAGYESWECANRECONSTRUCTTHEMJUSTASISDEDUCEDFROMBUTINTERCHANGINGLTAGANDRTAGLLINKANDRLINKANDUSINGAQUEUEINSTEADOFASTACKBURKSWARRENANDWRIGHTMATHCOMPTHETREESSTOREDINPREORDERWITHDEGREESWOULDBEPREORDERWITHDEGREESCOMPAREWITHWHEREPOSTORDERWASUSEDDESIGNANALGORITHMANALOGOUSTOALGORITHMFTOEVALUATEALOCALLYDEFINEDFUNCTIONOFTHENODESBYGOINGFROMRIGHTTOLEFTINTHISREPRESENTATIONMAKETHEFOLLOWINGCHANGESINALGORITHMFSTEPFCHANGETOLASTNODEOFTHEFORESTINPREORDERSTEPFCHANGETOINTWOPLACESSTEPFIFPISTHEFIRSTNODEINPREORDERTERMINATETHEALGORITHMTHENTHESTACKCONTAINSFROMTOPTOBOTTOMWHEREARETHETREESOFTHEGIVENFORESTFROMLEFTTORIGHTOTHERWISESETPTOITSPREDECESSORINPREORDERINTHEGIVENREPRESENTATIONANDRETURNTOFNEWDERIVMODIFYALGORITHMDIFFERENTIATIONSOTHATITFOLLOWSTHEIDEASOFALGORITHMFPLACINGTHEDERIVATIVESITCOMPUTESASINTERMEDIATERESULTSONASTACKINSTEADOFRECORDINGTHEIRLOCATIONSINANANOMALOUSFASHIONASISDONEINSTEPDSEEEXERCISESPECIALARITIESTHESTACKMAYBEMAINTAINEDBYUSINGTHERLINKFIELDINTHEROOTOFEACHDERIVATIVEINSTEPDALSOSETSISALINKVARIABLETHATLINKSTOTHETOPOFTHESTACKSTEPDBECOMESFOREXAMPLEIFNODEPDENOTESAUNARYOPERATORSETIFITDENOTESABINARYOPERATORSETTHENPERFORMDIFFTYPEPSTEPDBECOMESSETSTEPDBECOMESSETTHEOPERATIONMAYBEAVOIDEDINSTEPDIFWEASSUMETHATTHISTECHNIQUECLEARLYGENERALIZESTOTERNARYANDHIGHERORDEROPERATORSTHETREESCONTAINNODESFIVEOFWHICHARETERMINALREPRESENTATIONOFTHESETREESINTHENORMALBINARYTREEFASHIONINVOLVESLLINKFIELDSANDRLINKFIELDSONEFOREACHNODEREPRESENTATIONOFTHESETREESINTHEFORMWHERELLINKANDINFOSHARETHESAMESPACEINANODEREQUIRESLLINKSANDRLINKSTHEREAREINFOFIELDSINEACHCASEGIVENAFORESTWITHNODESOFWHICHARETERMINALCOMPARETHETOTALNUMBEROFLLINKSANDRLINKSTHATMUSTBESTOREDUSINGTHESETWOMETHODSOFTREEREPRESENTATIONAREPRESENTATIONLIKETAKESLLINKSANDRLINKSTHEDIFFERENCEINTOTALNUMBEROFLINKSISBETWEENTHETWOFORMSOFREPRESENTATIONARRANGEMENTISSUPERIORWHENTHELLINKANDINFOFIELDSREQUIREABOUTTHESAMEAMOUNTOFSPACEINANODEANDWHENISRATHERLARGENAMELYWHENTHENONTERMINALNODESHAVERATHERLARGEDEGREESATRIPLYLINKEDTREEASSHOWNINFIGFIGCONTAINSPARENTTRIPLYLINKEDTREELCHILDPARENTLINKSLCHILDANDRLINKFIELDSINEACHNODEWITHLIBERALUSEOFLINKSWHENTHEREISNOAPPROPRIATENODETOMENTIONINTHEPARENTLCHILDORRLINKFIELDWOULDITBEAGOODIDEATOEXTENDTHISREPRESENTATIONTOATHREADEDTREEBYPUTTINGTHREADLINKSINPLACEOFTHENULLLCHILDANDRLINKENTRIESASWEDIDINSECTIONTRIPLYLINKEDTREEITWOULDCERTAINLYBESILLYTOINCLUDETHREADEDRLINKSSINCEANRLINKTHREADJUSTPOINTSTOPARENTANYWAYTHREADEDLLINKSASINFULLYTHREADEDFORESTWOULDBEUSEFULIFITISNECESSARYTOMOVELEFTWARDINTHETREEFOREXAMPLEIFWEWANTEDTOTRAVERSEATREEINREVERSEPOSTORDERORINFAMILYORDERBUTTHESEOPERATIONSARENOTSIGNIFICANTLYHARDERWITHOUTTHREADEDLLINKSUNLESSTHENODESTENDTOHAVEVERYHIGHDEGREESTRIPLELINKBUILDSUPPOSETHATTHENODESOFANORIENTEDFORESTHAVETHREELINKFIELDSPARENTLCHILDANDRLINKBUTONLYTHEPARENTLINKHASBEENSETUPTOINDICATETHETREESTRUCTURETHELCHILDFIELDOFEACHNODEISANDTHERLINKFIELDSARESETASALINEARLISTTHATSIMPLYLINKSTHENODESTOGETHERINSOMEORDERTHELINKVARIABLEFIRSTPOINTSTOTHEFIRSTNODEANDTHELASTNODEHASDESIGNANALGORITHMTHATGOESTHROUGHTHESENODESANDFILLSINTHELCHILDANDRLINKFIELDSCOMPATIBLEWITHTHEPARENTLINKSSOTHATATRIPLYLINKEDTREEREPRESENTATIONLIKETHATINFIGFIGISOBTAINEDALSORESETFIRSTSOTHATITNOWPOINTSTOTHEROOTOFTHEFIRSTTREEINTHISREPRESENTATIONLCHILDLLSETLIFTERMINATEOTHERWISESETLIFSETOTHERWISESETLSETANDRETURNTOLWHATCLASSESWOULDAPPEARINIFTHERELATIONHADNOTBEENGIVENINALGORITHMESETSUPATREESTRUCTURETHATREPRESENTSTHEGIVENPAIRSOFEQUIVALENTELEMENTSBUTTHETEXTDOESNOTMENTIONEXPLICITLYHOWTHERESULTOFALGORITHMECANBEUSEDDESIGNANALGORITHMTHATANSWERSTHEQUESTIONISASSUMINGTHATANDTHATALGORITHMEHASSETUPTHEPARENTTABLEFORSOMESETOFEQUIVALENCESEQUIVALENCEALGORITHMUNIONFINDPERFORMSTEPEOFALGORITHMETHENTESTIFGIVEATABLEANALOGOUSTOANDADIAGRAMANALOGOUSTOTHATSHOWSTHETREESPRESENTAFTERALGORITHMEHASPROCESSEDALLOFTHEEQUIVALENCESINFROMLEFTTORIGHTTOPARENTKFASTEREQUIVINTHEWORSTCASEALGORITHMEMAYTAKEORDERSTEPSTOPROCESSEQUIVALENCESSHOWHOWTOMODIFYTHEALGORITHMSOTHATTHEWORSTCASEISNOTTHISBADONEIDEAISTOSETPARENTOFEACHROOTNODETOTHENEGATIVEOFTHENUMBEROFNODESINITSTREETHESEVALUESBEINGEASILYKEPTUPTODATETHENIFJKINSTEPETHEROLESOFANDAREINTERCHANGEDTHISTECHNIQUEDUETOMDMCILROYENSURESTHATEACHOPERATIONTAKESSTEPSFORSTILLMORESPEEDWECANUSETHEFOLLOWINGSUGGESTIONDUETOALANTRITTERINSTEPESETXFORALLVALUESTHATWEREENCOUNTEREDINSTEPETHISMAKESANEXTRAPASSUPTHETREESBUTITCOLLAPSESPATHCOMPRESSIONTHEMSOTHATFUTURESEARCHESAREFASTERSEESECTIONEQUIVALENCEDECLARATIONSSEVERALCOMPILERFORTRANCOMPILERALGORITHMSLANGUAGESNOTABLYPROVIDEAFACILITYFOROVERLAPPINGTHEMEMORYLOCATIONSASSIGNEDTOSEQUENTIALLYSTOREDTABLESTHEPROGRAMMERGIVESTHECOMPILERASETOFRELATIONSOFTHEFORMJKWHICHMEANSTHATVARIABLEJSISTOBEASSIGNEDTOTHESAMELOCATIONASVARIABLEKSFORALLEACHVARIABLEISALSOGIVENARANGEOFALLOWABLESUBSCRIPTSARRAYXMEANSTHATSPACEISTOBESETASIDEINMEMORYFORTHETABLEENTRIESXXXFOREACHEQUIVALENCECLASSOFVARIABLESTHECOMPILERRESERVESASSMALLABLOCKOFCONSECUTIVEMEMORYLOCATIONSASPOSSIBLETOCONTAINALLTHETABLEENTRIESFORTHEALLOWABLESUBSCRIPTVALUESOFTHESEVARIABLESFOREXAMPLESUPPOSEWEHAVEARRAYXARRAYYARRAYAANDARRAYZPLUSTHEEQUIVALENCESANDWEMUSTSETASIDECONSECUTIVELOCATIONSFORTHESEVARIABLESTHELOCATIONFOLLOWINGAISNOTANALLOWABLESUBSCRIPTVALUEFORANYOFTHEARRAYSBUTITMUSTBERESERVEDANYWAYTHEOBJECTOFTHISEXERCISEISTOMODIFYALGORITHMESOTHATITAPPLIESTOTHEMOREGENERALSITUATIONJUSTDESCRIBEDASSUMETHATWEAREWRITINGACOMPILERFORSUCHALANGUAGEANDTHETABLESINSIDEOURCOMPILERPROGRAMITSELFHAVEONENODEFOREACHARRAYCONTAININGTHEFIELDSNAMEPARENTDELTALBDANDUBDASSUMETHATTHECOMPILERPROGRAMHASPREVIOUSLYPROCESSEDALLTHEARRAYDECLARATIONSSOTHATIFARRAYXHASAPPEAREDANDIFPPOINTSTOTHENODEFORXTHENTHEPROBLEMISTODESIGNANALGORITHMTHATPROCESSESTHEEQUIVALENCEDECLARATIONSSOTHATAFTERTHISALGORITHMHASBEENPERFORMEDMEANSTHATLOCATIONSARETOBERESERVEDINMEMORYFORTHISEQUIVALENCECLASSMEANSTHATLOCATIONXEQUALSLOCATIONWHEREYFOREXAMPLEBEFORETHEEQUIVALENCESLISTEDABOVEWEMIGHTHAVETHENODESDENOTESIRRELEVANTINFORMATIONDESIGNANALGORITHMTHATMAKESTHISTRANSFORMATIONASSUMETHATINPUTSTOYOURALGORITHMHAVETHEFORMDENOTINGJKWHEREANDBESURETOCHECKWHETHERTHEEQUIVALENCESARECONTRADICTORYFOREXAMPLECONTRADICTSPARENTLINKSEQUIVALENCEALGORITHMITSUFFICESTODEFINETHETRANSFORMATIONTHATISDONEFOREACHINPUTTTIFSETANDREPEATTHISSTEPTIFSETANDREPEATTHISSTEPTIFCHECKTHATOTHERWISETHEINPUTERRONEOUSLYCONTAINSCONTRADICTORYEQUIVALENCESIFSETANDNOTEITISPOSSIBLETOALLOWTHEARRAYXDECLARATIONSTOOCCURINTERMIXEDWITHEQUIVALENCESORTOALLOWASSIGNMENTOFCERTAINADDRESSESOFVARIABLESBEFOREOTHERSAREEQUIVALENCEDTOTHEMETCUNDERSUITABLECONDITIONSTHATARENOTDIFFICULTTOUNDERSTANDFORFURTHERDEVELOPMENTOFTHISALGORITHMSEECACMATTHEBEGINNINGOFALGORITHMATHEVARIABLESPANDQPOINTTOTHEROOTSOFTWOTREESLETANDDENOTETHEVALUESOFPANDQBEFOREEXECUTIONOFALGORITHMAAAFTERTHEALGORITHMTERMINATESISALWAYSTHEADDRESSOFTHEROOTOFTHESUMOFTHETWOGIVENPOLYNOMIALSBAFTERTHEALGORITHMTERMINATESHAVEPANDQRETURNEDTOTHEIRORIGINALVALUESANDAYESIFTHISCONDITIONISNOTREQUIREDITWOULDBEPOSSIBLETOAVOIDTHELOOPSONSTHATAPPEARINSTEPSAANDABYESMGIVEANINFORMALPROOFTHATATTHEBEGINNINGOFSTEPAOFALGORITHMAWEALWAYSHAVEANDTHISFACTISIMPORTANTTOTHEPROPERUNDERSTANDINGOFTHATALGORITHMPROOFOFALGORITHMSTHECRUCIALFACTISTHATTHEUPCHAINLEADINGUPWARDFROMPALWAYSMENTIONSTHESAMEVARIABLESANDTHESAMEEXPONENTSFORTHESEVARIABLESASTHEUPCHAINLEADINGUPWARDFROMQEXCEPTTHATTHELATTERCHAINMAYINCLUDEADDITIONALSTEPSFORVARIABLESWITHEXPONENTZEROTHISCONDITIONHOLDSTHROUGHOUTMOSTOFTHEALGORITHMEXCEPTDURINGTHEEXECUTIONOFSTEPSAANDANOWWEGETTOSTEPAEITHERFROMAORFROMAANDINEACHCASEITWASVERIFIEDTHATTHEREFOREANDINPARTICULARITFOLLOWSTHATTHERESULTSTATEDINTHEEXERCISENOWFOLLOWSTHUSTHEPROOFDEPENDSONSHOWINGTHATTHEUPCHAINCONDITIONSTATEDABOVEISPRESERVEDBYTHEACTIONSOFTHEALGORITHMGIVEAFORMALPROOFORDISPROOFOFTHEVALIDITYOFALGORITHMADESIGNANALGORITHMTOCOMPUTETHEPRODUCTOFTWOPOLYNOMIALSREPRESENTEDASINFIGFIGMULTIPLICATIONOFPOLYNOMIALSSEEMARTINWARDANDHUSSEINZEDANPROVABLYCORRECTDERIVATIONOFALGORITHMSUSINGFERMATFORMALASPECTSOFCOMPUTINGMPROVETHEVALIDITYOFALGORITHMFWEPROVEBYINDUCTIONONTHENUMBEROFNODESINASINGLETREETHATIFPISAPOINTERTOANDIFTHESTACKISINITIALLYEMPTYSTEPSFTHROUGHFWILLENDWITHTHESINGLEVALUEROOTONTHESTACKTHISISTRUEFORIFTHEREAREROOTSUBTREESBYINDUCTIONANDTHENATUREOFASTACKANDSINCEPOSTORDERCONSISTSOFFOLLOWEDBYROOTTHEALGORITHMCOMPUTESANDTHENROOTASDESIREDTHEVALIDITYOFALGORITHMFFORFORESTSFOLLOWSALGORITHMFEVALUATESABOTTOMUPLOCALLYDEFINEDFUNCTIONNAMELYONETHATSHOULDBEEVALUATEDATTHECHILDRENOFANODEBEFOREITISEVALUATEDATTHENODEATOPDOWNLOCALLYDEFINEDFUNCTIONISONEINTOPDOWNPROCESSEVALUATETREEFUNCTIONWHICHTHEVALUEOFATANODEDEPENDSONLYONANDTHEVALUEOFATTHEPARENTOFUSINGANAUXILIARYSTACKDESIGNANALGORITHMANALOGOUSTOALGORITHMFTHATEVALUATESATOPDOWNFUNCTIONATEACHNODEOFATREELIKEALGORITHMFYOURALGORITHMSHOULDWORKEFFICIENTLYPOSTORDERWITHDEGREESONTREESTHATHAVEBEENSTOREDINPOSTORDERWITHDEGREESASINGGSETTHESTACKEMPTYANDLETPPOINTTOTHEROOTOFTHETREETHELASTNODEINPOSTORDEREVALUATEGPUSHDEGREEPCOPIESOFONTOTHESTACKGIFPISTHEFIRSTNODEINPOSTORDERTERMINATETHEALGORITHMOTHERWISESETPTOITSPREDECESSORINPOSTORDERTHISWOULDBESIMPLYINGEVALUATEUSINGTHEVALUEATTHETOPOFTHESTACKWHICHISEQUALTOPOPTHISVALUEOFFTHESTACKANDRETURNTOGNOTEANALGORITHMANALOGOUSTOTHISONECANBEBASEDONPREORDERINSTEADOFPOSTORDERASINEXERCISEINFACTFAMILYORDERORLEVELORDERCOULDBEUSEDINTHELATTERCASEWEWOULDUSEAQUEUEINSTEADOFASTACKDESIGNANALGORITHMTHATGIVENTHETWOTABLESINFOANDRLINKFORCORRESPONDINGTOPREORDERSEQUENTIALREPRESENTATIONFORMSTABLESINFOANDDEGREEFORCORRESPONDINGTOPOSTORDERWITHDEGREESFOREXAMPLEACCORDINGTOANDYOURALGORITHMPREORDERSEQUENTIALREPRESENTATIONPOSTORDERWITHDEGREESSHOULDTRANSFORMTHEINFOANDRLINKTABLESTOGETHERWITHTHESUGGESTIONFORCOMPUTINGLTAGINTHETEXTGIVEUSTHEEQUIVALENTOFABINARYTREEREPRESENTEDINTHEUSUALMANNERTHEIDEAISTOTRAVERSETHISTREEINPOSTORDERCOUNTINGDEGREESASWEGOPPLETRDANDIBESTACKSTHATAREINITIALLYEMPTYTHENSETPIFGOTOPIFANLTAGFIELDWEREPRESENTWECOULDHAVETESTEDJINSTEADOFPIFIISEMPTYTERMINATETHEALGORITHMOTHERWISESETKIKPIFIGOTOPOTHERWISEDELETETHETOPOFRWHICHWILLEQUALRLINKPSETTOPDTOPANDIFJSETJGOTOPDUALPALLONUMBERSMINSTEADOFUSINGSCOPELINKSINWESCOPECOULDSIMPLYLISTTHENUMBEROFDESCENDANTSOFEACHNODEINPREORDERLETBETHESEQUENCEOFDESCENDANTNUMBERSOFAFORESTOBTAINEDINTHISWAYASHOWTHATFORANDTHATIMPLIESBCONVERSELYPROVETHATIFISASEQUENCEOFNONNEGATIVEINTEGERSSATISFYINGTHECONDITIONSOFAITISTHESEQUENCEOFDESCENDANTNUMBERSOFAFORESTCSUPPOSEANDARETHEDESCENDANTNUMBERSEQUENCESFORTWOFORESTSPROVETHATTHEREISATHIRDFORESTWHOSEDESCENDANTNUMBERSAREATHISPROPERTYISEQUIVALENTTOSAYINGTHATSCOPELINKSDONOTCROSSEACHOTHERBTHEFIRSTTREEOFTHEFORESTCONTAINSELEMENTSANDWECANPROCEEDBYINDUCTIONCTHECONDITIONOFAISPRESERVEDWHENWETAKEMINIMANOTESBYEXERCISEANCESTORCODEITFOLLOWSTHATCANALSOBEINTERPRETEDINTERMSOFINVERSIONSIFTHETHNODEINPOSTORDERISTHETHNODEINPREORDERTHENISTHENUMBEROFELEMENTSTHATAPPEARTOTHELEFTOFINASIMILARSCHEMEINWHICHWELISTTHENUMBEROFDESCENDANTSOFEACHNODEINPOSTORDEROFTHEFORESTLEADSTOSEQUENCESOFNUMBERSCHARACTERIZEDBYTHEPROPERTIESIANDIIIMPLIESALGORITHMSBASEDONSUCHSEQUENCESHAVEBEENINVESTIGATEDBYJMPALLOCOMPJNOTICETHATISTHESIZEOFTHELEFTSUBTREEOFTHETHNODEINSYMMETRICORDEROFTHECORRESPONDINGBINARYTREEWECANALSOINTERPRETASTHESIZEOFTHERIGHTSUBTREEOFTHETHNODEINSYMMETRICORDEROFASUITABLEBINARYTREENAMELYTHEBINARYTREETHATCORRESPONDSTOTHEGIVENFORESTBYTHEDUALMETHODOFEXERCISEDUALBINREPTHERELATIONFORDEFINESANINTERESTINGLATTICEORDERINGOFFORESTSANDBINARYTREESFIRSTTAMARILATTICEINTRODUCEDINANOTHERWAYBYDTAMARITHESEPARISSEEEXERCISEROTATIONLATTICEREPRESENTATIONOFTREESTREESSEQUENTIALLYBASICMATHEMATICALPROPERTIESOFTREESTREESTRUCTURESHAVEBEENTHEOBJECTOFEXTENSIVEMATHEMATICALINVESTIGATIONSFORMANYYEARSLONGBEFORETHEADVENTOFCOMPUTERSANDMANYINTERESTINGFACTSHAVEBEENDISCOVEREDABOUTTHEMINTHISSECTIONWEWILLSURVEYTHEMATHEMATICALTHEORYOFTREESWHICHNOTONLYGIVESUSMOREINSIGHTINTOTHENATUREOFTREESTRUCTURESBUTALSOHASIMPORTANTAPPLICATIONSTOCOMPUTERALGORITHMSNONMATHEMATICALREADERSAREADVISEDTOSKIPTOSUBSECTIONWHICHDISCUSSESSEVERALTOPICSTHATARISEFREQUENTLYINTHEAPPLICATIONSWESHALLSTUDYLATERTHEMATERIALTHATFOLLOWSCOMESMOSTLYFROMALARGERAREAOFMATHEMATICSKNOWNASTHETHEORYOFGRAPHSUNFORTUNATELYTHEREWILLPROBABLYNEVERBEASTANDARDTERMINOLOGYINTHISFIELDANDSOTHEAUTHORHASFOLLOWEDTHEUSUALPRACTICEOFCONTEMPORARYBOOKSONGRAPHTHEORYNAMELYTOUSEWORDSTHATARESIMILARBUTNOTIDENTICALTOTHETERMSUSEDINANYOTHERBOOKSONGRAPHTHEORYANATTEMPTHASBEENMADEINTHEFOLLOWINGSUBSECTIONSANDINDEEDTHROUGHOUTTHISBOOKTOCHOOSESHORTDESCRIPTIVEWORDSFORTHEIMPORTANTCONCEPTSSELECTEDFROMTHOSETHATAREINREASONABLYCOMMONUSEANDTHATDONOTSHARPLYCONFLICTWITHOTHERCOMMONTERMINOLOGYTHENOMENCLATUREUSEDHEREISALSOBIASEDTOWARDSCOMPUTERAPPLICATIONSTHUSANELECTRICALENGINEERMAYPREFERTOCALLATREEWHATWECALLAFREETREEBUTWEWANTTHESHORTERTERMTREETOSTANDFORTHECONCEPTTHATISGENERALLYUSEDINTHECOMPUTERLITERATUREANDTHATISSOMUCHMOREIMPORTANTINCOMPUTERAPPLICATIONSIFWEWERETOFOLLOWTHETERMINOLOGYOFSOMEAUTHORSONGRAPHTHEORYWEWOULDHAVETOSAYFINITELABELEDROOTEDORDEREDTREEINSTEADOFJUSTTREEANDTOPOLOGICALBIFURCATINGARBORESCENCEINSTEADOFBINARYTREEFREETREESAGRAPHISGENERALLYDEFINEDTOBEASETOFPOINTSCALLEDVERTICESFREETREESGRAPHADJACENTVERTICESCONNECTEDGRAPHCYCLEINGRAPHTOGETHERWITHASETOFLINESCALLEDEDGESJOININGCERTAINPAIRSOFDISTINCTVERTICESTHEREISATMOSTONEEDGEJOININGANYPAIROFVERTICESTWOVERTICESARECALLEDADJACENTIFTHEREISANEDGEJOININGTHEMIFANDAREVERTICESANDIFWESAYTHATISAWALKOFLENGTHFROMTOIFISADJACENTTOFORANDTHEWALKISAPATHIFVERTICESAREDISTINCTITISACYCLEIFTHROUGHAREDISTINCTANDSOMETIMESWEARELESSPRECISEANDREFERTOACYCLEASAPATHFROMAVERTEXTOITSELFWEOFTENSPEAKOFASIMPLEPATHTOEMPHASIZETHEFACTTHATWERETALKINGABOUTAPATHINSTEADOFANARBITRARYWALKAGRAPHISCONNECTEDIFTHEREISAPATHBETWEENANYTWOVERTICESOFTHEGRAPHTHESEDEFINITIONSAREILLUSTRATEDINFIGAGRAPHWHICHSHOWSACONNECTEDGRAPHWITHFIVEVERTICESANDSIXEDGESVERTEXISADJACENTTOBUTNOTTOTHEREARETWOPATHSOFLENGTHTWOFROMTONAMELYANDTHEREARESEVERALCYCLESINCLUDINGAGRAPHFREETREEFIGAGRAPHPCFIGAFREETREEFIGPAGEAFREETREEORUNROOTEDTREEFIGFREETREEISDEFINEDTOBEAFREETREEDEFINEDCONNECTEDGRAPHWITHNOCYCLESTHISDEFINITIONAPPLIESTOINFINITEGRAPHSASWELLASTOFINITEONESALTHOUGHFORCOMPUTERAPPLICATIONSWENATURALLYAREMOSTCONCERNEDWITHFINITETREESTHEREAREMANYEQUIVALENTWAYSTODEFINEAFREETREESOMEOFTHEMAPPEARINTHEFOLLOWINGWELLKNOWNTHEOREMAFREETREETHEOREMTHEOREMAIFISAGRAPHTHEFOLLOWINGSTATEMENTSAREEQUIVALENTAISAFREETREEBISCONNECTEDBUTIFANYEDGEISDELETEDTHERESULTINGGRAPHISNOLONGERCONNECTEDCIFANDAREDISTINCTVERTICESOFTHEREISEXACTLYONESIMPLEPATHFROMTOFURTHERMOREIFISFINITECONTAININGEXACTLYVERTICESTHEFOLLOWINGSTATEMENTSAREALSOEQUIVALENTTOABANDCDCONTAINSNOCYCLESANDHASEDGESEISCONNECTEDANDHASEDGESAIMPLIESBFORIFTHEEDGEISDELETEDBUTISSTILLCONNECTEDTHEREMUSTBEASIMPLEPATHOFLENGTHTWOORMORESEEEXERCISEANDTHENWOULDBEACYCLEINBIMPLIESCFORTHEREISATLEASTONESIMPLEPATHFROMTOANDIFTHEREWERETWOSUCHPATHSANDWHEREANDWECOULDFINDTHESMALLESTFORWHICHDELETINGTHEEDGEWOULDNTDISCONNECTSINCETHEREWOULDSTILLBEAPATHFROMTOTHATAVOIDSTHEDELETEDEDGECIMPLIESAFORIFCONTAINSACYCLETHEREARETWOSIMPLEPATHSFROMTOTOSHOWTHATDANDEAREALSOEQUIVALENTTOABANDCLETUSFIRSTPROVEANAUXILIARYRESULTIFISANYFINITEGRAPHTHATHASNOCYCLESANDATLEASTONEEDGETHENTHEREISATLEASTONEVERTEXTHATISADJACENTTOEXACTLYONEOTHERVERTEXTHISFOLLOWSBECAUSEWECANFINDSOMEVERTEXANDANADJACENTVERTEXFOREITHERISADJACENTTOANDNOOTHERORITISADJACENTTOAVERTEXTHATWEMAYCALLSINCETHEREARENOCYCLESMUSTBEDISTINCTVERTICESSOTHISPROCESSMUSTULTIMATELYTERMINATENOWASSUMETHATISAFREETREEWITHVERTICESANDLETBEAVERTEXTHATISADJACENTTOONLYONEOTHERVERTEXNAMELYIFWEDELETEANDTHEEDGETHEREMAININGGRAPHISAFREETREESINCEAPPEARSINNOSIMPLEPATHOFEXCEPTASTHEFIRSTORTHELASTELEMENTTHISARGUMENTPROVESBYINDUCTIONONTHATHASEDGESHENCEAIMPLIESDASSUMETHATSATISFIESDANDLETBEASINTHEPRECEDINGPARAGRAPHTHENTHEGRAPHISCONNECTEDSINCEISCONNECTEDTOWHICHBYINDUCTIONONISCONNECTEDTOALLOTHERVERTICESOFTHUSDIMPLIESEFINALLYASSUMETHATSATISFIESEIFCONTAINSACYCLEWECANDELETEANYEDGEAPPEARINGINTHATCYCLEANDWOULDSTILLBECONNECTEDWECANTHEREFORECONTINUEDELETINGEDGESINTHISWAYUNTILWEOBTAINACONNECTEDGRAPHWITHEDGESANDNOCYCLESBUTSINCEAIMPLIESDWEMUSTHAVETHATISTHEIDEAOFAFREETREECANBEAPPLIEDDIRECTLYTOTHEANALYSISOFCOMPUTERALGORITHMSINSECTIONWEDISCUSSEDTHEAPPLICATIONOFKIRCHHOFFSKIRCHHOFFSLAWFLOWCHARTFIRSTLAWTOTHEPROBLEMOFCOUNTINGTHENUMBEROFTIMESEACHSTEPOFANALGORITHMISPERFORMEDWEFOUNDTHATKIRCHHOFFSLAWDOESNOTCOMPLETELYDETERMINETHENUMBEROFTIMESEACHSTEPISEXECUTEDBUTITREDUCESTHENUMBEROFUNKNOWNSTHATMUSTBESPECIALLYINTERPRETEDTHETHEORYOFTREESTELLSUSHOWMANYINDEPENDENTUNKNOWNSWILLREMAINANDITGIVESUSASYSTEMATICWAYTOFINDTHEMFLOWGRAPHFIGABSTRACTEDFLOWCHARTOFPROGRAMCYCLEMULTPROGITISEASIERTOUNDERSTANDTHEMETHODTHATFOLLOWSIFANEXAMPLEISSTUDIEDSOWEWILLWORKANEXAMPLEASTHETHEORYISBEINGDEVELOPEDFIGUREFLOWGRAPHSHOWSANABSTRACTEDFLOWCHARTFORPROGRAMCYCLEMULTPROGWHICHWASSUBJECTEDTOAKIRCHHOFFSLAWANALYSISINSECTIONEACHBOXINFIGFLOWGRAPHREPRESENTSPARTOFTHECOMPUTATIONANDTHELETTERORNUMBERINSIDETHEBOXDENOTESTHENUMBEROFTIMESTHATCOMPUTATIONWILLBEPERFORMEDDURINGONERUNOFTHEPROGRAMUSINGTHENOTATIONOFSECTIONANARROWBETWEENBOXESREPRESENTSAPOSSIBLEJUMPINTHEPROGRAMTHEARROWSHAVEBEENLABELEDOURGOALISTOFINDALLRELATIONSBETWEENTHEQUANTITIESANDTHATAREIMPLIEDBYKIRCHHOFFSLAWANDATTHESAMETIMEWEHOPETOGAINSOMEINSIGHTINTOTHEGENERALPROBLEMNOTESOMESIMPLIFICATIONSHAVEALREADYBEENMADEINFIGFLOWGRAPHFOREXAMPLETHEBOXBETWEENANDHASBEENLABELEDANDTHISINFACTISACONSEQUENCEOFKIRCHHOFFSLAWFLOWCHARTLETDENOTETHENUMBEROFTIMESBRANCHISTAKENDURINGTHEEXECUTIONOFTHEPROGRAMBEINGSTUDIEDKIRCHHOFFSLAWISFOREXAMPLEINTHECASEOFTHEBOXMARKEDWEHAVEINTHEDISCUSSIONTHATFOLLOWSWEWILLREGARDASTHEUNKNOWNSINSTEADOFTHEFLOWCHARTINFIGFLOWGRAPHMAYBEABSTRACTEDFURTHERSOTHATITBECOMESAGRAPHASINFIGCIRCFLOWGRAPHTHEBOXESHAVESHRUNKTOVERTICESANDTHEARROWSNOWREPRESENTEDGESOFTHEGRAPHAGRAPHSTRICTLYSPEAKINGHASNOIMPLIEDDIRECTIONINITSEDGESANDTHEDIRECTIONOFTHEARROWSSHOULDBEIGNOREDWHENWEREFERTOGRAPHTHEORETICALPROPERTIESOFOURAPPLICATIONTOKIRCHHOFFSLAWHOWEVERMAKESUSEOFTHEARROWSASWEWILLSEESHORTLYFORCONVENIENCEANEXTRAEDGEHASBEENDRAWNFROMTHESTOPVERTEXTOTHESTARTVERTEXSOTHATKIRCHHOFFSLAWAPPLIESUNIFORMLYTOALLPARTSOFTHEGRAPHFIGURECIRCFLOWGRAPHALSOINCLUDESSOMEOTHERMINORCHANGESFROMFIGFLOWGRAPHANEXTRAVERTEXANDEDGEHAVEBEENADDEDTODIVIDEINTOTWOPARTSANDSOTHATTHEBASICDEFINITIONOFAGRAPHNOTWOEDGESJOINTHESAMETWOVERTICESISVALIDHASALSOBEENSPLITUPINTHISWAYASIMILARMODIFICATIONWOULDHAVEBEENMADEIFWEHADANYVERTEXWITHANARROWLEADINGBACKTOITSELFCIRCFLOWGRAPHFIGGRAPHCORRESPONDINGTOFIGFLOWGRAPHINCLUDINGAFREESUBTREESOMEOFTHEEDGESINFIGCIRCFLOWGRAPHHAVEBEENDRAWNMUCHHEAVIERTHANTHEOTHERSTHESEEDGESFORMAFREESUBTREEOFTHEGRAPHCONNECTINGALLTHESPANNINGSUBTREEVERTICESITISALWAYSPOSSIBLETOFINDAFREESUBTREEOFTHEGRAPHSARISINGFROMFLOWCHARTSBECAUSETHEGRAPHSMUSTBECONNECTEDANDBYPARTBOFTHEOREMAIFISCONNECTEDANDNOTAFREETREEWECANDELETESOMEEDGEANDSTILLHAVETHERESULTINGGRAPHCONNECTEDTHISPROCESSCANBEITERATEDUNTILWEREACHAFREESUBTREEANOTHERALGORITHMFORFINDINGAFREESUBTREEAPPEARSINEXERCISEWECANINFACTALWAYSDISCARDTHEEDGEWHICHWENTFROMTHESTOPTOTHESTARTVERTEXFIRSTTHUSWEMAYASSUMETHATDOESNOTAPPEARINTHESUBTREECHOSENLETBEAFREESUBTREEOFTHEGRAPHFOUNDINTHISWAYANDCONSIDERANYEDGEOFTHATISNOTINWEMAYNOWNOTEANIMPORTANTCONSEQUENCEOFTHEOREMAPLUSTHISNEWEDGECONTAINSACYCLEANDINFACTTHEREISEXACTLYONECYCLEHAVINGTHEFORMSINCETHEREISAUNIQUESIMPLEPATHFROMTOINFOREXAMPLEIFISTHEFREESUBTREESHOWNINFIGCIRCFLOWGRAPHANDIFWEADDTHEEDGEWEOBTAINACYCLETHATGOESALONGANDTHENINTHEDIRECTIONOPPOSITETOTHEARROWSALONGANDTHISCYCLEMAYBEWRITTENALGEBRAICALLYASUSINGPLUSSIGNSANDMINUSSIGNSTOINDICATEWHETHERTHECYCLEGOESINTHEDIRECTIONOFTHEARROWSORNOTIFWECARRYOUTTHISPROCESSFOREACHEDGENOTINTHEFREESUBTREEWEOBTAINTHESOCALLEDFUNDAMENTALCYCLESWHICHINTHECASEOFFIGCIRCFLOWGRAPHAREOBVIOUSLYANEDGETHATISNOTINTHEFREESUBTREEWILLAPPEARINONLYONEOFTHEFUNDAMENTALCYCLESNAMELYWEARENOWAPPROACHINGTHECLIMAXOFTHISCONSTRUCTIONEACHFUNDAMENTALCYCLEREPRESENTSASOLUTIONTOKIRCHHOFFSEQUATIONSFOREXAMPLETHESOLUTIONCORRESPONDINGTOISTOLETANDALLOTHERSITISCLEARTHATFLOWAROUNDACYCLEINAGRAPHALWAYSSATISFIESTHECONDITIONOFKIRCHHOFFSLAWMOREOVERKIRCHHOFFSEQUATIONSAREHOMOGENEOUSSOTHESUMORDIFFERENCEOFSOLUTIONSTOYIELDSANOTHERSOLUTIONTHEREFOREWEMAYCONCLUDETHATTHEVALUESOFAREINDEPENDENTINTHEFOLLOWINGSENSESUCHASOLUTIONISFOUNDBYGOINGTIMESAROUNDTHECYCLETIMESAROUNDCYCLEETCFURTHERMOREWEFINDTHATTHEVALUESOFTHEREMAININGVARIABLESARECOMPLETELYDEPENDENTONTHEVALUESFORIFTHEREARETWOSOLUTIONSTOKIRCHHOFFSEQUATIONSSUCHTHATWECANSUBTRACTONEFROMTHEOTHERANDWETHEREBYOBTAINASOLUTIONINWHICHBUTNOWALLMUSTBEZEROFORITISEASYTOSEETHATANONZEROSOLUTIONTOKIRCHHOFFSEQUATIONSISIMPOSSIBLEWHENTHEGRAPHISAFREETREESEEEXERCISETHEREFORETHETWOASSUMEDSOLUTIONSMUSTBEIDENTICALWEHAVENOWPROVEDTHATALLSOLUTIONSOFKIRCHHOFFSEQUATIONSMAYBEOBTAINEDASSUMSOFMULTIPLESOFTHEFUNDAMENTALCYCLESWHENTHESEREMARKSAREAPPLIEDTOTHEGRAPHINFIGCIRCFLOWGRAPHWEOBTAINTHEFOLLOWINGGENERALSOLUTIONOFKIRCHHOFFSEQUATIONSINTERMSOFTHEINDEPENDENTVARIABLESTOOBTAINTHESEEQUATIONSWEMERELYLISTFOREACHEDGEINTHESUBTREEALLFORWHICHAPPEARSINCYCLEWITHTHEAPPROPRIATESIGNTHUSTHEMATRIXOFCOEFFICIENTSINISJUSTTHETRANSPOSEOFTHEMATRIXOFCOEFFICIENTSINSTRICTLYSPEAKINGSHOULDNOTBECALLEDAFUNDAMENTALCYCLESINCEITINVOLVESTHESPECIALEDGEWEMAYCALLMINUSTHEEDGEAFUNDAMENTALPATHFROMSTARTTOSTOPOURBOUNDARYCONDITIONTHATTHESTARTANDSTOPBOXESINTHEFLOWCHARTAREPERFORMEDEXACTLYONCEISEQUIVALENTTOTHERELATIONTHEPRECEDINGDISCUSSIONSHOWSHOWTOOBTAINALLSOLUTIONSTOKIRCHHOFFSLAWTHESAMEMETHODMAYBEAPPLIEDASKIRCHHOFFHIMSELFAPPLIEDITTOELECTRICALCIRCUITSINSTEADOFPROGRAMFLOWCHARTSITISNATURALTOASKATTHISPOINTWHETHERKIRCHHOFFSLAWISTHESTRONGESTPOSSIBLESETOFEQUATIONSTHATCANBEGIVENFORTHECASEOFPROGRAMFLOWCHARTSORWHETHERMORECANBESAIDANYEXECUTIONOFACOMPUTERPROGRAMTHATGOESFROMSTARTTOSTOPGIVESUSASETOFVALUESFORTHENUMBEROFTIMESEACHEDGEISTRAVERSEDANDTHESEVALUESOBEYKIRCHHOFFSLAWBUTARETHERESOLUTIONSTOKIRCHHOFFSEQUATIONSTHATDONOTCORRESPONDTOANYCOMPUTERPROGRAMEXECUTIONINTHISQUESTIONWEDONOTASSUMETHATWEKNOWANYTHINGABOUTTHEGIVENCOMPUTERPROGRAMEXCEPTITSFLOWCHARTIFTHEREARESOLUTIONSTHATMEETKIRCHHOFFSCONDITIONSBUTDONOTCORRESPONDTOACTUALPROGRAMEXECUTIONWECANGIVESTRONGERCONDITIONSTHANKIRCHHOFFSLAWFORTHECASEOFELECTRICALCIRCUITSKIRCHHOFFHIMSELFGAVEASECONDLAWANNPHYSIKUNDCHEMIETHESUMOFTHEVOLTAGEDROPSAROUNDAFUNDAMENTALCYCLEMUSTBEZEROTHISSECONDLAWDOESNOTAPPLYTOOURPROBLEMTHEREISINDEEDANOBVIOUSFURTHERCONDITIONTHATTHESMUSTSATISFYIFTHEYARETOCORRESPONDTOSOMEACTUALWALKINTHEFLOWCHARTFROMSTARTTOSTOPTHEYMUSTBEINTEGERSANDINFACTTHEYMUSTBENONNEGATIVEINTEGERSTHISISNOTATRIVIALCONDITIONSINCEWECANNOTSIMPLYASSIGNANYARBITRARYNONNEGATIVEINTEGERVALUESTOTHEINDEPENDENTVARIABLESFOREXAMPLEIFWETAKEANDWEFINDFROMANDTHATTHUSNOEXECUTIONOFTHEFLOWCHARTINFIGFLOWGRAPHWILLTAKEBRANCHTWICEWITHOUTTAKINGBRANCHATLEASTONCETHECONDITIONTHATALLTHESBENONNEGATIVEINTEGERSISNOTENOUGHEITHERFOREXAMPLECONSIDERTHESOLUTIONINWHICHTHEREISNOWAYTOGETTOEXCEPTVIATHEFOLLOWINGCONDITIONISANECESSARYANDSUFFICIENTCONDITIONTHATANSWERSTHEPROBLEMRAISEDINTHEPREVIOUSPARAGRAPHLETBEANYGIVENVALUESANDDETERMINEACCORDINGTOASSUMETHATALLTHESARENONNEGATIVEINTEGERSANDASSUMETHATTHEGRAPHWHOSEEDGESARETHOSEFORWHICHANDWHOSEVERTICESARETHOSETHATTOUCHSUCHISCONNECTEDTHENTHEREISAWALKFROMSTARTTOSTOPINWHICHEDGEISTRAVERSEDEXACTLYTIMESTHISFACTISPROVEDINTHENEXTSECTIONSEEEXERCISEKIRCHHOFFCONVERSELETUSNOWSUMMARIZETHEPRECEDINGDISCUSSIONKFUNDCYCLETHEOREMTHEOREMKIFAFLOWCHARTSUCHASFIGFLOWGRAPHCONTAINSBOXESINCLUDINGSTARTANDSTOPANDARROWSITISPOSSIBLETOFINDFUNDAMENTALCYCLESANDAFUNDAMENTALPATHFROMSTARTTOSTOPSUCHTHATANYWALKFROMSTARTTOSTOPISEQUIVALENTINTERMSOFTHENUMBEROFTIMESEACHEDGEISTRAVERSEDTOONETRAVERSALOFTHEFUNDAMENTALPATHPLUSAUNIQUELYDETERMINEDNUMBEROFTRAVERSALSOFEACHOFTHEFUNDAMENTALCYCLESTHEFUNDAMENTALPATHANDFUNDAMENTALCYCLESMAYINCLUDESOMEEDGESTHATARETOBETRAVERSEDINADIRECTIONOPPOSITETHATSHOWNBYTHEARROWONTHEEDGEWECONVENTIONALLYSAYTHATSUCHEDGESAREBEINGTRAVERSEDTIMESCONVERSELYFORANYTRAVERSALOFTHEFUNDAMENTALPATHANDTHEFUNDAMENTALCYCLESINWHICHTHETOTALNUMBEROFTIMESEACHEDGEISTRAVERSEDISNONNEGATIVEANDINWHICHTHEVERTICESANDEDGESCORRESPONDINGTOAPOSITIVENUMBEROFTRAVERSALSFORMACONNECTEDGRAPHTHEREISATLEASTONEEQUIVALENTWALKFROMSTARTTOSTOPTHEFUNDAMENTALCYCLESAREFOUNDBYPICKINGAFREESUBTREEASINFIGCIRCFLOWGRAPHIFWECHOOSEADIFFERENTSUBTREEWEGETINGENERALADIFFERENTSETOFFUNDAMENTALCYCLESTHEFACTTHATTHEREAREFUNDAMENTALCYCLESFOLLOWSFROMTHEOREMATHEMODIFICATIONSWEMADETOGETFROMFIGFLOWGRAPHTOFIGCIRCFLOWGRAPHAFTERADDINGDONOTCHANGETHEVALUEOFALTHOUGHTHEYMAYINCREASEBOTHANDTHECONSTRUCTIONCOULDHAVEBEENGENERALIZEDSOASTOAVOIDTHESETRIVIALMODIFICATIONSENTIRELYSEEEXERCISETHEOREMKISENCOURAGINGBECAUSEITSAYSTHATKIRCHHOFFSLAWWHICHCONSISTSOFEQUATIONSINTHEUNKNOWNSHASJUSTONEREDUNDANCYTHESEEQUATIONSALLOWUSTOELIMINATEUNKNOWNSHOWEVERTHEUNKNOWNVARIABLESTHROUGHOUTTHISDISCUSSIONHAVEBEENTHENUMBEROFTIMESTHEEDGESHAVEBEENTRAVERSEDNOTTHENUMBEROFTIMESEACHBOXOFTHEFLOWCHARTHASBEENENTEREDEXERCISESHOWSHOWTOCONSTRUCTANOTHERGRAPHWHOSEEDGESCORRESPONDTOTHEBOXESOFTHEFLOWCHARTSOTHATTHETHEORYABOVECANBEUSEDTODEDUCETHETRUENUMBEROFREDUNDANCIESBETWEENTHEVARIABLESOFINTERESTAPPLICATIONSOFTHEOREMKTOSOFTWAREFORMEASURINGTHEPERFORMANCEOFPROGRAMSINHIGHLEVELLANGUAGESAREDISCUSSEDBYTHOMASBALLANDJAMESRLARUSINACMTRANSPROGLANGUAGESANDSYSTEMSEXERCISESLISTALLCYCLESFROMTOTHATAREPRESENTINTHEGRAPHOFFIGAGRAPHPROVETHATIFANDAREVERTICESOFAGRAPHANDIFTHEREISAWALKFROMTOTHENTHEREISASIMPLEPATHFROMTOLETBEAWALKOFSMALLESTPOSSIBLELENGTHFROMTOIFNOWFORSOMETHENWOULDBEASHORTERWALKWHATWALKFROMSTARTTOSTOPISEQUIVALENTINTHESENSEOFTHEOREMKTOONETRAVERSALOFTHEFUNDAMENTALPATHPLUSONETRAVERSALOFCYCLEINFIGCIRCFLOWGRAPHTHEFUNDAMENTALPATHTRAVERSESANDONCEBUTCYCLETRAVERSESTHEMTIMESGIVINGANETTOTALOFZEROTRAVERSETHEFOLLOWINGEDGESMLETBEAFINITEFREETREEINWHICHARROWSHAVEBEENDRAWNONITSEDGESLETBENUMBERSSATISFYINGKIRCHHOFFSLAWINSHOWTHATIFNOTLETBETHESUBGRAPHOFOBTAINEDBYDELETINGEACHEDGEFORWHICHTHENISAFINITEGRAPHTHATHASNOCYCLESANDATLEASTONEEDGESOBYTHEPROOFOFTHEOREMATHEREISATLEASTONEVERTEXTHATISADJACENTTOEXACTLYONEOTHERVERTEXLETBETHEEDGEJOININGTOTHENKIRCHHOFFSEQUATIONATVERTEXISCONTRADICTINGTHEDEFINITIONOFUSINGEQSEXPRESSTHEQUANTITIESTHATAPPEARINSIDETHEBOXESOFFIGFLOWGRAPHINTERMSOFTHEINDEPENDENTVARIABLESNOTEINTHISCASEITISALSOPOSSIBLETOSOLVEFORINTERMSOFHENCETHEREARENINEINDEPENDENTSOLUTIONSEXPLAININGWHYWEELIMINATEDSIXVARIABLESINEQKIRCHKILLSSIXANYSPANNINGTREEMSUPPOSEAGRAPHHASVERTICESANDEDGESEACHEDGEISREPRESENTEDBYAPAIROFINTEGERSIFITJOINSTODESIGNANALGORITHMTHATTAKESTHEINPUTPAIRSANDPRINTSOUTASUBSETOFEDGESTHATFORMSAFREETREETHEALGORITHMREPORTSFAILUREIFTHISISIMPOSSIBLESTRIVEFORANEFFICIENTALGORITHMTHEFOLLOWINGSOLUTIONISBASEDONTHEIDEATHATWEMAYPRINTOUTEACHEDGETHATDOESNOTMAKEACYCLEWITHTHEPRECEDINGEDGESUSEALGORITHMEQUIVRELWITHEACHPAIRREPRESENTINGINTHEEQUIVALENCEALGORITHMNOTATIONOFTHATALGORITHMTHEONLYCHANGEISTOPRINTIFINSTEPETOSHOWTHATTHISALGORITHMISVALIDWEMUSTPROVETHATATHEALGORITHMPRINTSOUTNOEDGESTHATFORMACYCLEANDBIFCONTAINSATLEASTONEFREESUBTREETHEALGORITHMPRINTSOUTEDGESDEFINEIFTHEREEXISTSAPATHFROMTOORIFTHISISCLEARLYANEQUIVALENCERELATIONANDMOREOVERIFANDONLYIFTHISRELATIONCANBEDEDUCEDFROMTHEEQUIVALENCESNOWAHOLDSBECAUSETHEALGORITHMPRINTSOUTNOEDGESTHATFORMACYCLEWITHPREVIOUSLYPRINTEDEDGESBISTRUEBECAUSEKFORPRECISELYONEIFALLVERTICESAREEQUIVALENTAMOREEFFICIENTALGORITHMCANHOWEVERBEBASEDONDEPTHFIRSTSEARCHSEEALGORITHMEASYMARKANDSECTIONFLOWCHARTEXCARRYOUTTHECONSTRUCTIONINTHETEXTFORTHEFLOWCHARTUSINGTHEFREESUBTREECONSISTINGOFEDGESWHATARETHEFUNDAMENTALCYCLESEXPRESSINTERMSOFANDFUNDAMENTALCYCLESFUNDAMENTALPATHISTHEREFOREWEFINDMWHENAPPLYINGKIRCHHOFFSFIRSTLAWTOPROGRAMFLOWCHARTSWEUSUALLYAREINTERESTEDONLYINTHEVERTEXFLOWSTHENUMBEROFTIMESEACHBOXOFTHEFLOWCHARTISPERFORMEDNOTTHEEDGEFLOWSANALYZEDINTHETEXTFOREXAMPLEINTHEGRAPHOFEXERCISETHEVERTEXFLOWSAREIFWEGROUPSOMEVERTICESTOGETHERTREATINGTHEMASONESUPERVERTEXWECANCOMBINEEDGEFLOWSTHATCORRESPONDTOTHESAMEVERTEXFLOWFOREXAMPLEEDGESANDCANBECOMBINEDINTHEFLOWCHARTABOVEIFWEALSOPUTWITHHEREHASALSOBEENADDEDFROMSTOPTOSTARTASINTHETEXTCONTINUINGTHISPROCEDUREWECANCOMBINETHENTHENUNTILWEOBTAINTHEREDUCEDFLOWCHARTHAVINGEDGESPRECISELYONEEDGEFOREACHVERTEXINTHEORIGINALFLOWCHARTBYCONSTRUCTIONKIRCHHOFFSLAWHOLDSINTHISREDUCEDFLOWCHARTTHENEWEDGEFLOWSARETHEVERTEXFLOWSOFTHEORIGINALHENCETHEANALYSISINTHETEXTAPPLIEDTOTHEREDUCEDFLOWCHARTSHOWSHOWTHEORIGINALVERTEXFLOWSDEPENDONEACHOTHERPROVETHATTHISREDUCTIONPROCESSCANBEREVERSEDINTHESENSETHATANYSETOFFLOWSSATISFYINGKIRCHHOFFSLAWINTHEREDUCEDFLOWCHARTCANBESPLITUPINTOASETOFEDGEFLOWSINTHEORIGINALFLOWCHARTTHESEFLOWSSATISFYKIRCHHOFFSLAWANDCOMBINETOYIELDTHEGIVENFLOWSSOMEOFTHEMMIGHTHOWEVERBENEGATIVEALTHOUGHTHEREDUCTIONPROCEDUREHASBEENILLUSTRATEDHEREFORONLYONEPARTICULARFLOWCHARTYOURPROOFSHOULDBEVALIDINGENERALEACHSTEPINTHEREDUCTIONPROCESSCOMBINESTWOARROWSANDTHATSTARTATTHESAMEBOXANDITSUFFICESTOPROVETHATSUCHSTEPSCANBEREVERSEDTHUSWEAREGIVENTHEVALUEOFAFTERCOMBINATIONANDWEMUSTASSIGNCONSISTENTVALUESTOANDBEFORETHECOMBINATIONTHEREARETHREEESSENTIALLYDIFFERENTSITUATIONSHEREANDSTANDFORVERTICESORSUPERVERTICESANDTHESANDSSTANDFORTHEOTHERGIVENFLOWSBESIDESTHESEFLOWSMAYEACHBEDISTRIBUTEDAMONGSEVERALEDGESALTHOUGHONLYONEISSHOWNINCASEANDLEADTOTHESAMEBOXWEMAYCHOOSEARBITRARILYTHENINCASEANDLEADTODIFFERENTBOXESWEMUSTSETINCASEISALOOPBUTISNOTWEMUSTSETINEACHCASEWEHAVEREVERSEDTHECOMBINATIONSTEPASDESIREDTHERESULTOFTHISEXERCISEESSENTIALLYPROVESTHATTHENUMBEROFFUNDAMENTALCYCLESINTHEREDUCEDFLOWCHARTISTHEMINIMUMNUMBEROFVERTEXFLOWSTHATMUSTBEMEASUREDTODETERMINEALLTHEOTHERSINTHEGIVENEXAMPLETHEREDUCEDFLOWCHARTREVEALSTHATONLYTHREEVERTEXFLOWSEGNEEDTOBEMEASUREDWHILETHEORIGINALCHARTOFEXERCISEHASFOURINDEPENDENTEDGEFLOWSTHEUNITFLOWINNEEDNTBEMEASUREDWESAVEONEMEASUREMENTEVERYTIMECASEOCCURSDURINGTHEREDUCTIONASIMILARREDUCTIONPROCEDURECOULDBEBASEDONCOMBININGTHEARROWSFLOWINGINTOAGIVENBOXINSTEADOFTHOSEFLOWINGOUTITCANBESHOWNTHATTHISWOULDYIELDTHESAMEREDUCEDFLOWCHARTEXCEPTTHATTHESUPERVERTICESWOULDCONTAINDIFFERENTNAMESTHECONSTRUCTIONINTHISEXERCISEISBASEDONIDEASDUETOARMENNAHAPETIANANDFSTEVENSONFORFURTHERCOMMENTSSEEANAHAPETIANACTAINFORMATICADEKNUTHANDFSTEVENSONBITMEDGESANDWERESPLITINTOTWOPARTSINFIGCIRCFLOWGRAPHSINCEAGRAPHISNOTSUPPOSEDTOHAVETWOEDGESJOININGTHESAMETWOVERTICESHOWEVERIFWELOOKATTHEFINALRESULTOFTHECONSTRUCTIONTHISSPLITTINGINTOTWOPARTSSEEMSQUITEARTIFICIALSINCEANDARETWOOFTHERELATIONSFOUNDINWHILEANDARETWOOFTHEINDEPENDENTVARIABLESEXPLAINHOWTHECONSTRUCTIONCOULDBEGENERALIZEDSOTHATANARTIFICIALSPLITTINGOFEDGESMAYBEAVOIDEDKIRCHHOFFSLAWEACHEDGEFROMAVERTEXTOITSELFBECOMESAFUNDAMENTALCYCLEALLBYITSELFIFTHEREAREEDGESBETWEENVERTICESANDMAKEFUNDAMENTALCYCLESCHOOSINGORACCORDINGASTHEEDGESGOINTHEOPPOSITEORTHESAMEDIRECTIONANDTHENPROCEEDASIFONLYEDGEWEREPRESENTACTUALLYTHISSITUATIONWOULDBEMUCHSIMPLERCONCEPTUALLYIFWEHADDEFINEDAGRAPHINSUCHAWAYTHATMULTIPLEEDGESAREALLOWEDBETWEENVERTICESANDEDGESAREALLOWEDFROMAVERTEXTOITSELFPATHSANDCYCLESWOULDBEDEFINEDINTERMSOFEDGESINSTEADOFVERTICESSUCHADEFINITIONISINFACTMADEFORDIRECTEDGRAPHSINSECTIONANELECTRICALENGINEERDESIGNINGTHECIRCUITRYFORACOMPUTERHASTERMINALSTHATSHOULDBEATESSENTIALLYTHESAMEVOLTAGEATALLTIMESTOACHIEVETHISTHEENGINEERCANSOLDERWIRESBETWEENANYPAIRSOFTERMINALSTHEIDEAISTOMAKEENOUGHWIRECONNECTIONSSOTHATTHEREISAPATHTHROUGHTHEWIRESFROMANYTERMINALTOANYOTHERSHOWTHATTHEMINIMUMNUMBEROFWIRESNEEDEDTOCONNECTALLTHETERMINALSISANDWIRESACHIEVETHEDESIREDCONNECTIONIFANDONLYIFTHEYFORMAFREETREEWITHTERMINALSANDWIRESSTANDINGFORVERTICESANDEDGESIFTHETERMINALSHAVEALLBEENCONNECTEDTOGETHERTHECORRESPONDINGGRAPHMUSTBECONNECTEDINTHETECHNICALSENSEAMINIMUMNUMBEROFWIRESWILLINVOLVENOCYCLESSOWEMUSTHAVEAFREETREEBYTHEOREMAAFREETREECONTAINSWIRESANDAGRAPHWITHVERTICESANDEDGESISAFREETREEIFANDONLYIFITISCONNECTEDPRIMALGMRCPRIMBELLSYSTEMTECHJCONSIDERTHEWIRECONNECTIONPROBLEMOFEXERCISEWITHTHEADDITIONALPROVISOTHATACOSTISGIVENFOREACHDENOTINGTHEEXPENSEOFWIRINGTERMINALTOTERMINALSHOWTHATTHEFOLLOWINGALGORITHMGIVESACONNECTIONTREEOFMINIMUMCOSTIFDONOTHINGOTHERWISERENUMBERTERMINALSANDTHEASSOCIATEDCOSTSSOTHATCONNECTTERMINALTOTHENCHANGETOFORANDREPEATTHEALGORITHMFORTERMINALSUSINGTHESENEWCOSTSTHEALGORITHMISTOBEREPEATEDWITHTHEUNDERSTANDINGTHATWHENEVERACONNECTIONISSUBSEQUENTLYREQUESTEDBETWEENTHETERMINALSNOWCALLEDANDTHECONNECTIONISACTUALLYMADEBETWEENTERMINALSNOWCALLEDANDIFITISCHEAPERTHUSANDAREBEINGREGARDEDASTHOUGHTHEYWEREONETERMINALINTHEREMAINDEROFTHEALGORITHMTHISALGORITHMMAYALSOBESTATEDASFOLLOWSCHOOSEAPARTICULARTERMINALTOSTARTWITHTHENREPEATEDLYMAKETHECHEAPESTPOSSIBLECONNECTIONFROMANUNCHOSENTERMINALTOACHOSENONEUNTILALLHAVEBEENCHOSENMINIMUMSPANNINGTREEMINIMUMWIRELENGTHFIGFIGFREETREEOFMINIMUMCOSTSEEEXERCISEINAINBFOREXAMPLECONSIDERFIGFIGAWHICHSHOWSNINETERMINALSONAGRIDLETTHECOSTOFCONNECTINGTWOTERMINALSBETHEWIRELENGTHNAMELYTHEDISTANCEBETWEENTHEMTHEREADERMAYWISHTOTRYTOFINDAMINIMALCOSTTREEBYHANDUSINGINTUITIONINSTEADOFTHESUGGESTEDALGORITHMTHEALGORITHMWOULDFIRSTCONNECTTOTHENTOTOTOTOTOTOANDFINALLYTOEITHERORAMINIMUMCOSTTREEWIRELENGTHISSHOWNINFIGFIGBITISSUFFICIENTTOPROVETHATWHENANDISTHEMINIMUMOFTHETHEREEXISTSATLEASTONEMINIMUMCOSTTREEINWHICHISWIREDTOFORANYMINIMUMCOSTTREEWITHTERMINALSANDWITHWIREDTOMUSTALSOBEAMINIMUMCOSTTREEWITHTERMINALSIFWEREGARDANDASCOMMONUSINGTHECONVENTIONSTATEDINTHEALGORITHMTOPROVETHESTATEMENTABOVESUPPOSEWEHAVEAMINIMUMCOSTTREEINWHICHISNOTWIREDTOIFWEADDTHEWIREWEOBTAINACYCLEANDANYOFTHEOTHERWIRESINTHATCYCLEMAYBEREMOVEDREMOVINGTHEOTHERWIRETOUCHINGGIVESUSANOTHERTREEWHOSETOTALCOSTISNOTGREATERTHANTHEORIGINALANDAPPEARSINTHATTREETHEALGORITHMOFEXERCISEISNOTSTATEDINAFASHIONSUITABLEFORDIRECTCOMPUTERIMPLEMENTATIONREFORMULATETHATALGORITHMSPECIFYINGINMOREDETAILTHEOPERATIONSTHATARETOBEDONEINSUCHAWAYTHATACOMPUTERPROGRAMCANCARRYOUTTHEPROCESSWITHREASONABLEEFFICIENCYKEEPTWOAUXILIARYTABLESANDFORREPRESENTINGTHEFACTTHATTHECHEAPESTCONNECTIONFROMTOACHOSENTERMINALISTOANDITSCOSTISINITIALLYANDTHENDOTHEFOLLOWINGOPERATIONTIMESFINDSUCHTHATCONNECTTOFORIFSETANDANDSETHEREMEANSWHENITISSOMEWHATMOREEFFICIENTTOAVOIDTHEUSEOFKEEPINGINSTEADAONEWAYLINKEDLISTOFTHOSETHATHAVENOTYETBEENCHOSENWITHORWITHOUTTHISSTRAIGHTFORWARDIMPROVEMENTTHEALGORITHMTAKESOPERATIONSSEEALSOEWDIJKSTRAPROCNEDERLAKADWETENSCHADEKNUTHTHESTANFORDGRAPHBASENEWYORKACMPRESSSIGNIFICANTLYBETTERALGORITHMSTOFINDAMINIMUMCOSTSPANNINGTREEAREDISCUSSEDINSECTIONMCONSIDERAGRAPHWITHVERTICESANDEDGESINTHENOTATIONOFEXERCISESHOWTHATITISPOSSIBLETOWRITEANYPERMUTATIONOFTHEINTEGERSASAPRODUCTOFTRANSPOSITIONSIFANDONLYIFTHEGRAPHISCONNECTEDHENCETHEREARESETSOFTRANSPOSITIONSTHATGENERATEALLPERMUTATIONSONELEMENTSBUTNOSETOFWILLDOSOMULTIPLICATIONOFPERMUTATIONSIFTHEREISNOPATHFROMTOFORSOMETHENNOPRODUCTOFTHETRANSPOSITIONSWILLMOVETOSOIFALLPERMUTATIONSAREGENERATEDTHEGRAPHMUSTBECONNECTEDCONVERSELYIFITISCONNECTEDREMOVEEDGESIFNECESSARYUNTILWEHAVEAFREETREETHENRENUMBERTHEVERTICESSOTHATISADJACENTTOONLYONEOTHERVERTEXNAMELYSEETHEPROOFOFTHEOREMANOWTHETRANSPOSITIONSOTHERTHANFORMAFREETREEWITHVERTICESSOBYINDUCTIONIFISANYPERMUTATIONOFTHATLEAVESFIXEDCANBEWRITTENASAPRODUCTOFTHOSETRANSPOSITIONSIFMOVESTOTHENFIXESHENCECANBEWRITTENASAPRODUCTOFTHEGIVENTRANSPOSITIONSFREETREESORIENTEDTREESINTHEPREVIOUSSECTIONWEORIENTEDTREESDIRECTEDGRAPHSSAWTHATANABSTRACTEDFLOWCHARTMAYBEREGARDEDASAGRAPHIFWEIGNORETHEDIRECTIONOFTHEARROWSONITSEDGESTHEGRAPHTHEORETICIDEASOFCYCLEFREESUBTREEETCWERESHOWNTOBERELEVANTINTHESTUDYOFFLOWCHARTSTHEREISAGOODDEALMORETHATCANBESAIDWHENTHEDIRECTIONOFEACHEDGEISGIVENMORESIGNIFICANCEANDINTHISCASEWEHAVEWHATISCALLEDADIRECTEDGRAPHORDIGRAPHLETUSDEFINEADIRECTEDGRAPHFORMALLYASASETOFVERTICESANDASETOFARCSEACHARCLEADINGFROMAVERTEXTOAVERTEXIFISANARCFROMTOWESAYISTHEINITIALINITIALVERTEXFINALVERTEXVERTEXOFANDISTHEFINALVERTEXANDWEWRITETHECASETHATISNOTEXCLUDEDALTHOUGHITWASEXCLUDEDFROMTHEDEFINITIONOFEDGEINANORDINARYGRAPHANDSEVERALDIFFERENTARCSMAYHAVETHESAMEINITIALANDFINALVERTICESTHEOUTDEGREEOFAVERTEXISTHENUMBEROFARCSLEADINGOUTFROMITNAMELYTHENUMBEROFARCSSUCHTHATSIMILARLYTHEINDEGREEOFISDEFINEDTOBETHENUMBEROFARCSWITHTHECONCEPTSOFPATHSANDCYCLESAREDEFINEDFORDIRECTEDGRAPHSINAMANNERSIMILARTOTHECORRESPONDINGDEFINITIONSFORORDINARYGRAPHSBUTSOMEIMPORTANTNEWTECHNICALITIESMUSTBECONSIDEREDIFAREARCSWITHWESAYTHATISANORIENTEDWALKOFLENGTHFROMTOIFANDFORANORIENTEDWALKISCALLEDSIMPLEIFSIMPLEORIENTEDPATHAREDISTINCTANDAREDISTINCTSUCHAWALKISANORIENTEDCYCLEIFOTHERWISEITSANORIENTEDPATHANORIENTEDCYCLECANHAVELENGTHORBUTSUCHSHORTCYCLESWEREEXCLUDEDFROMOURDEFINITIONOFCYCLEINTHEPREVIOUSSECTIONCANTHEREADERSEEWHYTHISMAKESSENSEASEXAMPLESOFTHESESTRAIGHTFORWARDDEFINITIONSWEMAYREFERTOFIGFLOWGRAPHINTHEPREVIOUSSECTIONTHEBOXLABELEDISAVERTEXWITHINDEGREEBECAUSEOFTHEARCSANDOUTDEGREETHESEQUENCEISANORIENTEDWALKOFLENGTHFROMTOTHISWALKISNOTSIMPLESINCEFOREXAMPLETHEDIAGRAMCONTAINSNOORIENTEDCYCLESOFLENGTHBUTISANORIENTEDCYCLEOFLENGTHADIRECTEDGRAPHISSAIDTOBESTRONGLYCONNECTEDIFTHEREISANORIENTEDPATHFROMTOFORANYTWOVERTICESITISSAIDTOBEROOTEDIFTHEREISATLEASTONEROOTTHATISATLEASTONEVERTEXSUCHTHATTHEREISANORIENTEDPATHFROMTOROOTOFDIGRAPHFORALLSTRONGLYCONNECTEDALWAYSIMPLIESROOTEDBUTTHECONVERSEDOESNOTHOLDAFLOWCHARTSUCHASFIGFLOWGRAPHINTHEPREVIOUSSECTIONISANEXAMPLEOFAROOTEDDIGRAPHWITHTHESTOPVERTEXWITHTHEADDITIONALARCFROMSTOPTOSTARTFIGCIRCFLOWGRAPHITBECOMESSTRONGLYCONNECTEDEVERYDIRECTEDGRAPHCORRESPONDSINANOBVIOUSMANNERTOANORDINARYGRAPHIFWEIGNOREORIENTATIONSANDDISCARDDUPLICATEEDGESORLOOPSFORMALLYSPEAKINGHASANEDGEFROMTOIFANDONLYIFANDHASANARCFROMTOORFROMTOWECANSPEAKOFUNORIENTEDPATHSANDCYCLESINWITHTHEUNDERSTANDINGTHATTHESEAREPATHSANDCYCLESOFWECANSAYTHATISCONNECTEDTHISISAMUCHWEAKERPROPERTYTHANSTRONGLYCONNECTEDEVENWEAKERTHANROOTEDIFTHECORRESPONDINGGRAPHISCONNECTEDGRAPHANORIENTEDTREESEEFIGFIGSOMETIMESCALLEDAROOTEDTREEBYORIENTEDTREEDEFINEDOTHERAUTHORSISADIRECTEDGRAPHWITHASPECIFIEDVERTEXSUCHTHATAEACHVERTEXISTHEINITIALVERTEXOFEXACTLYONEARCDENOTEDBYBISTHEINITIALVERTEXOFNOARCCISAROOTINTHESENSEDEFINEDABOVETHATISFOREACHVERTEXTHEREISANORIENTEDPATHFROMTOITFOLLOWSIMMEDIATELYTHATFOREACHVERTEXTHEREISAUNIQUEORIENTEDPATHFROMTOANDHENCETHEREARENOORIENTEDCYCLESFIGFIGANORIENTEDTREEOURPREVIOUSDEFINITIONOFORIENTEDTREEATTHEBEGINNINGOFSECTIONISEASILYSEENTOBECOMPATIBLEWITHTHENEWDEFINITIONJUSTGIVENWHENTHEREAREFINITELYMANYVERTICESTHEVERTICESCORRESPONDTONODESANDTHEARCISTHELINKFROMTOPARENTPARENTLINKTHEUNDIRECTEDGRAPHCORRESPONDINGTOANORIENTEDTREEISCONNECTEDBECAUSEOFPROPERTYCFURTHERMOREITHASNOCYCLESFORIFISANUNDIRECTEDCYCLEWITHANDIFTHEEDGEBETWEENANDISTHENTHEEDGEBETWEENANDMUSTBEANDSIMILARLYTHEEDGEBETWEENANDMUSTBEFORCONTRADICTINGTHEABSENCEOFORIENTEDCYCLESIFTHEEDGEBETWEENANDISNOTITMUSTBEANDTHESAMEARGUMENTAPPLIESTOTHECYCLEBECAUSETHEREFOREANORIENTEDTREEISAFREETREEWHENTHEDIRECTIONOFTHEARCSISNEGLECTEDCONVERSELYITISIMPORTANTTONOTETHATWECANREVERSETHEPROCESSJUSTDESCRIBEDIFWESTARTWITHANYNONEMPTYFREETREESUCHASTHATINFIGFREETREEWECANCHOOSEANYVERTEXASTHEROOTANDASSIGNDIRECTIONSTOTHEEDGESTHEINTUITIVEIDEAISTOPICKUPTHEGRAPHATVERTEXROOTINGAFREETREEANDSHAKEITTHENASSIGNUPWARDPOINTINGARROWSMOREFORMALLYTHERULEISTHISCHANGETHEEDGETOANARCFROMTOIFANDONLYIFTHESIMPLEPATHFROMTOLEADSTHROUGHTHATISIFITHASTHEFORMWHERETOVERIFYTHATSUCHACONSTRUCTIONISVALIDWENEEDTOPROVETHATEACHEDGEISASSIGNEDTHEDIRECTIONORTHEDIRECTIONANDTHISISEASYTOPROVEFORIFANDARESIMPLEPATHSTHEREISACYCLEUNLESSORTHISCONSTRUCTIONDEMONSTRATESTHATTHEDIRECTIONSOFTHEARCSINANORIENTEDTREEARECOMPLETELYDETERMINEDIFWEKNOWWHICHVERTEXISTHEROOTSOTHEYNEEDNOTBESHOWNINDIAGRAMSWHENTHEROOTISEXPLICITLYINDICATEDFIGFIGTHREETREESTRUCTURESWENOWSEETHERELATIONBETWEENTHREETYPESOFTREESTHEORDEREDORDEREDTREESTREESCOMPARISONOFTYPESTREEWHICHISOFPRINCIPALIMPORTANCEINCOMPUTERPROGRAMSASDEFINEDATTHEBEGINNINGOFSECTIONTHEORIENTEDTREEORUNORDEREDTREEANDTHEFREETREEBOTHOFTHELATTERTWOTYPESARISEINTHESTUDYOFCOMPUTERALGORITHMSBUTNOTASOFTENASTHEFIRSTTYPETHEESSENTIALDISTINCTIONBETWEENTHESETYPESOFTREESTRUCTUREISMERELYTHEAMOUNTOFINFORMATIONTHATISTAKENTOBERELEVANTFOREXAMPLEFIGFIGSHOWSTHREETREESTHATAREDISTINCTIFTHEYARECONSIDEREDASORDEREDTREESWITHROOTATTHETOPASORIENTEDTREESTHEFIRSTANDSECONDAREIDENTICALSINCETHELEFTTORIGHTORDEROFSUBTREESISIMMATERIALASFREETREESALLTHREEGRAPHSINFIGFIGAREIDENTICALSINCETHEROOTISIMMATERIALANEULERIANTRAILINADIRECTEDGRAPHISANORIENTEDWALKEULERIANTRAILSUCHTHATEVERYARCINTHEDIRECTEDGRAPHOCCURSEXACTLYONCEANDTHISISACOMPLETETRAVERSALOFTHEARCSOFTHEDIGRAPHEULERIANTRAILSGETTHEIRNAMEFROMLEONHARDEULERSFAMOUSDISCUSSIONINOFTHEIMPOSSIBILITYOFTRAVERSINGEACHOFTHESEVENBRIDGESINTHECITYOFKONIGSBERGEXACTLYONCEDURINGASUNDAYSTROLLHETREATEDTHEANALOGOUSPROBLEMFORUNDIRECTEDGRAPHSEULERIANTRAILSSHOULDBEDISTINGUISHEDFROMHAMILTONIANCYCLESWHICHAREORIENTEDCYCLESTHATENCOUNTEREACHVERTEXEXACTLYONCESEECHAPTERADIRECTEDGRAPHISSAIDTOBEBALANCEDSEEFIGFIGIFEVERYVERTEXBALANCEDDIGRAPHHASTHESAMEINDEGREEASITSOUTDEGREETHATISIFTHEREAREJUSTASMANYEDGESWITHASTHEIRINITIALVERTEXASTHEREAREWITHASTHEIRFINALVERTEXTHISCONDITIONISCLOSELYRELATEDTOKIRCHHOFFSLAWSEEEXERCISEIFADIRECTEDGRAPHHASANEULERIANTRAILITMUSTOBVIOUSLYBECONNECTEDANDBALANCEDUNLESSITHASISOLATEDVERTICESWHICHAREVERTICESWITHINDEGREEANDOUTDEGREEBOTHEQUALTOZEROSOFARINTHISSECTIONWEVELOOKEDATQUITEAFEWDEFINITIONSDIRECTEDGRAPHARCINITIALVERTEXFINALVERTEXOUTDEGREEINDEGREEORIENTEDWALKORIENTEDPATHORIENTEDCYCLEORIENTEDTREEEULERIANTRAILISOLATEDVERTEXANDTHEPROPERTIESOFBEINGSTRONGLYCONNECTEDROOTEDANDBALANCEDBUTTHEREHASBEENASCARCITYOFIMPORTANTRESULTSCONNECTINGTHESECONCEPTSNOWWEAREREADYFORMEATIERMATERIALTHEFIRSTBASICRESULTISATHEOREMDUETOIJGOODJLONDONMATHSOCWHOSHOWEDTHATEULERIANTRAILSAREALWAYSPOSSIBLEUNLESSTHEYAREOBVIOUSLYIMPOSSIBLEDIRECTEDGRAPHSFIGFIGABALANCEDDIRECTEDGRAPHGEULERIANCKTTHEOREMGAFINITEDIRECTEDGRAPHWITHNOISOLATEDVERTICESPOSSESSESANEULERIANTRAILIFANDONLYIFITISCONNECTEDANDBALANCEDASSUMETHATISBALANCEDANDLETBALANCEDDIGRAPHBEANORIENTEDWALKOFLONGESTPOSSIBLELENGTHTHATUSESNOARCTWICETHENIFANDIFISTHEOUTDEGREEOFALLARCSWITHMUSTALREADYAPPEARINOTHERWISEWECOULDADDANDGETALONGERWALKBUTIFANDTHENHENCESINCEISBALANCEDWEMUSTHAVEOTHERWISETHEINDEGREEOFWOULDBEATLEASTNOWBYTHECYCLICPERMUTATIONOFITFOLLOWSTHATANYARCNOTINTHEWALKHASNEITHERINITIALNORFINALVERTEXINCOMMONWITHANYARCINTHEWALKSOIFISNOTANEULERIANTRAILISNOTCONNECTEDTHEREISANIMPORTANTCONNECTIONBETWEENEULERIANTRAILSANDORIENTEDTREESELASTEXITSLEMMAELETBEANEULERIANTRAILOFADIRECTEDGRAPHHAVINGNOISOLATEDVERTICESLETFOREACHVERTEXLETBETHELASTEXITFROMINTHETRAILTHATISTHENTHEVERTICESOFWITHTHEARCSFORMANORIENTEDTREEWITHROOTPROPERTIESAANDBOFTHEDEFINITIONOFORIENTEDTREEAREEVIDENTLYSATISFIEDBYEXERCISEWENEEDONLYSHOWTHATTHEREARENOORIENTEDCYCLESAMONGTHEBUTTHISISIMMEDIATESINCEIFWHEREANDTHENTHISLEMMACANPERHAPSBEBETTERUNDERSTOODIFWETURNTHINGSAROUNDANDCONSIDERTHEFIRSTENTRANCESTOEACHVERTEXTHEFIRSTENTRANCESFORMANUNORDEREDTREEWITHALLARCSPOINTINGAWAYFROMLEMMAEHASASURPRISINGANDIMPORTANTCONVERSEPROVEDBYTVANAARDENNEEHRENFESTANDNGDEBRUIJNSIMONSTEVINDEULERIANCKTCHARTHEOREMDLETBEAFINITEBALANCEDDIRECTEDGRAPHANDLETBEANORIENTEDTREECONSISTINGOFTHEVERTICESOFPLUSSOMEOFTHEARCSOFLETBETHEROOTOFANDLETBETHEARCOFWITHINITIALVERTEXLETBEANYARCOFWITHTHENISANEULERIANTRAILIFITISANORIENTEDWALKFORWHICHINOARCISUSEDMORETHANONCETHATISWHENIIISNOTUSEDINUNLESSITISTHEONLYCHOICECONSISTENTWITHRULEITHATISIFANDIFISANARCWITHTHENFORSOMEIIITERMINATESONLYWHENITCANNOTBECONTINUEDBYRULEITHATISIFTHENFORSOMEBYIIIANDTHEARGUMENTINTHEPROOFOFTHEOREMGWEMUSTHAVENOWIFISANARCNOTAPPEARINGINLETSINCEISBALANCEDITFOLLOWSTHATISTHEINITIALVERTEXOFSOMEARCNOTINANDIFCONDITIONIITELLSUSTHATISNOTINNOWUSETHESAMEARGUMENTWITHANDWEULTIMATELYFINDTHATISTHEINITIALVERTEXOFSOMEARCNOTINTHEWALKCONTRADICTINGIIITHEESSENCEOFTHEOREMDISTHATITSHOWSUSASIMPLEWAYTOCONSTRUCTANEULERIANTRAILINABALANCEDDIRECTEDGRAPHGIVENANYEULERIANTRAILORIENTEDSUBTREEOFTHEGRAPHSEETHEEXAMPLEINEXERCISEINFACTTHEOREMDALLOWSUSTOCOUNTTHEEXACTNUMBEROFEULERIANTRAILSINADIRECTEDGRAPHTHISRESULTANDMANYOTHERIMPORTANTCONSEQUENCESOFTHEIDEASDEVELOPEDINTHISSECTIONAPPEARINTHEEXERCISESTHATFOLLOWEXERCISESMPROVETHATIFANDAREVERTICESOFADIRECTEDGRAPHANDIFTHEREISANORIENTEDWALKFROMTOTHENTHEREISASIMPLEORIENTEDPATHFROMTOLETBEANORIENTEDWALKOFSMALLESTPOSSIBLELENGTHFROMTOIFNOWINITINITFORWOULDBEASHORTERWALKASIMILARARGUMENTAPPLIESIFFINFINFORHENCEISSIMPLEWHICHOFTHETENFUNDAMENTALCYCLESLISTEDINFUNDCYCLEEXOFSECTIONAREORIENTEDCYCLESINTHEDIRECTEDGRAPHFIGCIRCFLOWGRAPHOFTHATSECTIONTHOSECYCLESINWHICHALLSIGNSARETHESAMEDRAWTHEDIAGRAMFORADIRECTEDGRAPHTHATISCONNECTEDBUTNOTROOTEDFOREXAMPLEUSETHREEVERTICESWITHARCSFROMTOANDTOMTHECONCEPTOFTOPOLOGICALSORTINGCANBEDEFINEDFORANYFINITEDIRECTEDGRAPHASALINEARARRANGEMENTOFTHEVERTICESSUCHTHATPRECEDESFININTHEORDERINGFORALLARCSOFSEESECTIONFIGSEXAMPLEPOSETFIGANDSORTEDPOSETFIGNOTALLFINITEDIRECTEDGRAPHSCANBETOPOLOGICALLYSORTEDWHICHONESCANBEUSETHETERMINOLOGYOFTHISSECTIONTOGIVETHEANSWERIFTHEREARENOORIENTEDCYCLESALGORITHMTOPSORTALGTOPOLOGICALLYSORTSIFTHEREISANORIENTEDCYCLETOPOLOGICALSORTINGISCLEARLYIMPOSSIBLEDEPENDINGONHOWTHISEXERCISEISINTERPRETEDORIENTEDCYCLESOFLENGTHCOULDBEEXCLUDEDFROMCONSIDERATIONMLETBEADIRECTEDGRAPHTHATCONTAINSANORIENTEDWALKWITHGIVEAPROOFTHATISNOTANORIENTEDTREEUSINGTHETERMINOLOGYDEFINEDINTHISSECTIONLETBETHESMALLESTINTEGERSUCHTHATFININITFORSOMETHENISANORIENTEDCYCLEMTRUEORFALSEADIRECTEDGRAPHTHATISROOTEDANDCONTAINSNOCYCLESANDNOORIENTEDCYCLESISANORIENTEDTREEFALSEONATECHNICALITYJUSTBECAUSETHEREMAYBESEVERALDIFFERENTARCSFROMONEVERTEXTOANOTHERACYCLICMAKESDITREEMTRUEORFALSEADIRECTEDGRAPHSATISFYINGPROPERTIESAANDBOFTHEDEFINITIONOFORIENTEDTREEANDHAVINGNOORIENTEDCYCLESISANORIENTEDTREETRUEFORFINITEDIRECTEDGRAPHSIFWESTARTATANYVERTEXANDFOLLOWTHEONLYPOSSIBLEORIENTEDPATHWENEVERENCOUNTERANYVERTEXTWICESOWEMUSTEVENTUALLYREACHTHEVERTEXTHEONLYVERTEXWITHNOSUCCESSORFORINFINITEDIRECTEDGRAPHSTHERESULTISOBVIOUSLYFALSESINCEWEMIGHTHAVEVERTICESANDARCSFROMTOFORSTUDYTHEPROPERTIESOFAUTOMORPHISMGROUPSOFORIENTEDTREESNAMELYTHEGROUPSCONSISTINGOFALLPERMUTATIONSOFTHEVERTICESANDARCSFORWHICHWEHAVEBYASSIGNINGDIRECTIONSTOTHEEDGESDRAWTHEORIENTEDTREECORRESPONDINGTOTHEFREETREEINFIGFREETREEONPAGEFIGPAGEWITHASTHEROOTALLARCSPOINTUPWARDAANORIENTEDTREEWITHVERTICESCANBEREPRESENTEDINSIDEACOMPUTERBYUSINGATABLEASFOLLOWSIFISTHEROOTOTHERWISEIFTHEARCGOESFROMTOTHUSISTHESAMEASTHEPARENTTABLEUSEDINALGORITHMEQUIVRELPARENTLINKSTHETEXTSHOWSHOWAFREETREECANBECONVERTEDINTOANORIENTEDTREEBYCHOOSINGANYDESIREDVERTEXTOBETHEROOTCONSEQUENTLYITISPOSSIBLETOSTARTROOTOFORIENTEDTREECHANGINGWITHANORIENTEDTREETHATHASROOTTHENTOCONVERTTHISINTOAFREETREEBYNEGLECTINGTHEORIENTATIONOFTHEARCSANDFINALLYTOASSIGNNEWORIENTATIONSOBTAININGANORIENTEDTREEWITHANYSPECIFIEDVERTEXASTHEROOTDESIGNANALGORITHMTHATPERFORMSTHISTRANSFORMATIONSTARTINGWITHATABLEREPRESENTINGANORIENTEDTREEANDGIVENANINTEGERDESIGNTHEALGORITHMTOTRANSFORMTHETABLESOTHATITREPRESENTSTHESAMEFREETREEBUTWITHASTHEROOTGGSETGIFSTOPOTHERWISESETANDREPEATSTEPGUSINGTHEASSUMPTIONSOFEXERCISEANYSPANNINGTREEBUTWITHREPRESENTINGANARCFROMTODESIGNANALGORITHMTHATNOTONLYPRINTSOUTAFREESUBTREEASINTHATALGORITHMBUTALSOPRINTSOUTTHEFUNDAMENTALCYCLESHINTTHEALGORITHMGIVENINTHESOLUTIONTOEXERCISEANYSPANNINGTREECANBECOMBINEDWITHTHEALGORITHMINTHEPRECEDINGEXERCISETHISALGORITHMCOMBINESALGORITHMEQUIVRELWITHTHEMETHODOFTHEEQUIVALENCEALGORITHMPRECEDINGEXERCISESOTHATALLORIENTEDTREESHAVEARCSTHATCORRESPONDTOACTUALARCSINTHEDIRECTEDGRAPHISANAUXILIARYTABLETHATTELLSWHETHERANARCGOESFROMTOORFROMTOINITIALLYTHEFOLLOWINGSTEPSMAYBEUSEDTOPROCESSEACHARCCCSETCIFGOTOCOTHERWISESETANDREPEATSTEPCCNOWAPPEARSASTHEROOTOFITSTREESETANDTHENIFREPEATEDLYSETUNTILCIFGOTOCOTHERWISESETPRINTASANARCBELONGINGTOTHEFREESUBTREEANDTERMINATECPRINTCYCLEFOLLOWEDBYCIFTERMINATEOTHERWISEIFPRINTELSEPRINTSETANDREPEATSTEPCNOTETHISALGORITHMWILLTAKEATMOSTSTEPSIFWEINCORPORATETHESUGGESTIONOFMCILROYINANSWERFASTEREQUIVBUTTHEREISAMUCHBETTERSOLUTIONTHATNEEDSONLYSTEPSUSEDEPTHFIRSTSEARCHTOCONSTRUCTAPALMTREEWITHONEFUNDAMENTALCYCLEFOREACHFRONDRETARJANSICOMPMINTHECORRESPONDENCEBETWEENORIENTEDTREESASDEFINEDHEREANDORIENTEDTREESASDEFINEDATTHEBEGINNINGOFSECTIONISTHEDEGREEOFATREENODEEQUALTOTHEINDEGREEORTHEOUTDEGREEOFTHECORRESPONDINGVERTEXITEQUALSTHEINDEGREETHEOUTDEGREEOFEACHVERTEXCANBEONLYORMPROVETHATIFISAROOTOFAPOSSIBLYINFINITEDIRECTEDGRAPHTHENCONTAINSANORIENTEDSUBTREEWITHTHESAMEVERTICESASANDWITHROOTASACONSEQUENCEITISALWAYSPOSSIBLETOCHOOSETHEFREESUBTREEINFLOWCHARTSLIKEFIGCIRCFLOWGRAPHOFSECTIONSOTHATITISACTUALLYANORIENTEDSUBTREETHISWOULDBETHECASEINTHATDIAGRAMIFWEHADSELECTEDANDINSTEADOFANDDEFINEASEQUENCEOFORIENTEDSUBTREESOFASFOLLOWSISTHEVERTEXALONEISPLUSANYVERTEXOFTHATISNOTINBUTFORWHICHTHEREISANARCFROMTOWHEREISINPLUSONESUCHARCFOREACHSUCHVERTEXITISIMMEDIATEBYINDUCTIONTHATISANORIENTEDTREEFORALLANDTHATIFTHEREISANORIENTEDPATHOFLENGTHFROMTOINTHENISINTHEREFORETHESETOFALLANDINANYOFTHEISTHEDESIREDORIENTEDSUBTREEOFLETBETHEBALANCEDDIGRAPHSHOWNINFIGFIGANDLETBETHEORIENTEDSUBTREEWITHVERTICESANDARCSFINDALLORIENTEDWALKSTHATMEETTHECONDITIONSOFTHEOREMDSTARTINGWITHARCEEEEEEEEEEEEEEEEEINLEXICOGRAPHICORDERTHEEIGHTPOSSIBILITIESCOMEFROMTHEINDEPENDENTCHOICESOFWHICHOFORORORSHOULDPRECEDETHEOTHERMTRUEORFALSEADIRECTEDGRAPHTHATISCONNECTEDANDBALANCEDISSTRONGLYCONNECTEDTRUEFORFINITEGRAPHSIFITISCONNECTEDANDBALANCEDANDHASMORETHANONEVERTEXITHASANEULERIANTRAILTHATTOUCHESALLTHEVERTICESBUTFALSEINGENERALMINAPOPULARSOLITAIREGAMECALLEDCLOCKTHECARDSCLOCKSOLITAIRECARDSPLAYINGPATIENCESOLITAIREOFANORDINARYDECKOFPLAYINGCARDSAREDEALTFACEDOWNINTOPILESOFFOUREACHPILESAREARRANGEDINACIRCLELIKETHEHOURSOFACLOCKANDTHETHIRTEENTHPILEGOESINTHECENTERTHESOLITAIREGAMENOWPROCEEDSBYTURNINGUPTHETOPCARDOFTHECENTERPILEANDTHENIFITSFACEVALUEISBYPLACINGITNEXTTOTHETHPILETHENUMBERSAREEQUIVALENTTOPLAYCONTINUESBYTURNINGUPTHETOPCARDOFTHETHPILEANDPUTTINGITNEXTTOITSPILEETCUNTILWEREACHAPOINTWHEREWECANNOTCONTINUESINCETHEREARENOMORECARDSTOTURNUPONTHEDESIGNATEDPILETHEPLAYERHASNOCHOICEINTHEGAMESINCETHERULESCOMPLETELYSPECIFYWHATTODOTHEGAMEISWONIFALLCARDSAREFACEUPWHENPLAYTERMINATESREFERENCEEDCHENEYPATIENCEBOSTONLEESHEPARDTHEGAMEWASCALLEDTRAVELLERSPATIENCEINENGLANDACCORDINGTOMWHITMOREJONESGAMESOFPATIENCELONDONLUPCOTTGILLCHAPTERSHOWTHATTHEGAMEWILLBEWONIFANDONLYIFTHEFOLLOWINGDIRECTEDGRAPHISANORIENTEDTREETHEVERTICESARETHEARCSAREWHEREGOESFROMTOIFISTHEBOTTOMCARDINPILEAFTERTHEDEALINPARTICULARIFTHEBOTTOMCARDOFPILEISAFORITISEASYTOSEETHATTHEGAMEISCERTAINLYLOSTSINCETHISCARDCOULDNEVERBETURNEDUPTHERESULTPROVEDINTHISEXERCISEGIVESAMUCHFASTERWAYTOPLAYTHEGAMECONSIDERTHEDIRECTEDGRAPHWITHVERTICESANDWITHANARCFROMTOFOREACHINPILETHISGRAPHISBALANCEDWINNINGTHEGAMEISEQUIVALENTTOTRACINGOUTANEULERIANTRAILINBECAUSETHEGAMEENDSWHENTHEFOURTHARCTOISENCOUNTEREDNAMELYWHENTHEFOURTHKINGTURNSUPNOWIFTHEGAMEISWONTHESTATEDDIGRAPHISANORIENTEDSUBTREEBYLEMMAECONVERSELYIFTHESTATEDDIGRAPHISANORIENTEDTREETHEGAMEISWONBYTHEOREMDMWHATISTHEPROBABILITYOFWINNINGTHESOLITAIREGAMEOFCLOCKDESCRIBEDINEXERCISEASSUMINGTHEDECKISRANDOMLYSHUFFLEDWHATISTHEPROBABILITYTHATEXACTLYCARDSARESTILLFACEDOWNWHENTHEGAMEISOVERCLOCKSOLITAIRECARDSPLAYINGPATIENCESOLITAIRETHISANSWERCANBEOBTAINEDASTHEAUTHORFIRSTOBTAINEDITBYLABORIOUSENUMERATIONOFORIENTEDTREESOFSPECIALTYPESANDTHEAPPLICATIONOFGENERATINGFUNCTIONSETCBASEDONTHEMETHODSOFSECTIONBUTSUCHASIMPLEANSWERDESERVESASIMPLEDIRECTPROOFANDINDEEDTHEREISONESEETORBSTAVERNORSKMATEMATISKTIDSSKRIFTDEFINEANORDERFORTURNINGUPALLCARDSOFTHEDECKASFOLLOWSOBEYTHERULESOFTHEGAMEUNTILGETTINGSTUCKTHENCHEATBYTURNINGUPTHEFIRSTAVAILABLECARDFINDTHEFIRSTPILETHATISNOTEMPTYGOINGCLOCKWISEFROMPILEANDCONTINUEASBEFOREUNTILEVENTUALLYALLCARDSHAVEBEENTURNEDUPTHECARDSINTHEORDEROFTURNINGUPAREINCOMPLETELYRANDOMORDERSINCETHEVALUEOFACARDNEEDNOTBESPECIFIEDUNTILAFTERITISTURNEDUPSOTHEPROBLEMISJUSTTOCALCULATETHEPROBABILITYTHATINARANDOMLYSHUFFLEDDECKTHELASTCARDISAKINGMOREGENERALLYTHEPROBABILITYTHATCARDSARESTILLFACEDOWNWHENTHEGAMEISOVERISTHEPROBABILITYTHATTHELASTKINGINARANDOMSHUFFLEISFOLLOWEDBYCARDSNAMELYHENCEAPERSONPLAYINGTHISGAMEWITHOUTCHEATINGWILLTURNUPANAVERAGEOFEXACTLYCARDSPERGAMENOTESIMILARLYITCANBESHOWNTHATTHEPROBABILITYTHATTHEPLAYERWILLHAVETOCHEATTIMESINTHEPROCESSDESCRIBEDABOVEISEXACTLYGIVENBYTHESTIRLINGNUMBERSEEEQRLMAXDISTANDEXERCISEMDISTINCTTHECASEOFAMOREGENERALCARDDECKISCONSIDEREDINEXERCISEGENERALIZEDLRMAXMLETBEAGRAPHWITHVERTICESANDEDGESMAKEINTOADIRECTEDGRAPHBYASSIGNINGANARBITRARYORIENTATIONTOEACHEDGETHENCONSTRUCTTHEMATRIXWITHLETBETHEMATRIXWITHCOLUMNDELETEDAIFSHOWTHATTHEDETERMINANTOFISEQUALTOIFISNOTAFREETREEANDEQUALTOIFISAFREETREEDETERMINANTFREESUBTREESENUMERATEDENUMERATIONOFSUBTREESBSHOWTHATFORGENERALTHEDETERMINANTOFISTHENUMBEROFFREESUBTREESOFNAMELYTHENUMBEROFWAYSTOCHOOSEOFTHEEDGESSOTHATTHERESULTINGGRAPHISAFREETREEHINTUSEAANDTHERESULTOFEXERCISEBINETCAUCHYAIFTHEREISACYCLEWHERENECESSARILYTHESUMOFTHEROWSOFCORRESPONDINGTOTHEEDGESOFTHISCYCLEWITHAPPROPRIATESIGNSISAROWOFZEROSSOIFISNOTAFREETREETHEDETERMINANTOFISZEROBUTIFISAFREETREEWEMAYREGARDITASANORDEREDTREEWITHROOTANDWECANREARRANGETHEROWSANDCOLUMNSOFSOTHATCOLUMNSAREINPREORDERANDSOTHATTHETHROWCORRESPONDSTOTHEEDGEFROMTHETHVERTEXCOLUMNTOITSPARENTTHENTHEMATRIXISTRIANGULARWITHSONTHEDIAGONALSOTHEDETERMINANTISBBYTHEBINETCAUCHYFORMULAEXERCISEBINETCAUCHYWEHAVEWHEREREPRESENTSAMATRIXCONSISTINGOFROWSOFTHUSCORRESPONDINGTOACHOICEOFEDGESOFTHERESULTNOWFOLLOWSFROMASEESOKADAANDRONODERABULLYAMAGATAUNIVMTXTREETHMMTHEMATRIXTREETHEOREMORIENTEDSUBTREESENUMERATEDLETBEADIRECTEDGRAPHWITHVERTICESLETBETHEMATRIXWITHITFOLLOWSTHATFORLETBETHESAMEMATRIXWITHROWANDCOLUMNDELETEDFOREXAMPLEIFISTHEDIRECTEDGRAPHOFFIGFIGWEHAVEASHOWTHATIFANDFORANDIFCONTAINSNOARCSFROMAVERTEXTOITSELFTHENGVBSHOWTHATINGENERALISTHENUMBEROFORIENTEDSUBTREESOFROOTEDATNAMELYTHENUMBEROFWAYSTOSELECTOFTHEARCSOFSOTHATTHERESULTINGDIRECTEDGRAPHISANORIENTEDTREEWITHASTHEROOTHINTUSEINDUCTIONONTHENUMBEROFARCSATHECONDITIONSANDAREJUSTCONDITIONSABOFTHEDEFINITIONOFORIENTEDTREEIFISNOTANORIENTEDTREETHEREISANORIENTEDCYCLEBYEXERCISEANDTHEROWSOFCORRESPONDINGTOTHEVERTICESINTHISORIENTEDCYCLEWILLSUMTOAROWOFZEROSHENCEIFISANORIENTEDTREEASSIGNANARBITRARYORDERTOTHECHILDRENOFEACHFAMILYANDREGARDASANORDEREDTREENOWPERMUTEROWSANDCOLUMNSOFUNTILTHEYCORRESPONDTOPREORDEROFTHEVERTICESSINCETHESAMEPERMUTATIONHASBEENAPPLIEDTOTHEROWSASTOTHECOLUMNSTHEDETERMINANTISUNCHANGEDANDTHERESULTINGMATRIXISTRIANGULARWITHINEVERYDIAGONALPOSITIONBWEMAYASSUMETHATFORALLSINCENOARCEMANATINGFROMCANPARTICIPATEINANORIENTEDSUBTREEWEMAYALSOASSUMETHATFORALLSINCEOTHERWISETHEWHOLETHROWISZEROANDTHEREOBVIOUSLYARENOORIENTEDSUBTREESNOWUSEINDUCTIONONTHENUMBEROFARCSIFLETBESOMEARCLEADINGFROMLETBEAMATRIXLIKEBUTWITHARCDELETEDANDLETBETHEMATRIXLIKEBUTWITHALLARCSEXCEPTTHATLEADFROMDELETEDEXAMPLEIFANDISANARCFROMTOTHENINGENERALWEHAVESINCETHEMATRICESAGREEINALLROWSEXCEPTROWANDISTHESUMOFANDINTHATROWMOREOVERTHENUMBEROFORIENTEDSUBTREESOFISTHENUMBEROFSUBTREESTHATDONOTUSENAMELYBYINDUCTIONPLUSTHENUMBERTHATDOUSENAMELYNOTESTHEMATRIXISOFTENCALLEDTHELAPLACIANOFTHEGRAPHBYANALOGYWITHASIMILARCONCEPTINTHETHEORYOFPARTIALDIFFERENTIALEQUATIONSIFWEDELETEANYSETOFROWSFROMTHEMATRIXANDTHESAMESETOFCOLUMNSTHEDETERMINANTOFTHERESULTINGMATRIXISTHENUMBEROFORIENTEDFORESTSWHOSEROOTSARETHEVERTICESANDWHOSEARCSBELONGTOTHEGIVENDIGRAPHTHEMATRIXTREETHEOREMFORORIENTEDTREESWASSTATEDWITHOUTPROOFBYJJSYLVESTERINSEEEXERCISETHENFORGOTTENFORMANYYEARSUNTILITWASINDEPENDENTLYREDISCOVEREDBYWTTUTTEPROCCAMBRIDGEPHILSOCTHEFIRSTPUBLISHEDPROOFINTHESPECIALCASEOFUNDIRECTEDGRAPHSWHENTHEMATRIXISSYMMETRICWASGIVENBYCWBORCHARDTCRELLESEVERALAUTHORSHAVEASCRIBEDTHETHEOREMTOKIRCHHOFFBUTKIRCHHOFFPROVEDAQUITEDIFFERENTTHOUGHRELATEDRESULTANDMTXTREEEXSSYMMTXTREETHMMIFISANUNDIRECTEDGRAPHONVERTICESLETBETHEMATRIXDEFINEDASFOLLOWSFORFOREXAMPLEIFISTHEGRAPHOFFIGAGRAPHONPAGEFIGPAGEWITHWEFINDTHATSHOWTHATTHENUMBEROFFREESUBTREESOFISDETHINTUSEEXERCISEORENUMERATIONOFSUBTREESFREESUBTREESENUMERATEDDETERMINANTUSINGEXERCISEWEFINDORUSINGEXERCISEISTHEMATRIXFORTHEDIRECTEDGRAPHWITHTWOARCSONEINEACHDIRECTIONINPLACEOFEACHEDGEOFEACHFREESUBTREEOFCORRESPONDSUNIQUELYTOANORIENTEDSUBTREEOFWITHROOTSINCETHEDIRECTIONSOFTHEARCSAREDETERMINEDBYTHECHOICEOFROOTARCDIGRAFTVANAARDENNEEHRENFESTANDNGDEBRUIJNFIGUREFIGISANEXAMPLEOFADIRECTEDGRAPHTHATISNOTONLYBALANCEDITISREGULARWHICHMEANSTHATEVERYVERTEXHASTHESAMEREGULARDIGRAPHINDEGREEANDOUTDEGREEASEVERYOTHERVERTEXLETBEAREGULARDIGRAPHWITHVERTICESINWHICHEVERYVERTEXHASINDEGREEANDOUTDEGREEEQUALTOHENCETHEREAREARCSINALLLETBETHEDIGRAPHWITHVERTICESCORRESPONDINGTOTHEARCSARCDIGRAPHOFLETAVERTEXOFCORRESPONDINGTOANARCFROMTOINBEDENOTEDBYANARCGOESFROMTOINIFANDONLYIFFOREXAMPLEIFISTHEDIRECTEDGRAPHOFFIGFIGISSHOWNINFIGFIGANEULERIANTRAILINISAHAMILTONIANCYCLEINANDCONVERSELYPROVETHATTHENUMBEROFORIENTEDSUBTREESOFISTIMESTHENUMBEROFORIENTEDSUBTREESOFHINTUSEEXERCISEFIGFIGARCDIGRAPHCORRESPONDINGTOFIGFIGSEEEXERCISECONSTRUCTTHEMATRICESANDASINEXERCISEFORTHEEXAMPLEGRAPHSANDINFIGSFIGANDFIGADDTHEINDETERMINATETOEVERYDIAGONALELEMENTOFANDIFANDARETHENUMBERSOFORIENTEDSUBTREESOFANDWETHENHAVETHENUMBEROFORIENTEDSUBTREESOFABALANCEDGRAPHISTHESAMEFORANYGIVENROOTBYEXERCISEBUTWEDONOTNEEDTHATFACTIFWEGROUPVERTICESFOREQUALTHEMATRIXCANBEPARTITIONEDASSHOWNABOVELETBETHESUBMATRIXOFCONSISTINGOFTHEROWSFORANDTHECOLUMNSFORFORALLANDSUCHTHATANDAREINBYADDINGTHENDTHCOLUMNSOFEACHSUBMATRIXTOTHEFIRSTCOLUMNANDTHENSUBTRACTINGTHEFIRSTROWOFEACHSUBMATRIXFROMTHENDTHROWSTHEMATRIXISTRANSFORMEDSOTHATTHEASTERISKSINTHETOPROWSOFTHETRANSFORMEDSUBMATRICESTURNOUTTOBEIRRELEVANTBECAUSETHEDETERMINANTOFISNOWSEENTOBETIMESNOTICETHATWHENANDTHEREAREARCSFROMTOITSELFWEFINDINPARTICULARTHATEXACTLYORIENTEDTREESAREPOSSIBLEONLABELEDNODESTHISRESULTWILLBEOBTAINEDBYQUITEDIFFERENTMETHODSINSECTIONTHISDERIVATIONCANBEGENERALIZEDTODETERMINETHENUMBEROFORIENTEDSUBTREESOFWHENISANARBITRARYDIRECTEDGRAPHSEERDAWSONANDIJGOODANNMATHSTATDEKNUTHJOURNALOFCOMBINATORIALTHEORYANALTERNATIVEPURELYCOMBINATORIALPROOFHASBEENGIVENBYJBORLINJOURNALOFCOMBINATORIALTHEORYBCOUNTEULERCKTSMLETBEABALANCEDDIRECTEDGRAPHWITHVERTICESANDNOISOLATEDVERTICESLETBETHEOUTDEGREEOFSHOWTHATTHENUMBEROFEULERIANTRAILSOFISWHEREISTHENUMBEROFORIENTEDSUBTREESOFWITHROOTNOTETHEFACTORWHICHISTHENUMBEROFARCSOFMAYBEOMITTEDIFTHEEULERIANTRAILISREGARDEDASEQUALTOEULERIANTRAILSENUMERATEDTHETOTALNUMBERISTIMESTHENUMBEROFEULERIANTRAILSSTARTINGWITHAGIVENEDGEWHEREINITEACHSUCHTRAILDETERMINESANORIENTEDSUBTREEWITHROOTBYLEMMAEANDFOREACHOFTHEORIENTEDSUBTREESTHEREAREWALKSSATISFYINGTHETHREECONDITIONSOFTHEOREMDCORRESPONDINGTOTHEDIFFERENTORDERINWHICHTHEARCSAREENTEREDINTOEXERCISEPROVIDESASIMPLEEXAMPLEENUMDEBSEQSMNGDEBRUIJNFOREACHSEQUENCEOFNONNEGATIVEINTEGERSLESSTHANLETBEANONNEGATIVEINTEGERLESSTHANDEFINEANINFINITESEQUENCEASFOLLOWSWHENFORHOWMANYOFTHEPOSSIBLEFUNCTIONSISTHISSEQUENCEPERIODICWITHAPERIODOFTHEMAXIMUMLENGTHHINTCONSTRUCTADIRECTEDGRAPHWITHVERTICESFORALLANDWITHARCSFROMTOAPPLYEXERCISESANDCONSTRUCTTHEDIRECTEDGRAPHWITHVERTICESASINTHEHINTANDDENOTEBYTHEARCMENTIONEDTHEREFOREACHFUNCTIONTHATHASMAXIMUMPERIODLENGTHWECANDEFINEAUNIQUECORRESPONDINGEULERIANTRAILBYLETTINGIFARCISFOLLOWEDBYWEREGARDEULERIANTRAILSASBEINGTHESAMEIFONEISJUSTACYCLICPERMUTATIONOFTHEOTHERNOWINTHESENSEOFEXERCISESOHASTIMESASMANYORIENTEDSUBTREESASBYINDUCTIONHASORIENTEDSUBTREESANDWITHAGIVENROOTTHEREFOREBYEXERCISETHENUMBEROFFUNCTIONSWITHMAXIMUMPERIODNAMELYTHENUMBEROFEULERIANTRAILSOFSTARTINGWITHAGIVENARCISFORTHISRESULTISDUETOCFLYESAINTEMARIELINTERMEDIAIREDESMATHEMATICIENSKIRCHHOFFCONVERSEMLETBEACONNECTEDDIGRAPHWITHARCSLETBEASETOFPOSITIVEINTEGERSTHATSATISFYKIRCHHOFFSLAWFORTHATISFOREACHVERTEXASSUMEFURTHERTHATPROVETHATTHEREISANORIENTEDWALKINFROMFINTOINITSUCHTHATEDGEAPPEARSEXACTLYTIMESFORWHILEEDGEDOESNOTAPPEARHINTAPPLYTHEOREMGTOASUITABLEDIRECTEDGRAPHDEFINEANEWDIRECTEDGRAPHHAVINGCOPIESOFFORTHISGRAPHISBALANCEDHENCEITCONTAINSANEULERIANTRAILBYTHEOREMGTHEDESIREDORIENTEDWALKCOMESBYDELETINGTHEEDGEFROMTHISEULERIANTRAILDIGRAPHTHREADSDESIGNACOMPUTERREPRESENTATIONFORDIRECTEDGRAPHSTHATGENERALIZESTHERIGHTTHREADEDBINARYTREEREPRESENTATIONOFATREEUSERIGHTTHREADEDTREELLINKINTREERLINKINTREELTAGRTAGTWOLINKFIELDSALINKBLINKANDTWOONEBITFIELDSATAGBTAGANDDESIGNTHEREPRESENTATIONSOTHATITHEREISONENODEFOREACHARCOFTHEDIRECTEDGRAPHNOTFOREACHVERTEXIIIFTHEDIRECTEDGRAPHISANORIENTEDTREEWITHROOTANDIFWEADDANARCFROMTOANEWVERTEXTHENTHEREPRESENTATIONOFTHISDIRECTEDGRAPHISESSENTIALLYTHESAMEASARIGHTTHREADEDREPRESENTATIONOFTHISORIENTEDTREEWITHSOMEORDERIMPOSEDONTHECHILDRENINEACHFAMILYINTHESENSETHATALINKBLINKBTAGARERESPECTIVELYTHESAMEASLLINKRLINKRTAGINSECTIONANDIIITHEREPRESENTATIONISSYMMETRICINTHESENSETHATINTERCHANGINGALINKATAGWITHBLINKBTAGISEQUIVALENTTOCHANGINGTHEDIRECTIONONALLTHEARCSOFTHEDIRECTEDGRAPHASSIGNANARBITRARYORDERTOALLARCSINTHESETSANDFOREACHARCINLETEANDEIFFOLLOWSINTHEORDERINGOFALSOLETEANDEIFISLASTINANDISFIRSTINLETEINTHELATTERCASEIFISEMPTYDEFINEBLINKANDBTAGBYTHESAMERULESREVERSINGTHEROLESOFINITANDFINEXAMPLESUSINGALPHABETICORDERINEACHSETOFARCSNOTEIFINTHEORIENTEDTREEREPRESENTATIONWEADDANOTHERARCFROMTOITSELFWEGETANINTERESTINGSITUATIONEITHERWEGETTHESTANDARDCONVENTIONSTHREADHEADWITHLLINKLTAGRLINKRTAGINTERCHANGEDINTHELISTHEADORIFTHENEWARCISPLACEDLASTINTHEORDERINGWEGETTHESTANDARDCONVENTIONSEXCEPTINTHENODEASSOCIATEDWITHTHEROOTOFTHETREETHISEXERCISEISBASEDONANIDEACOMMUNICATEDTOTHEAUTHORBYWCLYNCHCANTREETRAVERSALALGORITHMSLIKEALGORITHMTHREADEDSUCCESSORBEGENERALIZEDTOCLASSESOFDIGRAPHSTHATARENOTORIENTEDTREESUSINGSUCHAREPRESENTATIONMARKOVPROCSANALYSISOFARANDOMALGORITHMLETBEAANALYSISOFALGORITHMSMARKOVCHAINSDIRECTEDGRAPHONTHEVERTICESASSUMETHATREPRESENTSTHEFLOWCHARTFORANALGORITHMWHEREISTHESTARTVERTEXANDISTHESTOPVERTEXTHEREFOREISAROOTOFSUPPOSEEACHARCOFHASBEENASSIGNEDAPROBABILITYWHERETHEPROBABILITIESSATISFYTHECONDITIONSCONSIDERARANDOMWALKWHICHSTARTSATANDSUBSEQUENTLYCHOOSESBRANCHOFWITHPROBABILITYUNTILISREACHEDTHECHOICEOFBRANCHTAKENATEACHSTEPISTOBEINDEPENDENTOFALLPREVIOUSCHOICESFOREXAMPLECONSIDERTHEGRAPHOFEXERCISEFLOWCHARTEXANDASSIGNTHERESPECTIVEPROBABILITIESTOARCSTHENTHEWALKSTARTSTOPISCHOSENWITHPROBABILITYSUCHRANDOMWALKSARECALLEDMARKOVCHAINSAFTERTHERUSSIANMATHEMATICIANANDREIAMARKOVWHOFIRSTMADEEXTENSIVESTUDIESOFSTOCHASTICPROCESSESOFTHISKINDTHESITUATIONSERVESASAMODELFORCERTAINALGORITHMSALTHOUGHOURREQUIREMENTTHATEACHCHOICEMUSTBEINDEPENDENTOFTHEOTHERSISAVERYSTRONGASSUMPTIONTHEPURPOSEOFTHISEXERCISEISTOANALYZETHECOMPUTATIONTIMEFORALGORITHMSOFTHISKINDTHEANALYSISISFACILITATEDBYCONSIDERINGTHEMATRIXWHERESUMMEDOVERALLARCSTHATGOFROMTOIFTHEREISNOSUCHARCTHEMATRIXFORTHEEXAMPLECONSIDEREDABOVEISITFOLLOWSEASILYTHATISTHEPROBABILITYTHATAWALKSTARTINGATWILLBEATAFTERSTEPSPROVETHEFOLLOWINGFACTSFORANARBITRARYDIRECTEDGRAPHOFTHESTATEDTYPEATHEMATRIXISNONSINGULARHINTSHOWTHATTHEREISNONONZEROVECTORWITHBTHEAVERAGENUMBEROFTIMESTHATVERTEXAPPEARSINTHEWALKISCOFACTORTHUSINTHEEXAMPLECONSIDEREDWEFINDTHATTHEVERTICESARETRAVERSEDRESPECTIVELYTIMESONTHEAVERAGECTHEPROBABILITYTHATOCCURSINTHEWALKISFURTHERMORESOTHEWALKTERMINATESINAFINITENUMBEROFSTEPSWITHPROBABILITYONEDTHEPROBABILITYTHATARANDOMWALKSTARTINGATWILLNEVERRETURNTOISETHEPROBABILITYTHATOCCURSEXACTLYTIMESINTHEWALKISFORMSTEADYSTATESLETBEADIRECTEDGRAPHONVERTICESSTEADYSTATEWHOSEARCSHAVEBEENASSIGNEDPROBABILITIESASINEXERCISEINSTEADOFHAVINGSTARTANDSTOPVERTICESHOWEVERASSUMETHATISSTRONGLYCONNECTEDTHUSEACHVERTEXISAROOTANDWEASSUMETHATTHEPROBABILITIESAREPOSITIVEANDSATISFYFORALLARANDOMPROCESSOFTHEKINDDESCRIBEDINEXERCISEISSAIDTOHAVEASTEADYSTATEIFLETBETHESUMOVERALLORIENTEDSUBTREESOFTHATAREROOTEDATOFTHEPRODUCTSPROVETHATISASTEADYSTATEOFTHERANDOMPROCESSSTEADYSTATEMARKOVCHAINSANALYSISOFALGORITHMSLETBETHESUMOFOVERALLARCSFROMTOWEARETOPROVETHATFORALLSINCEWEMUSTPROVETHATBUTTHISISNOTDIFFICULTBECAUSEBOTHSIDESOFTHEEQUATIONREPRESENTTHESUMOFALLPRODUCTSTAKENOVERSUBGRAPHSOFSUCHTHATANDSUCHTHATTHEREISAUNIQUEORIENTEDCYCLECONTAINEDINWHERETHISCYCLEINCLUDESREMOVINGANYARCOFTHECYCLEYIELDSANORIENTEDTREETHELEFTHANDSIDEOFTHEEQUATIONISOBTAINEDBYFACTORINGOUTTHEARCSTHATLEAVEWHILETHERIGHTHANDSIDECORRESPONDSTOTHOSETHATENTERINASENSETHISEXERCISEISACOMBINATIONOFEXERCISESANDSYLVESTERTREESMCONSIDERTHEDETERMINANTILLUSTRATEDHEREFORANDSHOWTHATWHENTHISDETERMINANTISEXPANDEDASAPOLYNOMIALINTHESANDSEACHNONZEROTERMHASCOEFFICIENTHOWMANYTERMSAPPEARINTHEEXPANSIONGIVEARULERELATEDTOORIENTEDTREESTHATCHARACTERIZESEXACTLYWHICHTERMSAREPRESENTEVERYTERMINTHEEXPANSIONISWHEREFORANDFORTIMESSOMEINTEGERCOEFFICIENTREPRESENTTHISPRODUCTASADIRECTEDGRAPHONTHEVERTICESWITHARCSFROMTOANDFROMTOWHEREIFTHEDIGRAPHCONTAINSACYCLETHEINTEGERCOEFFICIENTISZEROFOREACHCYCLECORRESPONDSTOAFACTOROFTHEFORMWHERETHEINDICESAREDISTINCTANDSOARETHEINDICESTHESUMOFALLTERMSCONTAININGASAFACTORISTIMESTHEDETERMINANTOBTAINEDBYSETTINGFORANDFORFORLEAVINGTHEVARIABLESINTHEOTHERROWSUNCHANGEDTHISDETERMINANTISIDENTICALLYZEROBECAUSETHESUMOFROWSINTHETOPSECTIONEQUALSTHESUMOFROWSINTHEBOTTOMSECTIONONTHEOTHERHANDIFTHEDIRECTEDGRAPHCONTAINSNOCYCLESTHEINTEGERCOEFFICIENTISTHISFOLLOWSBECAUSEEACHFACTORANDMUSTHAVECOMEFROMTHEDIAGONALOFTHEDETERMINANTIFANYOFFDIAGONALELEMENTISCHOSENINROWOFTHETOPSECTIONWEMUSTCHOOSESOMEOFFDIAGONALFROMROWOFTHEBOTTOMSECTIONHENCEWEMUSTCHOOSESOMEOFFDIAGONALFROMROWOFTHETOPSECTIONETCFORCINGACYCLETHUSTHECOEFFICIENTISIFANDONLYIFTHECORRESPONDINGDIGRAPHISANORIENTEDTREEWITHROOTTHENUMBEROFSUCHTERMSHENCETHENUMBEROFSUCHORIENTEDTREESISOBTAINEDBYSETTINGEACHANDTOFOREXAMPLEINGENERALWEOBTAINNOTESJJSYLVESTERCONSIDEREDTHESPECIALCASEANDINQUARTERLYJOFPUREANDAPPLIEDMATHWHEREHECONJECTUREDCORRECTLYTHATTHETOTALNUMBEROFTERMSISTHENHEALSOSTATEDWITHOUTPROOFTHATTHENONZEROTERMSPRESENTWHENCORRESPONDTOALLCONNECTEDCYCLEFREEGRAPHSONINTHATSPECIALCASEHEREDUCEDTHEDETERMINANTTOTHEFORMINTHEMATRIXTREETHEOREMOFEXERCISEEGCAYLEYQUOTEDTHISRESULTINCRELLEASCRIBINGITTOSYLVESTERTHUSITISIRONICTHATTHETHEOREMABOUTTHENUMBEROFSUCHGRAPHSISOFTENATTRIBUTEDTOCAYLEYBYNEGATINGTHEFIRSTROWSOFTHEGIVENDETERMINANTTHENNEGATINGTHEFIRSTCOLUMNSWECANREDUCETHISEXERCISETOTHEMATRIXTREETHEOREMMATRICESHAVINGTHEGENERALFORMCONSIDEREDINTHISEXERCISEAREIMPORTANTINITERATIVEMETHODSFORTHESOLUTIONOFPARTIALDIFFERENTIALEQUATIONSANDTHEYARESAIDTOHAVEPROPERTYSEEFOREXAMPLELOUISAHAGEMANANDDAVIDMYOUNGAPPLIEDITERATIVEMETHODSACADEMICPRESSCHAPTERORIENTEDTREESTHEINFINITYLEMMATHEINFINITYLEMMAINFINITYLEMMAUNTILNOWWEHAVECONCENTRATEDMAINLYONTREESTHATHAVEONLYFINITELYMANYVERTICESNODESBUTTHEDEFINITIONSWEHAVEGIVENFORFREETREESANDORIENTEDTREESAPPLYTOINFINITEGRAPHSASWELLINFINITEORDEREDTREESCANBEDEFINEDINSEVERALWAYSWECANFOREXAMPLEEXTENDTHECONCEPTOFDEWEYDEWEYDECIMALNOTATIONDECIMALNOTATIONTOINFINITECOLLECTIONSOFNUMBERSASINEXERCISEDEWEYPROPEVENINTHESTUDYOFCOMPUTERALGORITHMSTHEREISOCCASIONALLYANEEDTOKNOWTHEPROPERTIESOFINFINITETREESFOREXAMPLETOPROVEBYCONTRADICTIONTHATACERTAINTREEISNOTINFINITEONEOFTHEMOSTFUNDAMENTALPROPERTIESOFINFINITETREESFIRSTSTATEDINITSFULLGENERALITYBYDKHONIGISTHEFOLLOWINGKINFTYLEMTHEOREMKTHEINFINITYLEMMAEVERYINFINITEINFINITETREEORIENTEDTREEINWHICHEVERYVERTEXHASFINITEDEGREEHASANINFINITEPATHTOTHEROOTTHATISANINFINITESEQUENCEOFVERTICESINWHICHISTHEROOTANDFORALLWEDEFINETHEPATHBYSTARTINGWITHTHEROOTOFTHEORIENTEDTREEASSUMETHATANDTHATHASBEENCHOSENHAVINGINFINITELYMANYDESCENDANTSTHEDEGREEOFISFINITEBYHYPOTHESISSOHASFINITELYMANYCHILDRENATLEASTONEOFTHESECHILDRENMUSTPOSSESSINFINITELYMANYDESCENDANTSSOWETAKETOBESUCHACHILDOFNOWISANINFINITEPATHTOTHEROOTSTUDENTSOFCALCULUSMAYRECOGNIZETHATTHEARGUMENTUSEDHEREISESSENTIALLYLIKETHATUSEDTOPROVETHECLASSICALBOLZANOWEIERSTRASSTHEOREMABOUNDEDINFINITESETOFREALNUMBERSHASANACCUMULATIONPOINTONEWAYOFSTATINGTHEOREMKASKHONIGOBSERVEDISTHISIFTHEHUMANRACENEVERDIESOUTSOMEBODYNOWLIVINGHASALINEOFDESCENDANTSTHATWILLNEVERDIEOUTMOSTPEOPLETHINKTHATTHEOREMKISCOMPLETELYOBVIOUSWHENTHEYFIRSTENCOUNTERITBUTAFTERMORETHOUGHTANDACONSIDERATIONOFFURTHEREXAMPLESTHEYREALIZETHATTHEREISSOMETHINGPROFOUNDABOUTITALTHOUGHTHEDEGREEOFEACHNODEOFTHETREEISFINITEWEHAVENOTASSUMEDTHATTHEDEGREESAREBOUNDEDLESSTHANSOMENUMBERFORALLVERTICESSOTHEREMAYBENODESWITHHIGHERANDHIGHERDEGREESITISATLEASTCONCEIVABLETHATEVERYONESDESCENDANTSWILLULTIMATELYDIEOUTALTHOUGHTHEREWILLBESOMEFAMILIESTHATGOONAMILLIONGENERATIONSOTHERSABILLIONANDSOONINFACTHWWATSONONCEPUBLISHEDAPROOFTHATUNDERCERTAINLAWSOFBIOLOGICALPROBABILITYCARRIEDOUTINDEFINITELYTHEREWILLBEINFINITELYMANYPEOPLEBORNINTHEFUTUREBUTEACHFAMILYLINEWILLDIEOUTWITHPROBABILITYONEHISPAPERJANTHROPOLOGICALINSTGTBRITAINANDIRELANDCONTAINSIMPORTANTANDFARREACHINGTHEOREMSINSPITEOFTHEMINORSLIPTHATCAUSEDHIMTOMAKETHISSTATEMENTANDITISSIGNIFICANTTHATHEDIDNOTFINDHISCONCLUSIONSTOBELOGICALLYINCONSISTENTTHECONTRAPOSITIVEOFTHEOREMKISDIRECTLYAPPLICABLETOCOMPUTERALGORITHMSIFWEHAVEANALGORITHMTHATPERIODICALLYDIVIDESITSELFUPINTOFINITELYMANYSUBALGORITHMSANDIFEACHCHAINOFSUBALGORITHMSULTIMATELYTERMINATESTHENTHEALGORITHMITSELFTERMINATESPHRASEDYETANOTHERWAYSUPPOSEWEHAVEASETFINITEORINFINITESUCHTHATEACHELEMENTOFISASEQUENCEOFPOSITIVEINTEGERSOFFINITELENGTHIFWEIMPOSETHECONDITIONSTHATIIFISINSOISFORIIIFISINONLYFINITELYMANYEXISTFORWHICHISALSOINIIITHEREISNOINFINITESEQUENCEALLOFWHOSEINITIALSUBSEQUENCESLIEINTHENISESSENTIALLYANORIENTEDTREESPECIFIEDESSENTIALLYINADEWEYDECIMALNOTATIONANDTHEOREMKTELLSUSTHATISFINITEDEWEYDECIMALNOTATIONONEOFTHEMOSTCONVINCINGEXAMPLESOFTHEPOTENCYOFTHEOREMKARISESINCONNECTIONWITHAFAMILYOFINTERESTINGTILINGPROBLEMSINTRODUCEDBYHAOWANGWANGTETRADTILINGATETRADTYPEISASQUAREDIVIDEDINTOFOURPARTSEACHPARTHAVINGASPECIFIEDNUMBERINITSUCHASTHEPROBLEMOFTILINGTHEPLANEISTOTAKEAFINITESETOFTETRADTYPESWITHANINFINITESUPPLYOFTETRADSOFEACHTYPEANDTOSHOWHOWTOPLACEONEINEACHSQUAREOFANINFINITEPLANEWITHOUTROTATINGORREFLECTINGTHETETRADTYPESINSUCHAWAYTHATTWOTETRADSAREADJACENTONLYIFTHEYHAVEEQUALNUMBERSWHERETHEYTOUCHFOREXAMPLEWECANTILETHEPLANEUSINGTHESIXTETRADTYPESINESSENTIALLYONLYONEWAYBYREPEATINGTHERECTANGLEOVERANDOVERTHEREADERMAYEASILYVERIFYTHATTHEREISNOWAYTOTILETHEPLANEWITHTHETHREETETRADTYPESWANGSOBSERVATIONSCIENTIFICAMERICANNOVEMBERISTHATIFITISPOSSIBLETOTILETHEUPPERRIGHTQUADRANTOFTHEPLANEITISPOSSIBLETOTILETHEWHOLEPLANETHISISCERTAINLYUNEXPECTEDBECAUSEAMETHODFORTILINGTHEUPPERRIGHTQUADRANTINVOLVESABOUNDARYALONGTHEANDAXESANDITWOULDSEEMTOGIVENOHINTASTOHOWTOTILETHEUPPERLEFTQUADRANTOFTHEPLANESINCETETRADTYPESMAYNOTBEROTATEDORREFLECTEDWECANNOTGETRIDOFTHEBOUNDARYMERELYBYSHIFTINGTHEUPPERQUADRANTSOLUTIONDOWNANDTOTHELEFTSINCEITDOESNOTMAKESENSETOSHIFTTHESOLUTIONBYMORETHANAFINITEAMOUNTBUTWANGSPROOFRUNSASFOLLOWSTHEEXISTENCEOFANUPPERRIGHTQUADRANTSOLUTIONIMPLIESTHATTHEREISAWAYTOTILEASQUAREFORALLTHESETOFALLSOLUTIONSTOTHEPROBLEMOFTILINGSQUARESWITHANEVENNUMBEROFCELLSONEACHSIDEFORMSANORIENTEDTREEIFTHECHILDRENOFEACHSOLUTIONARETHEPOSSIBLESOLUTIONSTHATCANBEOBTAINEDBYBORDERINGTHEROOTOFTHISORIENTEDTREEISTHESOLUTIONITSCHILDRENARETHESOLUTIONSETCEACHNODEHASONLYFINITELYMANYCHILDRENSINCETHEPROBLEMOFTILINGTHEPLANEASSUMESTHATONLYFINITELYMANYTETRADTYPESAREGIVENHENCEBYTHEINFINITYLEMMATHEREISANINFINITEPATHTOTHEROOTTHISMEANSTHATTHEREISAWAYTOTILETHEWHOLEPLANEALTHOUGHWEMAYBEATALOSSTOFINDITFORLATERDEVELOPMENTSINTETRADTILINGSEETHEBEAUTIFULBOOKTILINGSANDPATTERNSBYBGRUNBAUMANDGCSHEPHARDFREEMANCHAPTEREXERCISESMTHETEXTREFERSTOASETCONTAININGFINITESEQUENCESOFPOSITIVEINTEGERSANDSTATESTHATTHISSETISESSENTIALLYANORIENTEDTREEWHATISTHEROOTOFTHISORIENTEDTREEANDWHATARETHEARCSTHEROOTISTHEEMPTYSEQUENCEARCSGOFROMTOSHOWTHATIFROTATIONOFTETRADTYPESISALLOWEDITISALWAYSPOSSIBLETOTILETHEPLANETAKEONETETRADTYPEANDROTATEITTOGETANOTHERTETRADTYPETHESETWOTYPESCLEARLYTILETHEPLANEWITHOUTFURTHERROTATIONSBYREPEATINGAPATTERNMIFITISPOSSIBLETOTILETHEUPPERRIGHTQUADRANTOFTHEPLANEWHENGIVENANINFINITESETOFTETRADTYPESISITALWAYSPOSSIBLETOTILETHEWHOLEPLANECONSIDERTHESETOFTETRADTYPESAFORALLPOSITIVEINTEGERSTHERIGHTHALFPLANECANBETILEDINUNCOUNTABLYMANYWAYSBUTWHATEVERSQUAREISPLACEDINTHECENTEROFTHEPLANEPUTSAFINITELIMITONTHEDISTANCEITCANBECONTINUEDTOTHELEFTMHWANGTHESIXTETRADTYPESLEADTOATOROIDALSOLUTIONTOTHETILINGPROBLEMTHATISASOLUTIONINWHICHSOMERECTANGULARPATTERNNAMELYISREPLICATEDTHROUGHOUTTHEENTIREPLANEASSUMEWITHOUTPROOFTHATWHENEVERITISPOSSIBLETOTILETHEPLANEWITHAFINITESETOFTETRADTYPESTHEREISATOROIDALSOLUTIONUSINGTHOSETETRADTYPESUSETHISASSUMPTIONTOGETHERWITHTHEINFINITYLEMMATODESIGNANALGORITHMTHATGIVENTHESPECIFICATIONSOFANYFINITESETOFTETRADTYPESDETERMINESINAFINITENUMBEROFSTEPSWHETHERORNOTTHEREEXISTSAWAYTOTILETHEPLANEWITHTHESETYPESWANGTOROIDALTILINGSYSTEMATICALLYENUMERATEALLPOSSIBLEWAYSTOTILEANBLOCKFORLOOKINGFORTOROIDALSOLUTIONSWITHINTHESEBLOCKSIFTHEREISNOWAYTOTILETHEPLANETHEINFINITYLEMMATELLSUSTHEREISANWITHNOSOLUTIONSIFTHEREISAWAYTOTILETHEPLANETHEASSUMPTIONTELLSUSTHATTHEREISANWITHANSOLUTIONCONTAININGARECTANGLETHATYIELDSATOROIDALSOLUTIONHENCEINEITHERCASETHEALGORITHMWILLTERMINATEBUTTHESTATEDASSUMPTIONISFALSEASSHOWNINTHENEXTEXERCISEANDINFACTTHEREISNOALGORITHMTHATWILLDETERMINEINAFINITENUMBEROFSTEPSWHETHERORNOTTHEREEXISTSAWAYTOTILETHEPLANEWITHAGIVENSETOFTYPESONTHEOTHERHANDIFSUCHATILINGDOESEXISTTHEREISALWAYSATILINGTHATISQUASITOROIDALINTHESENSETHATEACHOFITSBLOCKSOCCURSATLEASTONCEINEVERYBLOCKFORSOMEFUNCTIONSEEBDURANDTHEORETICALCOMPUTERSCIENCEBERGERMODMSHOWTHATUSINGTHEFOLLOWINGTETRADTYPESITISPOSSIBLETOTILETHEPLANEBUTTHATTHEREISNOTOROIDALSOLUTIONINTHESENSEOFEXERCISETOSIMPLIFYTHESPECIFICATIONOFTHETYPESLETUSFIRSTINTRODUCESOMENOTATIONDEFINETHEFOLLOWINGBASICCODESTHETETRADTYPESARENOWTHESEABBREVIATIONSMEANTHATTHEBASICCODESARETOBEPUTTOGETHERCOMPONENTBYCOMPONENTANDSORTEDINTOALPHABETICORDERINEACHCOMPONENTTHUSSTANDSFORSIXTYPESTHETYPEISAFTERMULTIPLYINGCORRESPONDINGCOMPONENTSANDSORTINGINTOORDERTHISISINTENDEDTOCORRESPONDTOTHETETRADTYPESHOWNONTHERIGHTWHEREWEUSESTRINGSOFSYMBOLSINSTEADOFNUMBERSINTHEFOURQUARTERSOFTHETYPETWOTETRADTYPESCANBEPLACEDNEXTTOEACHOTHERONLYIFTHEYHAVETHESAMESTRINGOFSYMBOLSATTHEPLACETHEYTOUCHQYTTQYATETRADISONETHATHASAINITSSPECIFICATIONASGIVENABOVETOGETSTARTEDONTHESOLUTIONTOTHISEXERCISENOTETHATANYTETRADMUSTHAVEANTETRADTOITSLEFTANDTOITSRIGHTANDATETRADABOVEANDBELOWANTETRADMUSTHAVEORORTOITSRIGHTANDTHENMUSTCOMEANTETRADETCTHISCONSTRUCTIONISASIMPLIFIEDVERSIONOFASIMILARONEGIVENBYROBERTBERGERWHOWENTONTOPROVETHATTHEGENERALPROBLEMINEXERCISEWITHOUTTHEINVALIDASSUMPTIONCANNOTBESOLVEDSEEMEMOIRSAMERMATHSOCTETRADTILINGSTARTBYNOTICINGTHATWENEEDCLASSESREPLICATEDINGROUPSINANYSOLUTIONTHENSTEPCONSIDERINGJUSTTHESQUARESSHOWTHATTHEPATTERNMUSTBEREPLICATEDINGROUPSOFSQUARESSTEPDETERMINEAPATTERNTHATMUSTAPPEARINACROSSSHAPEDREGIONOFHEIGHTANDWIDTHTHEMIDDLEOFTHECROSSESHASTHEPATTERNREPLICATEDTHROUGHOUTTHEPLANEFOREXAMPLEAFTERSTEPWEWILLKNOWTHECONTENTSOFBLOCKSTHROUGHOUTTHEPLANESEPARATEDBYUNITLENGTHSTRIPSEVERYEIGHTUNITSTHEBLOCKSTHATHAVETYPESONTHEMAINDIAGONALHAVETHEFORMTHEMIDDLECOLUMNANDTHEMIDDLEROWISTHECROSSJUSTFILLEDINDURINGSTEPTHEOTHERFOURSQUARESWEREFILLEDINAFTERSTEPTHESQUARESJUSTTOTHERIGHTANDBELOWTHISSQUAREAREPARTOFACROSSTOBEFILLEDINATSTEPSIXOFTHETYPESCANACTUALLYBEOMITTEDSEEEXERCISEBERGERTILESFORASIMILARCONSTRUCTIONTHATLEADSTOASETOFONLYTETRADTYPESHAVINGNOTHINGBUTNONTOROIDALSOLUTIONSSEERMROBINSONINVENTIONESMATHROBINSONALSOEXHIBITEDASETOFSIXSQUARISHSHAPESTHATTILETHEPLANEONLYNONTOROIDALLYEVENWHENROTATIONSANDREFLECTIONSAREALLOWEDAFTERMANYDECADESOFIMPROVEMENTSANOPTIMUMSOLUTIONHASFINALLYBEENFOUNDEJEANDELANDMRAOADVANCESINCOMBINATORICSCONSTRUCTEDASETOFELEVENTETRADTYPESUSINGONLYFOURCOLORSTHATTILESTHEPLANEONLYNONTOROIDALLYTHEYALSOPROVEDTHATNOSOLUTIONWITHFEWERTYPESORFEWERCOLORSISPOSSIBLEVDWMOTTOSCHREIERINAFAMOUSPAPERNIEUWARCHIEFVOORWISKUNDEBLVANDERWAERDENPROVEDTHEFOLLOWINGTHEOREMVANDERWAERDENIFANDAREPOSITIVEINTEGERSANDIFWEHAVESETSOFPOSITIVEINTEGERSWITHEVERYPOSITIVEINTEGERINCLUDEDINATLEASTONEOFTHESESETSTHENATLEASTONEOFTHESETSCONTAINSANARITHMETICPROGRESSIONOFLENGTHTHELATTERSTATEMENTMEANSTHEREEXISTINTEGERSANDSUCHTHATAREALLINIFPOSSIBLEUSETHISRESULTANDTHEINFINITYLEMMATOPROVETHEFOLLOWINGSTRONGERSTATEMENTIFANDAREPOSITIVEINTEGERSTHEREISANUMBERSUCHTHATIFWEHAVESETSOFINTEGERSWITHEVERYINTEGERBETWEENANDINCLUDEDINATLEASTONEOFTHESESETSTHENATLEASTONEOFTHESETSCONTAINSANARITHMETICPROGRESSIONOFLENGTHLETANDBEFIXEDCONSIDERANORIENTEDTREEWHOSEVERTICESEACHREPRESENTFORSOMEONEOFTHEPARTITIONSOFINTOPARTSCONTAININGNOARITHMETICPROGRESSIONOFLENGTHANODETHATPARTITIONSISACHILDOFONEFORIFTHETWOPARTITIONSAGREEONIFTHEREWEREANINFINITEPATHTOTHEROOTWEWOULDHAVEAWAYTODIVIDEALLINTEGERSINTOSETSWITHNOARITHMETICPROGRESSIONOFLENGTHHENCEBYTHEINFINITYLEMMAANDVANDERWAERDENSTHEOREMTHISTREEISFINITEIFTHETREECANBERAPIDLYCALCULATEDBYHANDANDTHELEASTVALUEOFISSEESTUDIESINPUREMATHEMATICSEDBYLMIRSKYACADEMICPRESSFORVANDERWAERDENSINTERESTINGACCOUNTOFHOWTHEPROOFOFHISTHEOREMWASDISCOVEREDMIFPOSSIBLEUSEVANDERWAERDENSTHEOREMOFEXERCISEANDTHEINFINITYLEMMATOPROVETHEFOLLOWINGSTRONGERSTATEMENTVANDERWAERDENIFISAPOSITIVEINTEGERANDIFWEHAVESETSOFINTEGERSWITHEVERYPOSITIVEINTEGERINCLUDEDINATLEASTONEOFTHESESETSTHENATLEASTONEOFTHESETSCONTAINSANINFINITYLEMMAINFINITELYLONGARITHMETICPROGRESSIONTHEPOSITIVEINTEGERSCANBEPARTITIONEDINTOTWOSETSANDSUCHTHATNEITHERSETCONTAINSANYINFINITECOMPUTABLESEQUENCESEEEXERCISEBOOTSTRAPRSOINPARTICULARTHEREISNOINFINITEARITHMETICPROGRESSIONTHEOREMKDOESNOTAPPLYBECAUSETHEREISNOWAYTOPUTPARTIALSOLUTIONSINTOATREEWITHFINITEDEGREESATEACHVERTEXMJBKRUSKALIFANDAREFINITEORDEREDTREESLETEMBEDDEDTREESPROOFSOFTERMINATIONTHENOTATIONSIGNIFYTHATCANBEEMBEDDEDINASINEXERCISETREEEMBEDDINGPROVETHATIFISANYINFINITESEQUENCEOFTREESTHEREEXISTINTEGERSSUCHTHATINOTHERWORDSITISIMPOSSIBLETOCONSTRUCTANINFINITESEQUENCEOFTREESINWHICHNOTREECONTAINSANYOFTHEEARLIERTREESOFTHESEQUENCETHISFACTCANBEUSEDTOPROVETHATCERTAINALGORITHMSMUSTTERMINATELETACOUNTEREXAMPLESEQUENCEBEANINFINITESEQUENCEOFTREESTHATVIOLATESKRUSKALSTHEOREMIFSUCHSEQUENCESEXISTASSUMETHATTHETHEOREMISFALSETHENLETBEATREEWITHTHESMALLESTPOSSIBLENUMBEROFNODESSUCHTHATCANBETHEFIRSTTREEINACOUNTEREXAMPLESEQUENCEIFHAVEBEENCHOSENLETBEATREEWITHTHESMALLESTPOSSIBLENUMBEROFNODESSUCHTHATISTHEBEGINNINGOFACOUNTEREXAMPLESEQUENCETHISPROCESSDEFINESACOUNTEREXAMPLESEQUENCENONEOFTHESESISJUSTAROOTNOWWELOOKATTHISSEQUENCEVERYCAREFULLYASUPPOSETHEREISASUBSEQUENCEFORWHICHISACOUNTEREXAMPLESEQUENCETHISISIMPOSSIBLEOTHERWISEWOULDBEACOUNTEREXAMPLESEQUENCECONTRADICTINGTHEDEFINITIONOFBBECAUSEOFATHEREAREONLYFINITELYMANYFORWHICHCANNOTBEEMBEDDEDINFORANYTHEREFOREBYTAKINGLARGERTHANANYSUCHWECANFINDASUBSEQUENCEFORWHICHCNOWBYTHERESULTOFEXERCISETREEEMBEDDINGCANNOTBEEMBEDDEDINFORANYELSETHEREFOREISACOUNTEREXAMPLESEQUENCEBUTTHISCONTRADICTSTHEDEFINITIONOFNOTESKRUSKALINTRANSAMERMATHSOCACTUALLYPROVEDASTRONGERRESULTUSINGAWEAKERNOTIONOFEMBEDDINGHISTHEOREMDOESNOTFOLLOWDIRECTLYFROMTHEINFINITYLEMMAALTHOUGHTHERESULTSAREVAGUELYSIMILARINDEEDKHONIGHIMSELFPROVEDASPECIALCASEOFKRUSKALSTHEOREMSHOWINGTHATTHEREISNOINFINITESEQUENCEOFPAIRWISEINCOMPARABLETUPLESOFNONNEGATIVEINTEGERSWHERECOMPARABILITYMEANSTHATALLCOMPONENTSOFONETUPLEARETHECORRESPONDINGCOMPONENTSOFTHEOTHERMATEMATIKAIESFIZIKAILAPOKFORFURTHERDEVELOPMENTSSEEJCOMBINATORIALTHEORYASEEALSONDERSHOWITZINFPROCLETTERSFORAPPLICATIONSTOTERMINATIONOFALGORITHMSENUMERATIONOFTREESSOMEOFTHEMOSTENUMERATIONOFTREESINSTRUCTIVEAPPLICATIONSOFTHEMATHEMATICALTHEORYOFTREESTOTHEANALYSISOFALGORITHMSARECONNECTEDWITHFORMULASFORCOUNTINGHOWMANYDIFFERENTTREESTHEREAREOFVARIOUSKINDSFOREXAMPLEIFWEWANTTOKNOWHOWMANYDIFFERENTORIENTEDTREESCANBECONSTRUCTEDHAVINGFOURINDISTINGUISHABLEVERTICESWEFINDTHATTHEREAREJUSTPOSSIBILITIESFOROURFIRSTENUMERATIONPROBLEMLETUSDETERMINETHENUMBEROFORIENTEDTREESENUMERATIONSTRUCTURALLYDIFFERENTORIENTEDTREESWITHVERTICESOBVIOUSLYIFTHETREEHASAROOTANDVARIOUSSUBTREESSUPPOSETHEREARESUBTREESWITHVERTEXWITHVERTICESETCTHENWEMAYCHOOSEOFTHEPOSSIBLEVERTEXTREESINCOMBINATIONSWITHREPETITIONWAYSSINCEREPETITIONSAREALLOWEDEXERCISECOMBWITHREPANDSOWESEETHATIFWECONSIDERTHEGENERATINGFUNCTIONWITHGENERATINGFUNCTIONSWEFINDTHATTHEIDENTITYTOGETHERWITHIMPLIESTHISISNOTANESPECIALLYNICEFORMFORSINCEITINVOLVESANINFINITEPRODUCTANDTHECOEFFICIENTSAPPEARONTHERIGHTHANDSIDEASOMEWHATMOREAESTHETICWAYTOREPRESENTISGIVENINEXERCISEITLEADSTOAREASONABLYEFFICIENTFORMULAFORCALCULATINGTHEVALUESSEEEXERCISEANDINFACTITALSOCANBEUSEDTODEDUCETHEASYMPTOTICBEHAVIOROFFORLARGESEEEXERCISEWEFINDTHATNOWTHATWEHAVEESSENTIALLYFOUNDTHENUMBEROFORIENTEDTREESITISQUITEORIENTEDTREESENUMERATIONFREETREESENUMERATIONINTERESTINGTODETERMINETHENUMBEROFSTRUCTURALLYDIFFERENTFREETREESWITHVERTICESTHEREAREJUSTTWODISTINCTFREETREESWITHFOURVERTICESNAMELYBECAUSETHEFIRSTTWOANDLASTTWOORIENTEDTREESOFBECOMEIDENTICALWHENTHEORIENTATIONISDROPPEDWEHAVESEENTHATITISPOSSIBLETOSELECTANYVERTEXOFAFREETREEANDTOASSIGNDIRECTIONSTOTHEEDGESINAUNIQUEWAYSOTHATITBECOMESANORIENTEDTREEWITHASROOTONCETHISHASBEENDONEFORAGIVENVERTEXSUPPOSETHEREARESUBTREESOFTHEROOTWITHVERTICESINTHESERESPECTIVESUBTREESCLEARLYISTHENUMBEROFARCSTOUCHINGANDINTHESECIRCUMSTANCESWESAYTHATTHEWEIGHTOFISTHUSINTHETREETHEVERTEXHASWEIGHTEACHOFTHESUBTREESLEADINGFROMHASTHREEOFTHENINEREMAININGVERTICESANDVERTEXHASWEIGHTAVERTEXWITHMINIMUMWEIGHTISCALLEDACENTROIDOFTHEFREETREECENTROIDLETANDBEASABOVEANDLETBETHEROOTSOFTHESUBTREESEMANATINGFROMIFISANYNODEINTHESUBTREEITSWEIGHTMUSTBEATLEASTSINCEWHENISTHEASSUMEDROOTTHEREAREATLEASTVERTICESINITSSUBTREECONTAININGTHUSIFISACENTROIDWEHAVEANDTHISISPOSSIBLEONLYIFASIMILARRESULTMAYBEDERIVEDIFWEREPLACEBYINTHISDISCUSSIONSOATMOSTONEOFTHESUBTREESATAVERTEXCANCONTAINACENTROIDTHISISASTRONGCONDITIONFORITIMPLIESTHATTHEREAREATMOSTTWOCENTROIDSINAFREETREEANDIFTWOCENTROIDSEXISTTHEYAREADJACENTSEEEXERCISECONVERSELYIFTHEREISACENTROIDINTHESUBTREESINCEANDTHEWEIGHTOFALLNODESINTHESUBTREESISATLEASTWEHAVEPROVEDTHATTHEVERTEXISTHEONLYCENTROIDOFAFREETREEIFANDONLYIFTHEREFORETHENUMBEROFFREETREESWITHVERTICESHAVINGONLYONECENTROIDISTHENUMBEROFORIENTEDTREESWITHVERTICESMINUSTHENUMBEROFSUCHORIENTEDTREESVIOLATINGCONDITIONTHELATTERCONSISTESSENTIALLYOFANORIENTEDTREEWITHVERTICESANDANOTHERORIENTEDTREEWITHVERTICESTHENUMBERWITHONECENTROIDTHEREFORECOMESTOAFREETREEWITHTWOCENTROIDSHASANEVENNUMBEROFVERTICESANDTHEWEIGHTOFEACHCENTROIDISSEEEXERCISESOIFTHENUMBEROFBICENTROIDALFREETREESISTHENUMBEROFCHOICESOFTHINGSOUTOFWITHREPETITIONNAMELYCOMBINATIONSWITHREPETITIONTOGETTHETOTALNUMBEROFFREETREESWETHEREFOREADDTOWHENISEVENTHEFORMOFEQSUGGESTSASIMPLEGENERATINGFUNCTIONANDINDEEDWEFINDWITHOUTDIFFICULTYTHATTHEGENERATINGFUNCTIONFORTHENUMBEROFSTRUCTURALLYDIFFERENTFREETREESISFREETREEGFTHISSIMPLERELATIONBETWEENANDISDUEPRIMARILYTOCJORDANWHOCONSIDEREDTHEPROBLEMINFREETREESENUMERATIONCENTROIDNOWLETUSTURNTOTHEQUESTIONOFENUMERATINGORDEREDTREESWHICHAREORDEREDTREESENUMERATIONOURPRINCIPALCONCERNWITHRESPECTTOCOMPUTERPROGRAMMINGALGORITHMSTHEREAREFIVESTRUCTURALLYDIFFERENTORDEREDTREESWITHFOURVERTICESTHEFIRSTTWOAREIDENTICALASORIENTEDTREESSOONLYONEOFTHEMAPPEAREDINABOVEBEFOREWEEXAMINETHENUMBEROFDIFFERENTORDEREDTREESTRUCTURESLETUSFIRSTCONSIDERTHECASEOFBINARYTREESSINCETHISISCLOSERTOTHEACTUALBINARYTREESENUMERATIONCOMPUTERREPRESENTATIONANDITISEASIERTOSTUDYLETBETHENUMBEROFDIFFERENTBINARYTREESWITHNODESFROMTHEDEFINITIONOFBINARYTREEITISAPPARENTTHATANDFORTHENUMBEROFPOSSIBILITIESISTHENUMBEROFWAYSTOPUTABINARYTREEWITHNODESTOTHELEFTOFTHEROOTANDANOTHERWITHNODESTOTHERIGHTSOFROMTHISRELATIONITISCLEARTHATTHEGENERATINGFUNCTIONSATISFIESTHEEQUATIONSOLVINGTHISQUADRATICEQUATIONANDUSINGTHEFACTTHATWEOBTAINBINGFSEEEXERCISEGOINGHALVESTHEDESIREDANSWERISTHEREFOREGENERATINGFUNCTIONSBINARYTREESENUMERATIONORDEREDTREESENUMERATIONBYSTIRLINGSFORMULATHISISASYMPTOTICALLYSOMEIMPORTANTGENERALIZATIONSOFEQAPPEARINEXERCISESANDRETURNINGTOOURQUESTIONABOUTORDEREDTREESWITHNODESWECANSEETHATTHISISESSENTIALLYTHESAMEQUESTIONASTHENUMBEROFBINARYTREESSINCEWEHAVEANATURALCORRESPONDENCEBETWEENBINARYTREESANDFORESTSANDATREEMINUSITSROOTISAFORESTHENCETHENUMBEROFORDEREDTREESWITHVERTICESISTHENUMBEROFBINARYTREESWITHVERTICESFORESTSENUMERATIONTHEENUMERATIONSPERFORMEDABOVEASSUMETHATTHEVERTICESAREINDISTINGUISHABLEPOINTSIFWELABELTHEVERTICESINANDINSISTTHATISTOBELABELEDTREESENUMERATIONORIENTEDTREESENUMERATIONTHEROOTWENOWGETDIFFERENTORIENTEDTREESTHEQUESTIONOFENUMERATIONFORLABELEDTREESISCLEARLYQUITEDIFFERENTFROMTHEONESOLVEDABOVEINTHISCASEITCANBEREPHRASEDASFOLLOWSCONSIDERDRAWINGTHREELINESPOINTINGFROMEACHOFTHEVERTICESANDTOANOTHERVERTEXTHEREARETHREECHOICESOFLINESEMANATINGFROMEACHVERTEXSOTHEREAREPOSSIBILITIESINALLHOWMANYOFTHESEWAYSWILLYIELDORIENTEDTREESWITHASTHEROOTTHEANSWERASWEHAVESEENISASIMILARREFORMULATIONOFTHESAMEPROBLEMTHISTIMEFORTHECASEOFVERTICESISTHEFOLLOWINGLETBEANINTEGERVALUEDFUNCTIONSUCHTHATANDFORALLINTEGERSWECALLATREEMAPPINGIFTHATISITERATEDTIMESEQUALSFORALLHOWMANYTREEMAPPINGSARETHERETHISPROBLEMCOMESUPFOREXAMPLEINCONNECTIONWITHRANDOMNUMBERGENERATIONWEWILLFINDRATHERSURPRISINGLYTHATONTHEAVERAGEEXACTLYONEOUTOFEVERYSUCHFUNCTIONSISATREEMAPPINGTHESOLUTIONTOTHISENUMERATIONPROBLEMCANREADILYBEDERIVEDUSINGTHEGENERALFORMULASFORCOUNTINGSUBTREESOFGRAPHSTHATHAVEBEENDEVELOPEDINPREVIOUSSECTIONSSEEEXERCISEBUTTHEREISAMUCHMOREINFORMATIVEWAYTOSOLVETHEPROBLEMONETHATGIVESUSANEWANDCOMPACTMANNERTOREPRESENTORIENTEDTREESTRUCTURESUPPOSETHATWEVEBEENGIVENANORIENTEDTREEWITHVERTICESANDWITHARCSWHERETHEARCSGOFROMTOFORALLEXCEPTTHEROOTTHEREISATLEASTONETERMINALLEAFVERTEXLETBETHESMALLESTNUMBEROFALEAFIFWRITEDOWNANDDELETEBOTHANDTHEARCFROMTHETREETHENLETBETHESMALLESTNUMBERWHOSEVERTEXISTERMINALINTHERESULTINGTREEIFWRITEDOWNANDDELETEBOTHANDTHEARCFROMTHETREEANDPROCEEDINTHISWAYUNTILALLVERTICESHAVEBEENDELETEDEXCEPTTHEROOTTHERESULTINGSEQUENCEOFNUMBERSISCALLEDTHECANONICALREPRESENTATIONOFTHEORIGINALORIENTEDTREECANONICALREPRESENTATIONOFORIENTEDTREESFOREXAMPLETHEORIENTEDTREEWITHVERTICESHASTHECANONICALREPRESENTATIONTHEIMPORTANTPOINTHEREISTHATWECANREVERSETHISPROCESSANDGOFROMANYSEQUENCEOFNUMBERSBACKTOTHEORIENTEDTREETHATPRODUCEDITFORIFWEHAVEANYSEQUENCEOFNUMBERSBETWEENANDLETBETHESMALLESTNUMBERTHATDOESNOTAPPEARINTHESEQUENCETHENLETBETHESMALLESTNUMBERTHATDOESNOTAPPEARINTHESEQUENCEANDSOONAFTEROBTAININGAPERMUTATIONOFTHEINTEGERSINTHISWAYDRAWARCSFROMVERTEXTOVERTEXFORTHISGIVESACONSTRUCTIONOFADIRECTEDGRAPHWITHNOORIENTEDCYCLESANDBYEXERCISEACYCLICMAKESDITREEITISANORIENTEDTREECLEARLYTHESEQUENCEISTHESAMEASTHESEQUENCEFORTHISORIENTEDTREESINCETHEPROCESSISREVERSIBLEWEHAVEOBTAINEDAONETOONECORRESPONDENCEBETWEENTUPLESOFNUMBERSANDORIENTEDTREESONTHESEVERTICESHENCETHEREAREDISTINCTORIENTEDTREESWITHLABELEDVERTICESIFWESPECIFYTHATONEVERTEXISTOBETHEROOTTHEREISCLEARLYNODIFFERENCEBETWEENONEVERTEXANDANOTHERSOTHEREAREDISTINCTORIENTEDTREESONHAVINGAGIVENROOTTHISACCOUNTSFORTHETREESINFROMTHISINFORMATIONITISEASYTODETERMINETHENUMBEROFFREETREESWITHLABELEDVERTICESSEEEXERCISETHENUMBEROFORDEREDTREESWITHLABELEDVERTICESISALSOEASYTODETERMINEONCEWEKNOWTHEANSWERTOTHATPROBLEMWHENNOLABELSAREINVOLVEDSEEEXERCISESOWEHAVEESSENTIALLYSOLVEDTHEPROBLEMSOFENUMERATINGTHETHREEFUNDAMENTALCLASSESOFTREESWITHBOTHLABELEDANDUNLABELEDVERTICESITISINTERESTINGTOSEEWHATWOULDHAPPENIFWEWERETOAPPLYOURUSUALMETHODOFGENERATINGFUNCTIONSTOTHEPROBLEMOFENUMERATINGLABELEDORIENTEDTREESFORTHISPURPOSEWEWOULDPROBABLYFINDITEASIESTTOCONSIDERTHEQUANTITYTHENUMBEROFLABELEDDIRECTEDGRAPHSWITHVERTICESWITHNOORIENTEDCYCLESANDWITHONEARCEMANATINGFROMEACHOFDESIGNATEDVERTICESTHENUMBEROFLABELEDORIENTEDTREESWITHASPECIFIEDROOTISTHEREFOREINTHISNOTATIONWEFINDBYSIMPLECOUNTINGARGUMENTSTHATFORANYFIXEDINTEGERTHEFIRSTOFTHESERELATIONSISOBTAINEDIFWEPARTITIONTHEUNDESIGNATEDGENERATINGFUNCTIONSVERTICESINTOTWOGROUPSANDWITHVERTICESINANDVERTICESINTHENTHEDESIGNATEDVERTICESAREPARTITIONEDINTOVERTICESTHATBEGINPATHSLEADINGINTOANDVERTICESTHATBEGINPATHSLEADINGINTORELATIONISOBTAINEDBYCONSIDERINGORIENTEDTREESINWHICHTHEROOTHASDEGREETHEFORMOFTHESERELATIONSINDICATESTHATWECANWORKPROFITABLYWITHTHEGENERATINGFUNCTIONINTHESETERMSEQSAYSTHATANDTHEREFOREBYINDUCTIONONWEFINDTHATNOWFROMEQWEOBTAININOTHERWORDSPUTTINGTHESOLUTIONTOOURPROBLEMCOMESFROMTHECOEFFICIENTSOFTHESOLUTIONTOTHETRANSCENDENTALEQUATIONTHISEQUATIONCANBESOLVEDWITHTHEUSEOFLAGRANGESINVERSIONFORMULAIMPLIESTHATWHEREWHENISANALYTICINTHENEIGHBORHOODOFTHEORIGINANDSEEEXERCISEREVALGPROOFINTHISCASEWEMAYSETANDWEDEDUCETHESOLUTIONINAGREEMENTWITHTHEANSWEROBTAINEDABOVEGENERATINGFUNCTIONSGNRANEYHASSHOWNTHATWECANEXTENDTHISMETHODINANIMPORTANTWAYTOOBTAINANEXPLICITPOWERSERIESFORTHESOLUTIONTOTHECONSIDERABLYMOREGENERALEQUATIONSOLVINGFORINTERMSOFAPOWERSERIESINANDFORTHISGENERALIZATIONLETUSCONSIDERDIMENSIONALVECTORSOFINTEGERSANDLETUSWRITEFORCONVENIENCESUPPOSETHATWEHAVECOLORSANDCONSIDERDIRECTEDGRAPHSINWHICHEACHVERTEXISASSIGNEDACOLORFOREXAMPLELETBETHENUMBEROFWAYSTODRAWARCSANDTOASSIGNCOLORSTOTHEVERTICESSUCHTHATIFORTHEREAREEXACTLYVERTICESOFCOLORHENCEIITHEREAREARCSONELEADINGFROMEACHOFTHEVERTICESIIIFORTHEREAREEXACTLYARCSLEADINGTOVERTICESOFCOLORHENCEIVTHEREARENOORIENTEDCYCLESHENCEUNLESSLETUSCALLTHISANNQCONSTRUCTIONFOREXAMPLEIFANDBLUETHENSHOWSACONSTRUCTIONWHENTHEREISONLYONECOLORWEHAVETHEORIENTEDTREEPROBLEMTHATWEHAVEALREADYSOLVEDRANEYSIDEAISTOGENERALIZETHEONEDIMENSIONCONSTRUCTIONTODIMENSIONSLETNANDQBEFIXEDPLACEVECTORSOFNONNEGATIVEINTEGERSANDLETFOREACHNQCONSTRUCTIONANDEACHNUMBERWEWILLDEFINEACANONICALREPRESENTATIONCONSISTINGOFFOURTHINGSAANUMBERWITHBASEQUENCEOFCOLORSWITHOFCOLORCASEQUENCEOFCOLORSWITHOFCOLORDFORASEQUENCEOFELEMENTSOFTHESETTHECANONICALREPRESENTATIONISDEFINEDTHUSFIRSTLISTTHEVERTICESINTHEORDEROFTHECANONICALREPRESENTATIONOFORIENTEDTREESASGIVENABOVEANDTHENWRITEBELOWVERTEXTHENUMBEROFTHEVERTEXONTHEARCLEADINGFROMLETANDLETTHESEQUENCECOFCOLORSBETHERESPECTIVECOLORSOFTHEVERTICESLETTHESEQUENCEBOFCOLORSBETHERESPECTIVECOLORSOFTHEVERTICESFINALLYLETTHETHSEQUENCEINDBEWHEREIFTHETHCOLOREDELEMENTOFTHESEQUENCEISTHETHCOLOREDELEMENTOFTHESEQUENCEFOREXAMPLECONSIDERCONSTRUCTIONANDLETWESTARTBYLISTINGANDBELOWTHEMASFOLLOWSHENCEANDSEQUENCECREPRESENTSTHERESPECTIVECOLORSOFNAMELYREDYELLOWBLUEBLUEYELLOWSEQUENCEBREPRESENTSTHERESPECTIVECOLORSOFNAMELYBLUEYELLOWREDYELLOWREDBLUEREDFINALLYTOGETTHESEQUENCESINDPROCEEDASFOLLOWSHENCETHEDSEQUENCESAREANDFROMTHECANONICALREPRESENTATIONWECANRECOVERBOTHTHEORIGINALNQCONSTRUCTIONANDTHENUMBERASFOLLOWSFROMAANDCWEKNOWTHECOLOROFVERTEXTHELASTELEMENTOFTHEDSEQUENCEFORTHISCOLORTELLSUSINCONJUNCTIONWITHBTHEPOSITIONOFINTHESEQUENCEHENCEWEKNOWANDTHECOLORSOFALLVERTICESTHENTHESUBSEQUENCESINDTOGETHERWITHBANDCDETERMINEANDFINALLYTHEDIRECTEDGRAPHISRECONSTRUCTEDBYLOCATINGASWEDIDFORORIENTEDTREESTHEREVERSIBILITYOFTHISCANONICALREPRESENTATIONALLOWSUSTOCOUNTTHENUMBEROFPOSSIBLENQCONSTRUCTIONSSINCETHEREARECHOICESFORAANDTHEMULTINOMIALCOEFFICIENTCHOICESFORBANDCHOICESFORCANDCHOICESFORDDIVIDINGBYTHECHOICESFORWEHAVETHEGENERALRESULTCANONICALREPRESENTATIONOFORIENTEDTREESFURTHERMOREWECANDERIVEANALOGSOFEQSANDGENERATINGFUNCTIONSWITHTHECONVENTIONTHATANDIFANYORISNEGATIVEORIFWHEREISTHEVECTORWITHINPOSITIONANDZEROSELSEWHERERELATIONISBASEDONBREAKINGTHEVERTICESINTOTWOPARTSHAVINGANDELEMENTSRESPECTIVELYTHESECONDRELATIONISDERIVEDBYREMOVINGTHEUNIQUEROOTANDCONSIDERINGTHEREMAININGSTRUCTUREWENOWOBTAINTHEFOLLOWINGRESULTTHEOREMRGEORGENRANEYCANADIANJMATHLETWHEREISDEFINEDBYANDWHERENQAREDIMENSIONALINTEGERVECTORSTHENSATISFIESTHEIDENTITYBYANDINDUCTIONONWEFINDTHATNOWBYTHESPECIALCASEWHEREANDINANDISESPECIALLYIMPORTANTINAPPLICATIONSSOITHASBECOMEKNOWNASTHETREETREEFUNCTIONFUNCTIONSEECORLESSGONNETHAREJEFFREYANDKNUTHADVANCESINCOMPUTATIONALMATHFORADISCUSSIONOFTHISFUNCTIONSHISTORYANDSOMEOFITSREMARKABLEPROPERTIESORIENTEDTREESENUMERATIONASURVEYOFENUMERATIONFORMULASFORTREESBASEDONSKILLFULMANIPULATIONSOFGENERATINGFUNCTIONSHASBEENGIVENBYIJGOODPROCCAMBRIDGEPHILOSSOCMORERECENTLYAMATHEMATICALTHEORYOFSPECIESDEVELOPEDBYANDREJOYALADVANCESINMATHHASLEDTOAHIGHLEVELVIEWPOINTINWHICHALGEBRAICOPERATIONSONGENERATINGFUNCTIONSCORRESPONDDIRECTLYTOCOMBINATORIALPROPERTIESOFSTRUCTURESTHEBOOKCOMBINATORIALSPECIESANDTREELIKESTRUCTURESBYFBERGERONGLABELLEANDPLEROUXCAMBRIDGEUNIVPRESSPRESENTSNUMEROUSEXAMPLESOFTHISBEAUTIFULANDINSTRUCTIVETHEORYGENERALIZINGMANYOFTHEFORMULASDERIVEDABOVEEXERCISESMGPOLYASHOWTHATHINTTAKELOGARITHMSOFROTTERSHOWTHATTHENUMBERSSATISFYTHEFOLLOWINGCONDITIONWHERETHESEFORMULASAREUSEFULFORTHECALCULATIONOFTHESINCEBYDIFFERENTIATIONANDEQUATINGTHECOEFFICIENTSOFWEOBTAINTHEIDENTITYNOWINTERCHANGETHEORDEROFSUMMATIONMWRITEACOMPUTERPROGRAMTHATDETERMINESTHENUMBEROFUNLABELEDFREETREESANDOFORIENTEDTREESWITHVERTICESFORUSETHERESULTOFEXERCISEEXPLOREARITHMETICALPROPERTIESOFTHESENUMBERSCANANYTHINGBESAIDABOUTTHEIRPRIMEFACTORSORTHEIRRESIDUESMODULOASYMPORIENTEDTREESGPOLYAUSINGCOMPLEXVARIABLETHEORYDETERMINEASYMPTOTICSTHEASYMPTOTICVALUEOFTHENUMBEROFORIENTEDTREESASFOLLOWSASHOWTHATTHEREISAREALNUMBERBETWEENANDFORWHICHHASRADIUSOFCONVERGENCEANDCONVERGESABSOLUTELYFORALLCOMPLEXSUCHTHATHAVINGMAXIMUMVALUECONVERGENCEOFPOWERSERIESSINGULARITYOFAFUNCTIONHINTWHENAPOWERSERIESHASNONNEGATIVECOEFFICIENTSITEITHERISENTIREORHASAPOSITIVEREALSINGULARITYANDSHOWTHATISBOUNDEDASBYUSINGTHEIDENTITYINEXERCISEBLETSHOWTHATINANEIGHBORHOODOFISANALYTICINEACHVARIABLESEPARATELYDOUBLEGENERATINGFUNCTIONCSHOWTHATATTHEPOINTWEHAVEHENCEDATTHEPOINTSHOWTHATEWHENANDSHOWTHATHENCEHASONLYONESINGULARITYONFPROVETHATTHEREISAREGIONLARGERTHANINWHICHWHEREISANANALYTICFUNCTIONOFGPROVETHATCONSEQUENTLYNOTEANDACERTAINLYCONVERGESATLEASTFORSINCEISLESSTHANTHENUMBEROFORDEREDTREESSINCEISINFINITEANDALLCOEFFICIENTSAREPOSITIVETHEREISAPOSITIVENUMBERSUCHTHATCONVERGESFORANDTHEREISASINGULARITYATSEEEXERCISEPRINGSHEIMLETSINCEWESEETHATIMPLIESSOISBOUNDEDANDEXISTSTHUSANDBYABELSLIMITTHEOREMBAREANALYTICFORANDCONVERGESUNIFORMLYINASLIGHTLYSMALLERDISKCIFTHEIMPLICITFUNCTIONTHEOREMIMPLIESTHATTHEREISANANALYTICFUNCTIONINANEIGHBORHOODOFSUCHTHATBUTTHISIMPLIESCONTRADICTINGTHEFACTTHATISSINGULARATDOBVIOUSEANDSINCETHECOEFFICIENTSOFAREALLPOSITIVEHENCEASINCISREGULARATALLSUCHPOINTSFNEARWEHAVETHEIDENTITYHIGHERORDERTERMSWHERESOISANANALYTICFUNCTIONOFHEREBYTHEIMPLICITFUNCTIONTHEOREMCONSEQUENTLYTHEREISAREGIONMINUSACUTINWHICHHASTHESTATEDFORMTHEMINUSSIGNISCHOSENSINCEAPLUSSIGNWOULDMAKETHECOEFFICIENTSULTIMATELYNEGATIVEGANYFUNCTIONOFTHESTATEDFORMHASCOEFFICIENTASYMPTOTICALLYNOTETHATFORFURTHERDETAILSANDASYMPTOTICVALUESOFTHENUMBEROFFREETREESSEEROTTERANNALSOFMATHEMATICSMACAYLEYLETBETHENUMBEROFUNLABELEDORIENTEDTREESHAVINGLEAVESNAMELYVERTICESWITHINDEGREEZEROANDHAVINGATLEASTTWOSUBTREESATEVERYOTHERVERTEXTHUSBYVIRTUEOFTHETWOTREESFINDAFORMULAANALOGOUSTOFORTHEGENERATINGFUNCTIONTHEREFOREWEFINDWHENTHENUMBEROFSERIESPARALLELNETWORKSWITHEDGESISSEEPAMACMAHONPROCLONDONMATHSOCORIENTEDBINARYMLETANORIENTEDBINARYTREEBEANORIENTEDTREEINWHICHEACHORIENTEDBINARYTREEVERTEXHASINDEGREETWOORLESSFINDAREASONABLYSIMPLERELATIONTHATDEFINESTHEGENERATINGFUNCTIONFORTHENUMBEROFDISTINCTORIENTEDBINARYTREESWITHVERTICESANDFINDTHEFIRSTFEWVALUESTHEFUNCTIONSATISFIESTHESIMPLERRELATIONJHMWEDDERBURNANNALSOFMATHINCIDENTALLYTHEREAREORIENTEDTREESWITHLEAVESANDINDEGREEATNONLEAVESASYMPORIENTEDBINARYOBTAINASYMPTOTICVALUESFORTHENUMBERSOFEXERCISESEEASYMPTOTICSORIENTEDBINARYTREEEXERCISEWHEREANDSATISFIESACCORDINGTOEQTHEREARESIXFREETREESWITHSIXVERTICESDRAWTHEMANDINDICATETHEIRCENTROIDSMFROMTHEFACTTHATATMOSTONESUBTREEOFAVERTEXINAFREETREECANCONTAINACENTROIDPROVETHATTHEREAREATMOSTTWOCENTROIDSINAFREETREEFURTHERMOREIFTHEREARETWOTHENTHEYMUSTBEADJACENTIFTHEREARETWOCENTROIDSBYCONSIDERINGAPATHFROMONETOTHEOTHERWEFINDTHATTHERECANTBEINTERMEDIATEPOINTSSOANYTWOCENTROIDSAREADJACENTATREECANNOTCONTAINTHREEMUTUALLYADJACENTVERTICESSOTHEREAREATMOSTTWOMPROVETHATAFREETREEWITHVERTICESANDTWOCENTROIDSCONSISTSOFTWOFREETREESWITHVERTICESJOINEDBYANEDGECONVERSELYIFTWOFREETREESWITHVERTICESAREJOINEDBYANEDGEWEOBTAINAFREETREEWITHVERTICESANDTWOCENTROIDSIFANDAREADJACENTLETBETHENUMBEROFVERTICESINTHESUBTREEOFTHENTHEARGUMENTINTHETEXTSHOWSTHATIFISACENTROIDWEIGHTTHEREFOREIFBOTHANDARECENTROIDSWEIGHTWEIGHTINTERMSOFTHISNOTATIONTHEARGUMENTINTHETEXTGOESONTOSHOWTHATIFTHEREISACENTROIDINTHESUBTREEOFSOIFTWOFREETREESWITHVERTICESAREJOINEDBYANEDGEBETWEENANDWEOBTAINAFREETREEINWHICHANDTHEREMUSTBETWOCENTROIDSNAMELYANDITISANICEPROGRAMMINGEXERCISETOCOMPUTEFORALLADJACENTANDINSTEPSFROMTHISINFORMATIONWECANQUICKLYFINDTHECENTROIDSANEFFICIENTALGORITHMFORCENTROIDLOCATIONWASFIRSTGIVENBYAJGOLDMANTRANSPORTATIONSCIENUMTARYMTHETEXTDERIVESTHENUMBEROFDIFFERENTBINARYTREESWITHNODESGENERALIZETHISTOFINDTHENUMBEROFDIFFERENTARYTARYTREESENUMERATIONTREESWITHNODESSEEEXERCISETERNARYTRAVERSALAARYTREEISEITHEREMPTYORCONSISTSOFAROOTANDDISJOINTARYTREESHINTUSEEQGENBINGFOFSECTIONTHUSBYEQGENBINGFSOTHENUMBEROFARYTREESISMFINDTHENUMBEROFLABELEDORIENTEDTREESWITHVERTICESBYUSINGDETERMINANTSANDTHERESULTOFEXERCISEMTXTREETHMSEEALSOEXERCISECOMBDETCONSIDERTHEDIRECTEDGRAPHTHATHASONEARCFROMTOFORALLTHEMATRIXOFEXERCISEMTXTREETHMISACOMBINATORIALCOMBINATORIALMATRIXMATRIXWITHONTHEDIAGONALANDOFFTHEDIAGONALSOITSDETERMINANTISTHENUMBEROFORIENTEDTREESWITHAGIVENROOTEXERCISESYMMTXTREETHMCOULDALSOBEUSEDWHATORIENTEDTREEONTHEVERTICESHASTHECANONICALREPRESENTATIONCANONICALREPRESENTATIONOFORIENTEDTREESTRUEORFALSETHELASTENTRYINTHECANONICALREPRESENTATIONOFANORIENTEDTREEISALWAYSTHEROOTOFTHATTREETRUESINCETHEROOTWILLNOTBECOMEALEAFUNTILALLOTHERBRANCHESHAVEBEENREMOVEDDISCUSSTHERELATIONSHIPSTHATEXISTIFANYBETWEENTHETOPOLOGICALSORTALGORITHMOFSECTIONANDTHECANONICALREPRESENTATIONOFANORIENTEDTREEINTHECANONICALREPRESENTATIONISATOPOLOGICALSORTOFTHEORIENTEDTREECONSIDEREDASADIRECTEDGRAPHBUTTHISORDERWOULDNOTINGENERALBEOUTPUTBYALGORITHMTOPSORTALGALGORITHMTOPSORTALGCANBECHANGEDSOTHATITDETERMINESTHEVALUESOFIFTHEINSERTINTOQUEUEOPERATIONOFSTEPTISREPLACEDBYAPROCEDURETHATADJUSTSLINKSSOTHATTHEENTRIESOFTHELISTAPPEARINASCENDINGORDERFROMFRONTTOREARTHENTHEQUEUEBECOMESAPRIORITYQUEUEHOWEVERAGENERALPRIORITYQUEUEISNTNEEDEDTOFINDTHECANONICALREPRESENTATIONWEONLYNEEDTOSWEEPTHROUGHTHEVERTICESFROMTOLOOKINGFORLEAVESWHILEPRUNINGOFFPATHSFROMNEWLEAVESLESSTHANTHESWEEPPOINTERSEETHEFOLLOWINGEXERCISEDESIGNANALGORITHMASEFFICIENTASPOSSIBLETHATCONVERTSFROMTHECANONICALREPRESENTATIONOFANORIENTEDTREETOACONVENTIONALCOMPUTERREPRESENTATIONUSINGPARENTLINKSDDSETNTHENSETFVJFVJFORTHUSVERTEXISALEAFIFANDONLYIFKSETANDDINCREASEONEORMORETIMESUNTILKTHENSETDSETLLLANDDIFSETLANDTERMINATETHEALGORITHMDIFLANDGOTODOTHERWISEGOBACKTODONECYCLEMAPSMLETBEANINTEGERVALUEDFUNCTIONWHEREFORALLINTEGERSDEFINEIFFORSOMEWHEREANDBYUSINGMETHODSOFENUMERATIONLIKETHOSEINTHISSECTIONSHOWTHATTHENUMBEROFFUNCTIONSSUCHTHATFORALLANDISWHEREISTHEFUNCTIONDEFINEDINSECTIONTHEREMUSTBEEXACTLYONECYCLEWHERECANONICALREPRESENTATIONOFORIENTEDTREESANDWEWILLENUMERATEALLHAVINGACYCLEOFLENGTHSUCHTHATTHEITERATESOFEACHULTIMATELYCOMEINTOTHISCYCLEDEFINETHECANONICALREPRESENTATIONASINTHETEXTNOWISINTHECYCLESOWECONTINUETOGETACANONICALREPRESENTATIONBYWRITINGDOWNTHERESTOFTHECYCLEETCFOREXAMPLETHEFUNCTIONWITHWHOSEGRAPHISSHOWNHERELEADSTOTHEREPRESENTATIONWEOBTAINASEQUENCEOFNUMBERSINWHICHTHELASTAREDISTINCTCONVERSELYFROMANYSUCHSEQUENCEWECANREVERSETHECONSTRUCTIONASSUMINGTHATISKNOWNHENCETHEREAREPRECISELYSUCHFUNCTIONSHAVINGACYCLEFORRELATEDRESULTSSEEEXERCISERANDOMMAPCOMPSTHEFORMULAWASFIRSTOBTAINEDBYLKATZANNALSOFMATHSTATISTICSTOANEVILLEMAPSHOWTHATTHEFOLLOWINGMETHODISANOTHERWAYTODEFINEAONETOONECORRESPONDENCEBETWEENTUPLESOFNUMBERSFROMTOANDORIENTEDTREESWITHLABELEDVERTICESLETTHELEAVESOFTHETREEBEINASCENDINGORDERLETBETHEPATHFROMTOTHEROOTANDWRITEDOWNTHEVERTICESTHENLETBETHESHORTESTORIENTEDPATHFROMSUCHTHATHASALREADYBEENWRITTENDOWNANDWRITEDOWNTHENLETBETHESHORTESTORIENTEDPATHFROMSUCHTHATHASALREADYBEENWRITTENANDWRITEANDSOONFOREXAMPLETHETREEWOULDBEENCODEDASSHOWTHATTHISPROCESSISREVERSIBLEANDINPARTICULARDRAWTHEORIENTEDTREEWITHVERTICESANDREPRESENTATIONTORECONSTRUCTTHETREEFROMASEQUENCEBEGINWITHASTHEROOTANDSUCCESSIVELYATTACHARCSTOTHETREETHATPOINTTOIFVERTEXHASAPPEAREDEARLIERLEAVETHEINITIALVERTEXOFTHEARCLEADINGTONAMELESSOTHERWISEGIVETHISVERTEXTHENAMEAFTERALLARCSHAVEBEENPLACEDGIVENAMESTOALLVERTICESTHATREMAINNAMELESSBYUSINGTHENUMBERSTHATHAVENOTYETAPPEAREDASSIGNINGNAMESININCREASINGORDERTONAMELESSVERTICESINTHEORDEROFTHEIRCREATIONFOREXAMPLEFROMWEWOULDCONSTRUCTTHETREESHOWNONTHERIGHTTHEREISNOSIMPLECONNECTIONBETWEENTHISMETHODANDTHEONEINTHETEXTSEVERALMOREREPRESENTATIONSAREPOSSIBLESEETHEARTICLEBYEHNEVILLEPROCCAMBRIDGEPHILSOCAMHOWMANYDIFFERENTLABELEDORIENTEDTREESARETHEREHAVINGVERTICESOFWHICHARELEAVESHAVEINDEGREEZEROTERMINALNODESTHECANONICALREPRESENTATIONWILLHAVEPRECISELYDIFFERENTVALUESSOWEENUMERATETHESEQUENCESOFNUMBERSWITHTHISPROPERTYTHEANSWERISSTIRLINGNUMBERSCANONICALREPRESENTATIONOFORIENTEDTREESMJRIORDANHOWMANYDIFFERENTLABELEDORIENTEDTREESARETHEREHAVINGVERTICESOFWHICHHAVEINDEGREEHAVEINDEGREEHAVEINDEGREENOTETHATNECESSARILYANDCONSIDERTHECANONICALREPRESENTATIONOFSUCHTREESWEAREASKINGHOWMANYTERMSOFHAVEEXPONENTSZEROEXPONENTSONEETCTHISISPLAINLYTHECOEFFICIENTOFSUCHATERMTIMESTHENUMBEROFSUCHTERMSNAMELYMENUMERATETHENUMBEROFLABELEDORIENTEDTREESINWHICHEACHVERTEXHASINDEGREEZEROORTWOSEEEXERCISEANDEXERCISETREESTREESORIENTEDTHEREARENONEWITHVERTICESIFTHEREAREVERTICESTHEANSWERISOBTAINEDFROMEXERCISEWITHNAMELYENUMLABELEDFREETREESMHOWMANYLABELEDFREETREESAREPOSSIBLEWITHFREETREESENUMERATIONVERTICESINOTHERWORDSIFWEAREGIVENVERTICESTHEREAREPOSSIBLEGRAPHSHAVINGTHESEVERTICESDEPENDINGONWHICHOFTHEPOSSIBLEEDGESAREINCORPORATEDINTOTHEGRAPHHOWMANYOFTHESEGRAPHSAREFREETREESEXACTLYFORIFISAPARTICULARVERTEXTHEFREETREESAREINONETOONECORRESPONDENCEWITHORIENTEDTREESHAVINGROOTENUMLABELEDORDEREDTREESMHOWMANYORDEREDTREESAREPOSSIBLEWITHLABELEDVERTICESGIVEASIMPLEFORMULAINVOLVINGFACTORIALSORDEREDTREESENUMERATIONITISPOSSIBLETOPUTTHELABELSONEVERYUNLABELEDORDEREDTREEINWAYSANDEACHOFTHESELABELEDORDEREDTREESISDISTINCTSOTHETOTALNUMBERISMALLLABELEDORIENTEDTREESWITHVERTICESANDWITHROOTARESHOWNINHOWMANYWOULDTHEREBEIFWELISTEDALLLABELEDORDEREDTREESWITHTHESEVERTICESANDTHISROOTTHEREAREASMANYWITHONEGIVENROOTASWITHANOTHERSOTHEANSWERINGENERALISTIMESTHEANSWERINEXERCISEANDINTHISPARTICULARCASETHEANSWERISENUMLABELEDORIENTEDFORESTSMWHATISTHEVALUEOFTHEQUANTITYTHATAPPEARSINEQSANDGIVEANEXPLICITFORMULATHETEXTONLYMENTIONSTHATFORTHESPECIALCASEINEQINTERMSOFTHENOTATIONATTHEENDOFTHISSECTIONDRAWTHECONSTRUCTIONANALOGOUSTOANDFINDTHENUMBERTHATCORRESPONDSTOTHECANONICALREPRESENTATIONHAVINGTHESEQUENCESOFCOLORSREDYELLOWBLUEREDYELLOWBLUEREDBLUEBLUEANDREDYELLOWBLUEYELLOWYELLOWBLUEYELLOWANDTHEINDEXSEQUENCESMLETBEVERTICESOFADIRECTEDGRAPHWHERELETBEANYFUNCTIONFROMTHESETINTOTHESETANDLETTHEDIRECTEDGRAPHCONTAINEXACTLYARCSFROMTOFORSHOWTHATTHENUMBEROFWAYSTOADDADDITIONALARCSONEFROMEACHOFTHESTOONEOFTHESSUCHTHATTHERESULTINGDIRECTEDGRAPHCONTAINSNOORIENTEDCYCLESISPROVETHISBYGENERALIZINGTHECANONICALREPRESENTATIONMETHODTHATISSETUPAONETOONECORRESPONDENCEBETWEENALLSUCHWAYSOFADDINGFURTHERARCSANDTHESETOFALLSEQUENCESOFINTEGERSWHEREFORANDGIVENAFUNCTIONFROMTOSUCHTHATADDINGARCSFROMTOINTRODUCESNOORIENTEDCYCLESCONSTRUCTASEQUENCEASFOLLOWSCALLVERTEXFREEIFTHEREISNOORIENTEDPATHFROMTOFORANYSINCETHEREARENOORIENTEDCYCLESTHEREMUSTBEATLEASTONEFREEVERTEXLETBETHESMALLESTINTEGERFORWHICHISFREEANDASSUMINGTHATHAVEBEENCHOSENLETBETHESMALLESTINTEGERDIFFERENTFROMFORWHICHISFREEINTHEGRAPHOBTAINEDBYDELETINGTHEARCSFROMTOFORTHISRULEDEFINESAPERMUTATIONOFTHEINTEGERSLETFORTHISDEFINESASEQUENCESUCHTHATFORANDCONVERSELYIFSUCHASEQUENCEISGIVENCALLAVERTEXFREEIFTHEREISNOFORWHICHANDSINCETHEREAREATMOSTNONFREEVERTICESLETBETHESMALLESTINTEGERFORWHICHISFREEANDASSUMINGTHATHAVEBEENCHOSENLETBETHESMALLESTINTEGERDIFFERENTFROMFORWHICHISFREEWITHRESPECTTOTHESEQUENCETHISRULEDEFINESAPERMUTATIONOFTHEINTEGERSLETFORTHISDEFINESAFUNCTIONSUCHTHATADDINGARCSFROMTOINTRODUCESNOORIENTEDCYCLESMBIPARTITETREESUSETHERESULTOFEXERCISETOENUMERATETHENUMBEROFLABELEDFREETREESONVERTICESSUCHTHATEACHEDGEJOINSTOFORSOMEANDCANONICALREPRESENTATIONOFORIENTEDTREESLETBEANYOFTHEFUNCTIONSFROMTOANDCONSIDERTHEDIRECTEDGRAPHWITHVERTICESANDARCSFROMTOFORAPPLYEXERCISEWITHTOSHOWTHATTHEREAREWAYSTOADDFURTHERARCSFROMTHESTOTHESTOOBTAINANORIENTEDTREEWITHROOTSINCETHEREISAONETOONECORRESPONDENCEBETWEENTHEDESIREDSETOFFREETREESANDTHESETOFORIENTEDTREESWITHROOTTHEANSWERISTHISCONSTRUCTIONCANBEEXTENSIVELYGENERALIZEDSEEDEKNUTHCANADIANJMATHABELANDTREESPROVETHATIFANDIFTHENFORFIXEDANDFORSUFFICIENTLYSMALLANDUSETHEFACTTHATINTHEDISCUSSIONFOLLOWINGEQINTHISFORMULASTANDSFORANARBITRARYREALNUMBERNOTEASACONSEQUENCEOFTHISFORMULAWEHAVETHEIDENTITYTHISIMPLIESABELSBINOMIALTHEOREMEQABELBINOMOFSECTIONCOMPAREALSOEQROTHECONVOFTHATSECTIONIFTHENANDWESEETHATITISSUFFICIENTTOPROVETHEIDENTITYFORNOWIFWEKNOWBYEXERCISETHATFORNONNEGATIVEINTEGERSHENCEEXERCISEINDUCEDFUNCDERIVESCONSIDERABLYMOREGENERALRESULTSHURWITZANDTREESMLETBEPOSITIVEINTEGERSCONSIDERASETOFVERTICESINWHICHARCSHAVEBEENDRAWNFROMTOFORALLANDACCORDINGTOEXERCISETHEREAREWAYSTODRAWONEARCFROMEACHOFTOOTHERVERTICESSUCHTHATTHERESULTINGDIRECTEDGRAPHCONTAINSNOORIENTEDCYCLESUSETHISFACTTOPROVEHURWITZSGENERALIZATIONOFTHEBINOMIALTHEOREMHURWITZSBINOMIALTHEOREMWHERETHESUMISOVERALLCHOICESOFEQUALTOOREACHGRAPHDESCRIBEDDEFINESASETWHEREISINIFANDONLYIFTHEREISAPATHFROMTOFORSOMEFORAGIVENEACHGRAPHDESCRIBEDISCOMPOSEDOFTWOINDEPENDENTPARTSONEOFTHEGRAPHSONTHEVERTICESFORANDWHEREPLUSONEOFTHEGRAPHSONTHEOTHERVERTICESSCHROEDERNUMBERSMSOLVEEXERCISEFORORDEREDTREESTHATISDERIVETHEGENERATINGFUNCTIONFORTHENUMBEROFUNLABELEDORDEREDTREESWITHTERMINALNODESANDNONODESOFDEGREEHENCENOTESANOTHERPROBLEMEQUIVALENTTOTHISONEWASPOSEDANDSOLVEDBYESCHRODERZEITSCHRIFTFURMATHEMATIKUNDPHYSIKWHODETERMINEDTHENUMBEROFWAYSTOINSERTNONOVERLAPPINGDIAGONALSINACONVEXGONTHESENUMBERSFORAREJUSTHALFTHEVALUESOBTAINEDINEXERCISESCHROEDERGFSINCEPRATTSGRAMMARALLOWSTHEROOTNODEOFTHEASSOCIATEDPARSETREETOHAVEDEGREEONETHEASYMPTOTICVALUEISCALCULATEDINEXERCISESCHROEDERASYMPCURIOUSLYTHEVALUESEEMSTOHAVEBEENCALCULATEDALREADYBYHIPPARCHUSINTHESECONDCENTURYASTHENUMBEROFAFFIRMATIVECOMPOUNDPROPOSITIONSTHATCANBEMADEFROMONLYTENSIMPLEPROPOSITIONSSEERPSTANLEYAMMFACERBIARCHIVEFORHISTORYOFEXACTSCIENCESTREESBYDEGREESMAERDELYIANDIMHETHERINGTONEDINBURGHMATHNOTESHOWMANYORDEREDUNLABELEDTREESARETHEREWITHNODESOFDEGREEOFDEGREEOFDEGREEANDNONEOFDEGREEHIGHERTHANANEXPLICITSOLUTIONTOTHISPROBLEMCANBEGIVENINTERMSOFFACTORIALSTHEREBYCONSIDERABLYGENERALIZINGTHERESULTOFEXERCISEZEROIFSEEEXERCISEHOWMANYLEAVESOTHERWISETOPROVETHISRESULTWERECALLTHATANUNLABELEDTREEWITHNODESISCHARACTERIZEDBYTHESEQUENCEOFTHEDEGREESOFTHENODESINPOSTORDERSECTIONFURTHERMORESUCHASEQUENCEOFDEGREESCORRESPONDSTOATREEIFANDONLYIFFORTHISIMPORTANTPROPERTYOFPOLISHPOLISHNOTATIONPOSTFIXNOTATIONISREADILYPROVEDBYINDUCTIONSEEALGORITHMLOCALFUNCWITHAFUNCTIONTHATCREATESATREELIKETHETREEFUNCTIONOFSECTIONINPARTICULARMUSTBETHEANSWERTOOURPROBLEMISTHEREFORETHENUMBEROFSEQUENCESWITHOCCURRENCESOFFORNAMELYTHEMULTINOMIALCOEFFICIENTMINUSTHENUMBEROFSUCHSEQUENCESFORWHICHFORSOMEWEMAYENUMERATETHELATTERSEQUENCESASFOLLOWSLETBEMINIMALSUCHTHATTHENWHEREANDWEMAYFORMTHESUBSEQUENCEWHICHHASOCCURRENCESOFFOROCCURRENCESOFFORNOWISEQUALTOWHENANDEQUALTOWHENWHENITISITFOLLOWSTHATGIVENANDANYSEQUENCETHECONSTRUCTIONCANBEREVERSEDHENCETHENUMBEROFSEQUENCESREFLECTIONPRINCIPLETHATHAVEAGIVENVALUEOFANDISTHEMULTINOMIALCOEFFICIENTTHENUMBEROFSEQUENCESTHATCORRESPONDTOTREESISTHEREFOREOBTAINEDBYSUMMINGOVERTHEPOSSIBLEVALUESOFANDANDTHELATTERSUMISANEVENSIMPLERPROOFOFTHISRESULTHASBEENGIVENBYGNRANEYTRANSACTIONSOFTHEAMERICANMATHSOCIETYIFISANYSEQUENCEWITHAPPEARANCESOFTHEREISPRECISELYONECYCLICREARRANGEMENTTHATCORRESPONDSTOATREENAMELYTHEREARRANGEMENTWHEREISMAXIMALSUCHTHATISMINIMALTHISARGUMENTINTHECASEOFBINARYTREESWASAPPARENTLYFIRSTDISCOVEREDBYCSPEIRCEINANUNPUBLISHEDMANUSCRIPTSEEHISNEWELEMENTSOFMATHEMATICSTHEHAGUEMOUTONITWASDISCOVEREDINTHECASEOFARYTREESBYDVORETZKYANDTARYTREESENUMERATIONMOTZKINDUKEMATHJSTILLANOTHERPROOFBYGBERGMANINDUCTIVELYREPLACESBYIFALGEBRAUNIVERSALISTHEMETHODSABOVECANBEGENERALIZEDTOSHOWTHATTHENUMBEROFORDEREDUNLABELEDFORESTSHAVINGTREESANDNODESOFDEGREEISPROVIDEDTHATTHECONDITIONISSATISFIEDFORESTSENUMERATIONMULTITREEINVERSIONMTHETEXTGIVESANEXPLICITPOWERSERIESSOLUTIONFORTHEEQUATIONBASEDONENUMERATIONFORMULASFORCERTAINORIENTEDFORESTSSIMILARLYSHOWTHATTHEENUMERATIONFORMULAOFEXERCISELEADSTOANEXPLICITPOWERSERIESSOLUTIONTOTHEEQUATIONEXPRESSINGASAPOWERSERIESINHEREAREFIXEDNONNEGATIVEINTEGERSATLEASTONEOFWHICHISZEROCONSIDERTHENUMBEROFTREESWITHNODESLABELEDNODESLABELEDANDSUCHTHATEACHNODELABELEDHASDEGREELETTHISNUMBERBEWITHTHESPECIFIEDDEGREESREGARDEDASFIXEDTHEGENERATINGFUNCTIONSATISFIESTHEIDENTITYSINCEENUMERATESTHETREESWHOSEROOTISLABELEDANDBYTHERESULTOFTHEPREVIOUSEXERCISEMOREGENERALLYSINCEENUMERATESTHENUMBEROFORDEREDFORESTSHAVINGSUCHLABELSWEHAVEFORINTEGERTHESEFORMULASAREMEANINGFULWHENANDTHEYAREESSENTIALLYEQUIVALENTTOLAGRANGESINVERSIONFORMULAENUMERATIONOFTREESGENERATINGFUNCTIONSPATHLENGTHTHECONCEPTOFTHEPATHLENGTHPATHLENGTHEXTENDEDBINARYTREESOFATREEISOFGREATIMPORTANCEINTHEANALYSISOFALGORITHMSSINCETHISQUANTITYISOFTENDIRECTLYRELATEDTOTHEEXECUTIONTIMEOURPRIMARYCONCERNISWITHBINARYTREESSINCETHEYARESOCLOSETOACTUALCOMPUTERREPRESENTATIONSINTHEFOLLOWINGDISCUSSIONWEWILLEXTENDEACHBINARYTREEDIAGRAMBYADDINGSPECIALNODESWHEREVERANULLSUBTREEWASPRESENTINTHEORIGINALTREESOTHATTHELATTERISCALLEDANEXTENDEDBINARYTREEAFTERTHESQUARESHAPEDNODESHAVEBEENADDEDINTHISWAYTHESTRUCTUREISSOMETIMESMORECONVENIENTTODEALWITHANDWESHALLTHEREFOREMEETEXTENDEDBINARYTREESFREQUENTLYINLATERCHAPTERSITISCLEARTHATEVERYCIRCULARNODEHASTWOCHILDRENANDEVERYSQUARENODEHASNONECOMPAREWITHEXERCISETREESIFTHEREARECIRCULARNODESANDSQUARENODESWEHAVEEDGESSINCETHEDIAGRAMISAFREETREECOUNTINGANOTHERWAYBYTHENUMBEROFCHILDRENWESEETHATTHEREAREEDGESHENCEITISCLEARTHATINOTHERWORDSTHENUMBEROFEXTERNALNODESJUSTADDEDISONEMORETHANTHENUMBEROFINTERNALNODESWEHADORIGINALLYFORANOTHERPROOFSEEEXTERNALNODESINTERNALNODESEXERCISECOUNTNULLLINKSFORMULAISCORRECTEVENWHENASSUMETHATABINARYTREEHASBEENEXTENDEDINTHISWAYTHEEXTERNALPATHLENGTHOFTHETREEISDEFINEDTOBETHESUMTAKENOVERALLEXTERNALSQUARENODESOFTHELENGTHSOFTHEPATHSFROMTHEROOTTOEACHNODETHEINTERNALPATHLENGTHISTHESAMEQUANTITYSUMMEDOVERTHEINTERNALCIRCULARNODESINTHEEXTERNALPATHLENGTHISANDTHEINTERNALPATHLENGTHISTHESETWOQUANTITIESAREALWAYSRELATEDBYTHEFORMULAWHEREISTHENUMBEROFINTERNALNODESTOPROVEFORMULACONSIDERDELETINGANINTERNALNODEATADISTANCEFROMTHEROOTWHEREBOTHCHILDRENOFAREEXTERNALTHEQUANTITYGOESDOWNBYSINCETHECHILDRENOFAREREMOVEDTHENITGOESUPBYSINCEBECOMESEXTERNALSOTHENETCHANGEINISTHENETCHANGEINISSOFOLLOWSBYINDUCTIONITISNOTHARDTOSEETHATTHEINTERNALPATHLENGTHANDHENCETHEEXTERNALPATHLENGTHALSOISGREATESTWHENWEHAVEADEGENERATETREEWITHLINEARSTRUCTUREINTHATCASETHEINTERNALPATHLENGTHISITCANBESHOWNTHATTHEAVERAGEPATHLENGTHOVERALLBINARYTREESISESSENTIALLYPROPORTIONALTOSEEEXERCISECONSIDERNOWTHEPROBLEMOFCONSTRUCTINGABINARYTREEWITHNODESTHATHASMINIMUMPATHLENGTHSUCHATREEWILLBEIMPORTANTSINCEITWILLMINIMIZETHECOMPUTATIONTIMEFORVARIOUSALGORITHMSCLEARLYONLYONENODETHEROOTCANBEATZERODISTANCEFROMTHEROOTATMOSTTWONODESCANBEATDISTANCEFROMTHEROOTATMOSTFOURCANBEAWAYANDSOONTHEREFORETHEINTERNALPATHLENGTHISALWAYSATLEASTASBIGASTHESUMOFTHEFIRSTTERMSOFTHESERIESTHISISTHESUMWHICHWEKNOWFROMEXERCISESUMBYPARTSISTHEOPTIMUMVALUEISSINCEITISCLEARLYACHIEVEDINATREETHATLOOKSLIKETHISILLUSTRATEDFORCOMPLETEBINARYTREEATREESUCHASISCALLEDTHECOMPLETEBINARYTREEWITHINTERNALNODESINTHEGENERALCASEWECANNUMBERTHEINTERNALNODESTHISNUMBERINGHASTHEUSEFULPROPERTYTHATTHEPARENTOFNODEISNODEANDTHECHILDRENOFNODEARENODESANDTHEEXTERNALNODESARENUMBEREDTHROUGHINCLUSIVEITFOLLOWSTHATACOMPLETEBINARYTREEMAYSIMPLYBEREPRESENTEDINSEQUENTIALBINARYTREESEQUENTIALLYMEMORYLOCATIONSWITHTHESTRUCTUREIMPLICITINTHELOCATIONSOFTHENODESNOTINLINKSTHECOMPLETEBINARYTREEAPPEARSEXPLICITLYORIMPLICITLYINMANYIMPORTANTCOMPUTERALGORITHMSSOTHEREADERSHOULDGIVEITSPECIALATTENTIONTHESECONCEPTSHAVEIMPORTANTGENERALIZATIONSTOTERNARYQUATERNARYANDHIGHERORDERTREESWEDEFINEAARYTREEASASETOFNODESTHATISEITHERTARYTREESEQUENTIALLYEMPTYORCONSISTSOFAROOTANDORDEREDDISJOINTARYTREESTHISGENERALIZESTHEDEFINITIONOFBINARYTREEINSECTIONHEREFOREXAMPLEISTHECOMPLETETERNARYTREEWITHINTERNALNODESCOMPLETETARYITISEASYTOSEETHATTHESAMECONSTRUCTIONWORKSFORANYINTHECOMPLETEARYTREEWITHINTERNALNODESTHEPARENTOFNODEISNODEANDTHECHILDRENOFNODEARETHISTREEHASTHEMINIMUMINTERNALPATHLENGTHAMONGALLARYTREESWITHINTERNALNODESEXERCISEPROVESTHATITSINTERNALPATHLENGTHISTHESERESULTSHAVEANOTHERIMPORTANTGENERALIZATIONIFWESHIFTOURPOINTOFVIEWSLIGHTLYSUPPOSETHATWEAREGIVENREALNUMBERSTHEPROBLEMISTOFINDANEXTENDEDBINARYTREEWITHEXTERNALNODESANDTOASSOCIATETHENUMBERSWITHTHESENODESINSUCHAWAYTHATTHESUMISMINIMIZEDWHEREISTHELENGTHOFPATHFROMTHEROOTANDTHESUMISTAKENOVERALLEXTERNALNODESFOREXAMPLEIFTHEGIVENNUMBERSAREWECANFORMEXTENDEDBINARYTREESSUCHASTHESETHREEHERETHEWEIGHTEDPATHLENGTHSAREANDWEIGHTEDPATHLENGTHRESPECTIVELYTHEREFOREAPERFECTLYBALANCEDTREEDOESNOTGIVETHEMINIMUMWEIGHTEDPATHLENGTHWHENTHEWEIGHTSAREANDALTHOUGHWEHAVESEENTHATITDOESGIVETHEMINIMUMINTHESPECIALCASESEVERALINTERPRETATIONSOFWEIGHTEDPATHLENGTHARISEINCONNECTIONWITHDIFFERENTCOMPUTERALGORITHMSFOREXAMPLEWECANAPPLYITTOTHEMERGINGOFSORTEDSEQUENCESOFRESPECTIVELENGTHSSEECHAPTERONEOFTHEMOSTSTRAIGHTFORWARDAPPLICATIONSOFTHISIDEAISTOCONSIDERABINARYTREEASAGENERALSEARCHPROCEDUREWHEREWESTARTATTHEROOTANDTHENMAKESOMETESTTHEOUTCOMEOFTHETESTSENDSUSTOONEOFTHETWOBRANCHESWHEREWEMAYMAKEFURTHERTESTSETCFOREXAMPLEIFWEWANTTODECIDEWHICHOFFOURDIFFERENTALTERNATIVESISTRUEANDIFTHESEPOSSIBILITIESWILLBETRUEWITHTHERESPECTIVEPROBABILITIESANDATREETHATMINIMIZESTHEWEIGHTEDPATHLENGTHWILLCONSTITUTEANOPTIMALSEARCHPROCEDURETHESEARETHEWEIGHTSSHOWNINTIMESASCALEFACTORANELEGANTALGORITHMFORFINDINGATREEWITHMINIMUMWEIGHTEDPATHLENGTHHUFFMANSALGORITHMWASDISCOVEREDBYDHUFFMANPROCIREFIRSTFINDTHETWOSOFLOWESTVALUESAYANDTHENSOLVETHEPROBLEMFORWEIGHTSANDREPLACETHENODEINTHISSOLUTIONBYASANEXAMPLEOFHUFFMANSMETHODLETUSFINDTHEOPTIMALTREEFORTHEWEIGHTSFIRSTWECOMBINEANDLOOKFORTHESOLUTIONTOTHENWECOMBINEETCTHECOMPUTATIONISSUMMARIZEDASFOLLOWSTHEREFORETHEFOLLOWINGTREECORRESPONDSTOHUFFMANSCONSTRUCTIONTHENUMBERSINSIDETHECIRCULARNODESSHOWTHECORRESPONDENCEBETWEENTHISTREEANDOURCOMPUTATIONSEEALSOEXERCISEITISNOTHARDTOPROVETHATTHISMETHODDOESINFACTMINIMIZETHEWEIGHTEDPATHLENGTHBYINDUCTIONONSUPPOSEWEHAVEWHEREANDSUPPOSETHATWEAREGIVENATREETHATMINIMIZESTHEWEIGHTEDPATHLENGTHSUCHATREECERTAINLYEXISTSSINCEONLYFINITELYMANYBINARYTREESWITHTERMINALNODESAREPOSSIBLELETBEANINTERNALNODEOFMAXIMUMDISTANCEFROMTHEROOTIFANDARENOTTHEWEIGHTSALREADYATTACHEDTOTHECHILDRENOFWECANINTERCHANGETHEMWITHTHEVALUESTHATAREALREADYTHERESUCHANINTERCHANGEDOESNOTINCREASETHEWEIGHTEDPATHLENGTHTHUSTHEREISATREETHATMINIMIZESTHEWEIGHTEDPATHLENGTHANDCONTAINSTHESUBTREENOWITISEASYTOPROVETHATTHEWEIGHTEDPATHLENGTHOFATREEFORTHEWEIGHTSTHATCONTAINSASASUBTREEISMINIMIZEDIFANDONLYIFTHATTREEWITHREPLACEDBYHASMINIMUMPATHLENGTHFORTHEWEIGHTSSEEEXERCISEEVERYTIMETHISCONSTRUCTIONCOMBINESTWOWEIGHTSTHEYAREATLEASTASBIGASTHEWEIGHTSPREVIOUSLYCOMBINEDIFTHEGIVENWERENONNEGATIVETHISMEANSTHATTHEREISANEATWAYTOFINDHUFFMANSTREEPROVIDEDTHATTHEGIVENWEIGHTSHAVEBEENSORTEDINTONONDECREASINGORDERWESIMPLYMAINTAINTWOQUEUESONECONTAININGTHEORIGINALWEIGHTSANDTHEOTHERCONTAININGTHECOMBINEDWEIGHTSATEACHSTEPTHESMALLESTUNUSEDWEIGHTWILLAPPEARATTHEFRONTOFONEOFTHEQUEUESSOWENEVERHAVETOSEARCHFORITSEEEXERCISESORTEDHUFFMANWHICHSHOWSTHATTHESAMEIDEAWORKSEVENWHENTHEWEIGHTSMIGHTBENEGATIVEINGENERALTHEREAREMANYTREESTHATMINIMIZEIFTHEALGORITHMSKETCHEDINTHEPRECEDINGPARAGRAPHALWAYSUSESANORIGINALWEIGHTINSTEADOFACOMBINEDWEIGHTINCASEOFTIESTHENTHETREEITCONSTRUCTSHASTHESMALLESTVALUEOFANDOFAMONGALLTREESTHATMINIMIZEIFTHEWEIGHTSAREPOSITIVETHISTREEACTUALLYMINIMIZESFORANYCONVEXFUNCTIONOVERALLSUCHTREESSEEESSCHWARTZINFORMATIONANDCONTROLGMARKOWSKYACTAINFORMATICAHUFFMANSMETHODCANBEGENERALIZEDTOARYTREESASWELLASBINARYTREESSEEEXERCISEANOTHERIMPORTANTGENERALIZATIONOFHUFFMANSMETHODISDISCUSSEDINSECTIONFURTHERDISCUSSIONOFPATHLENGTHAPPEARSINSECTIONSANDEXERCISESARETHEREANYOTHERBINARYTREESWITHINTERNALNODESANDMINIMUMPATHLENGTHBESIDESTHECOMPLETEBINARYTREETHEREAREINALLSINCETHENODESNUMBEREDMAYBEATTACHEDINANYOFEIGHTPOSITIONSBELOWANDDRAWANEXTENDEDBINARYTREEWITHTERMINALNODESCONTAININGTHEWEIGHTSHAVINGMINIMUMWEIGHTEDPATHLENGTHORDEREDHUFFMANMANEXTENDEDBINARYTREEWITHEXTERNALNODESDETERMINESASETOFPATHLENGTHSTHATDESCRIBETHELENGTHSOFPATHSFROMTHEROOTTOTHERESPECTIVEEXTERNALNODESCONVERSELYIFWEAREGIVENASETOFNUMBERSISITALWAYSPOSSIBLETOCONSTRUCTANEXTENDEDBINARYTREEINWHICHTHESENUMBERSARETHEPATHLENGTHSINSOMEORDERSHOWTHATTHISISPOSSIBLEIFANDONLYIFBYINDUCTIONONTHECONDITIONISNECESSARYCONVERSELYIFWEWANTTOCONSTRUCTANEXTENDEDBINARYTREEWITHPATHLENGTHSWHENWEHAVEANDTHECONSTRUCTIONISTRIVIALOTHERWISEWEMAYASSUMETHATTHESAREORDEREDSOTHATFORSOMEWITHNOWINTEGERHENCEISEVENBYINDUCTIONONTHEREISATREEWITHPATHLENGTHSTAKESUCHATREEANDREPLACEONEOFTHEEXTERNALNODESATLEVELBYANINTERNALNODEWHOSECHILDRENAREATLEVELMESSCHWARTZANDBKALLICKASSUMETHATSHOWTHATTHEREISANEXTENDEDBINARYTREETHATMINIMIZESANDFORWHICHTHETERMINALNODESINLEFTTORIGHTORDERCONTAINTHERESPECTIVEVALUESFOREXAMPLETREEDOESNOTMEETTHISCONDITIONSINCETHEWEIGHTSAPPEARINTHEORDERWESEEKATREEFORWHICHTHEWEIGHTSAPPEARINASCENDINGORDERANDTHISDOESNOTALWAYSHAPPENWITHHUFFMANSCONSTRUCTIONFIRSTFINDATREEBYHUFFMANSMETHODIFTHENSINCETHETREEISOPTIMALTHECONSTRUCTIONINTHEANSWERTOEXERCISENOWGIVESUSANOTHERTREEWITHTHESESAMEPATHLENGTHSANDWITHTHEWEIGHTSINTHEPROPERSEQUENCEFOREXAMPLETHETREEBECOMESAREFERENCECACMPATHLENGTHGFLETWHEREISTHENUMBEROFBINARYTREESWITHNODESANDINTERNALPATHLENGTHTHUSBINARYTREESENUMERATIONDOUBLEGENERATINGFUNCTIONISTHEFUNCTIONOFEQBINGFINSECTIONAFINDAFUNCTIONALRELATIONTHATCHARACTERIZESGENERALIZINGBINGFIMPLICITBUSETHERESULTOFATODETERMINETHEAVERAGEINTERNALPATHLENGTHOFABINARYTREEPATHLENGTHAVERAGEWITHNODESASSUMINGTHATEACHOFTHETREESISEQUALLYPROBABLECFINDTHEASYMPTOTICVALUEOFTHISQUANTITYAHENCEBTAKETHEPARTIALDERIVATIVEWITHRESPECTTOTHEREFOREIFWEFINDANDTHEKNOWNFORMULAFORIMPLIESTHEAVERAGEVALUEISCASYMPTOTICALLYTHISCOMESTOFORTHESOLUTIONTOSIMILARPROBLEMSSEEJOHNRIORDANIBMJRESANDDEVELARENYIANDGSZEKERESJAUSTRALIANMATHSOCJOHNRIORDANANDNJASLOANEJAUSTRALIANMATHSOCANDEXERCISEAVETREEHEIGHTEXTENDEDTARYIFAARYTREEISEXTENDEDWITHSQUARENODESASINWHATISTHERELATIONBETWEENTHENUMBEROFSQUAREANDCIRCULARNODESCORRESPONDINGTOEQMWHATISTHERELATIONBETWEENEXTERNALANDINTERNALPATHLENGTHINAARYTREESEEEXERCISEAGENERALIZATIONOFEQISDESIREDTARYTREEEXTERNALPATHLENGTHINTERNALPATHLENGTHMPROVEEQSUMMATIONBYPARTSGIVESWHERETHESUMONTHERIGHTISOVERVALUESOFSUCHTHATANDFORSOMETHELATTERSUMMAYBEREWRITTENMTHENUMBERSTHATAPPEARINTHECIRCULARNODESOFAREEQUALTOTHESUMSOFTHEWEIGHTSINTHEEXTERNALNODESOFTHECORRESPONDINGSUBTREESHOWTHATTHESUMOFALLVALUESINTHECIRCULARNODESISEQUALTOTHEWEIGHTEDPATHLENGTHEXTERNALNODESINDUCTIONONTHESIZEOFTHETREETARYHUFFMANMDHUFFMANSHOWHOWTOCONSTRUCTAARYTREEWITHMINIMUMWEIGHTEDPATHLENGTHGIVENNONNEGATIVEWEIGHTSCONSTRUCTANOPTIMALTERNARYTREEFORWEIGHTSBYADDINGEXTRAZEROWEIGHTSIFNECESSARYWEMAYASSUMETHATTOOBTAINAARYTREEWITHMINIMUMWEIGHTEDPATHLENGTHCOMBINETHESMALLESTVALUESATEACHSTEPANDREPLACETHEMBYTHEIRSUMTHEPROOFISESSENTIALLYTHESAMEASTHEBINARYCASETHEDESIREDTERNARYTREEISSHOWNFKHWANGHASOBSERVEDSIAMJAPPLMATHTHATASIMILARPROCEDUREISVALIDFORMINIMUMWEIGHTEDPATHLENGTHTREESHAVINGANYPRESCRIBEDMULTISETOFDEGREESCOMBINETHESMALLESTWEIGHTSATEACHSTEPWHEREISASSMALLASPOSSIBLEAISTHEREANYCONNECTIONBETWEENTHECOMPLETEBINARYTREEANDTHEDEWEYDECIMALNOTATIONFORBINARYTREESDESCRIBEDINEXERCISEBINARYTREEORDERDEWEYBINARYTHEDEWEYNOTATIONISTHEBINARYREPRESENTATIONOFTHENODENUMBERMSUPPOSETHATANODEHASBEENCHOSENATRANDOMINABINARYTREEWITHEACHNODEEQUALLYLIKELYSHOWTHATTHEAVERAGESIZEOFTHESUBTREEROOTEDATTHATNODEISRELATEDTOTHEPATHLENGTHOFTHETREESUBTREEAVERAGESIZEBYEXERCISEITISTHEINTERNALPATHLENGTHDIVIDEDBYPLUSTHISRESULTHOLDSFORGENERALTREESASWELLASBINARYTREESSORTEDHUFFMANDESIGNANALGORITHMTHATBEGINSWITHWEIGHTSANDCONSTRUCTSANEXTENDEDBINARYTREEHAVINGMINIMUMWEIGHTEDPATHLENGTHREPRESENTTHEFINALTREEINTHREEARRAYSHEREANDPOINTTOTHELEFTANDRIGHTCHILDRENOFINTERNALNODETHEROOTISNODEANDISTHEWEIGHTOFNODETHEORIGINALWEIGHTSSHOULDAPPEARASTHEEXTERNALNODEWEIGHTSYOURALGORITHMSHOULDMAKEFEWERTHANWEIGHTCOMPARISONSCAUTIONSOMEORALLOFTHEGIVENWEIGHTSMAYBENEGATIVESEEJVANLEEUWENPROCRDINTERNATIONALCOLLOQAUTOMATALANGUAGESANDPROGRAMMINGEDINBURGHUNIVERSITYPRESSHHINITIALIZESETFORTHENSETDURINGTHISALGORITHMISTHEQUEUEOFUNUSEDEXTERNALWEIGHTSISTHEQUEUEOFUNUSEDINTERNALWEIGHTSEMPTYIFTHECURRENTLEFTANDRIGHTPOINTERSAREANDHFINDRIGHTPOINTERIFORSETANDOTHERWISESETANDHCREATEINTERNALNODESETHDONETERMINATETHEALGORITHMIFHFINDLEFTPOINTERATTHISPOINTANDTHEQUEUESCONTAINATOTALOFUNUSEDWEIGHTSIFWEHAVEANDIFSETANDOTHERWISESETANDRETURNTOSTEPHTCHUANDACTUCKERAFTERSTEPSOFHUFFMANSALGORITHMTHENODESCOMBINEDSOFARFORMAFORESTOFEXTENDEDBINARYTREESPROVETHATTHISFORESTHASTHESMALLESTTOTALWEIGHTEDPATHLENGTHAMONGALLFORESTSOFEXTENDEDBINARYTREESTHATHAVETHEGIVENWEIGHTSWEIGHTEDPATHLENGTHTHEPROOFFORAPPLIESWITHLITTLECHANGESEESIAMJAPPLMATHMSHOWTHATAHUFFMANLIKEALGORITHMWILLFINDANEXTENDEDBINARYTREETHATMINIMIZESABGIVENUSETHECOMBINEDWEIGHTFUNCTIONSAANDBRESPECTIVELYINSTEADOFINPARTAISDUETOMCGOLUMBICIEEETRANSCPARTBTOTCHUDKLEITMANANDJKTAMAKISIAMJAPPLMATHHUFFMANSPROBLEMISTHELIMITINGCASEOFBASSINCEDSTOTTPARKERJRHASPOINTEDOUTTHATAHUFFMANLIKEALGORITHMWILLALSOFINDTHEMINIMUMOFWHENIFTHETWOMAXIMUMWEIGHTSARECOMBINEDATEACHSTEPASINPARTBINPARTICULARTHEMINIMUMOFWHENISSEEDEKNUTHJCOMBTHEORYAFORFURTHERGENERALIZATIONSMFKHWANGLETANDBETWOSETSOFWEIGHTSWITHPROVETHATTHEMINIMUMWEIGHTEDPATHLENGTHSSATISFYLETTHENSINCEASINEXERCISETHESAMEPROOFHOLDSFORMANYOTHERKINDSOFOPTIMUMTREESINCLUDINGTHOSEOFEXERCISECONCAVEOPTTREECRGLASSEYANDRMKARPLETBETHENUMBERSINSIDETHEINTERNALCIRCULARNODESOFANEXTENDEDBINARYTREEFORMEDBYHUFFMANSALGORITHMINTHEORDEROFCONSTRUCTIONLETBETHEINTERNALNODEWEIGHTSOFANYEXTENDEDBINARYTREEONHUFFMANSALGORITHMTHESAMESETOFWEIGHTSLISTEDINANYORDERSUCHTHATEACHNONROOTINTERNALNODEAPPEARSBEFOREITSPARENTAPROVETHATINTERNALNODESMAJORIZATIONFORBTHERESULTOFAISEQUIVALENTTOFOREVERYNONDECREASINGCONCAVEFUNCTIONNAMELYEVERYFUNCTIONWITHANDSEEHARDYLITTLEWOODANDPOLYAMESSENGEROFMATHUSETHISFACTTOSHOWTHATTHEMINIMUMVALUEINTHERECURRENCEALWAYSOCCURSWHENGIVENANYFUNCTIONWITHTHEPROPERTYTHATANDATHISISEXERCISEBWECANEXTENDTOACONCAVEFUNCTIONSOTHESTATEDINEQUALITYHOLDSNOWISTHEMINIMUMOFWHERETHEAREINTERNALNODEWEIGHTSOFANEXTENDEDBINARYTREEONTHEWEIGHTSHUFFMANSALGORITHMWHICHCONSTRUCTSTHECOMPLETEBINARYTREEWITHINTERNALNODESINTHISCASEYIELDSTHEOPTIMUMTREETHECHOICEDEFINESABINARYTREEWITHTHESAMEINTERNALWEIGHTSSOITYIELDSTHEMINIMUMINTHERECURRENCEFOREACHSIAMJAPPLMATHWECANEVALUATEINSTEPSSEEEXERCISESHEAPSPECIALSANDHEAPNONSPECIALSIFISCONVEXINSTEADOFCONCAVESOTHATTHESOLUTIONTOTHERECURRENCEISOBTAINEDWHENPATHLENGTHEXTENDEDBINARYTREESHISTORYANDBIBLIOGRAPHYTREESHAVEOFCOURSEBEENINEXISTENCESINCETHETHIRDDAYOFCREATIONANDTHROUGHTHEAGESTREESTRUCTURESESPECIALLYFAMILYTREESHAVEBEENINCOMMONUSETHEFAMILYTREESTREESHISTORYCONCEPTOFTREEASAFORMALLYDEFINEDMATHEMATICALENTITYSEEMSTOHAVEAPPEAREDFIRSTINTHEWORKOFGKIRCHHOFFANNALENDERPHYSIKUNDCHEMIEENGLISHTRANSLATIONINIRETRANSACTIONSCTKIRCHHOFFUSEDFREETREESTOFINDASETOFFUNDAMENTALCYCLESINANELECTRICALNETWORKINCONNECTIONWITHTHELAWTHATBEARSHISNAMEESSENTIALLYASWEDIDINSECTIONTHECONCEPTALSOAPPEAREDATABOUTTHESAMETIMEINTHEBOOKGEOMETRIEDERLAGEPAGESBYKGCHRVONSTAUDTTHENAMETREEANDMANYRESULTSDEALINGMOSTLYWITHENUMERATIONOFTREESBEGANTOAPPEARTENYEARSLATERINAENUMERATIONOFTREESHISTORYCAYLEYSERIESOFPAPERSBYARTHURCAYLEYSEECOLLECTEDMATHEMATICALPAPERSOFACAYLEYCAYLEYWASUNAWAREOFTHEPREVIOUSWORKOFKIRCHHOFFANDVONSTAUDTHISINVESTIGATIONSBEGANWITHSTUDIESOFTHESTRUCTUREOFALGEBRAICFORMULASANDTHEYWERELATERINSPIREDCHIEFLYBYAPPLICATIONSTOTHEPROBLEMOFISOMERSINCHEMISTRYTREESTRUCTURESWEREALSOSTUDIEDINDEPENDENTLYBYCWBORCHARDTCRELLEJBLISTINGGOTTINGERABHANDLUNGENMATHCLASSEANDCJORDANCRELLETHEINFINITYLEMMAWASFORMULATEDFIRSTBYDENESKONIGFUNDAMENTAMATHANDHEGAVEITAPROMINENTPLACEINHISCLASSICBOOKTHEORIEDERENDLICHENUNDUNENDLICHENGRAPHENLEIPZIGCHAPTERASIMILARRESULTCALLEDTHEFANTHEOREMOCCURREDSLIGHTLYEARLIERINTHEWORKOFLEJBROUWERVERHANDELINGENAKADAMSTERDAMBUTTHISINVOLVEDMUCHSTRONGERHYPOTHESESSEEAHEYTINGINTUITIONISMSECTIONFORADISCUSSIONOFBROUWERSWORKFORMULAORIENTEDGFRECOFSECTIONFORENUMERATINGUNLABELEDORIENTEDTREESWASORIENTEDTREESENUMERATIONORDEREDTREESENUMERATIONGIVENBYCAYLEYINHISFIRSTPAPERONTREESINHISSECONDPAPERHEENUMERATEDUNLABELEDORDEREDTREESANEQUIVALENTPROBLEMINGEOMETRYSEEEXERCISEHADALREADYBEENPROPOSEDANDSOLVEDBYLEULERWHOMENTIONEDHISRESULTSINALETTERTOCGOLDBACHONSEPTEMBERSEEJVONSEGNERANDLEULERNOVICOMMENTARIIACADEMIAESCIENTIARUMPETROPOLITANAESUMMARYEULERSPROBLEMWASTHESUBJECTOFSEVENPAPERSBYGLAMEECATALANORODRIGUESANDJBINETINJOURNALDEMATHEMATIQUESADDITIONALREFERENCESAPPEARINTHEANSWERTOEXERCISEPERMSWITHSTACKTHECORRESPONDINGNUMBERSARENOWCOMMONLYCALLEDCATALANNUMBERSAMONGOLIANCHINESEMATHEMATICIANANTUMINGHADACTUALLYENCOUNTEREDTHEMBEFOREINHISSTUDYOFINFINITESERIESBUTHEDIDNOTRELATETHEMTOTREESOROTHERCOMBINATORIALOBJECTSSEEJLUOACTASCIENTIARUMNATURALIUMUNIVERSITATISINTRAMONGOLICAECATALANNUMBERSOCCURINANENORMOUSNUMBEROFCONTEXTSRICHARDSTANLEYSFASCINATINGBOOKCATALANNUMBERSFEATURESDIFFERENTCOMBINATORIALINTERPRETATIONSANDALSOINCLUDESANAPPENDIXBYIGORPAKTHATGIVESADEFINITIVEHISTORYOFTHESUBJECTTHEMOSTSURPRISINGOFALLTHESEINSTANCESMAYWELLBETHECATALANCONNECTIONTOCERTAINARRANGEMENTSOFNUMBERSTHATHSMCOXETERFRIEZEPATTERNSHASCALLEDFRIEZEPATTERNSBECAUSEOFTHEIRSYMMETRYSEEEXERCISETHEFORMULAFORTHENUMBEROFLABELEDFREETREESWASFREETREESENUMERATIONLABELEDTREESENUMERATIONDISCOVEREDBYJJSYLVESTERQUARTJPUREANDAPPLIEDMATHASABYPRODUCTOFHISEVALUATIONOFACERTAINDETERMINANTEXERCISESYLVESTERTREESCAYLEYGAVEANINDEPENDENTDERIVATIONOFTHECAYLEYFORMULAINSEETHEREFERENCEABOVEHISDISCUSSIONWHICHWASEXTREMELYVAGUEHINTEDATACONNECTIONBETWEENLABELEDORIENTEDTREESANDTUPLESOFNUMBERSANEXPLICITCORRESPONDENCEDEMONSTRATINGSUCHACONNECTIONWASFIRSTPUBLISHEDBYHEINZPRUFERARCHMATHUNDPHYSQUITEINDEPENDENTLYOFCAYLEYSPRIORWORKALARGELITERATUREONTHISSUBJECTHASDEVELOPEDANDTHECLASSICALRESULTSARESURVEYEDBEAUTIFULLYINJWMOONSBOOKCOUNTINGLABELLEDTREESMONTREALCANADIANMATHCONGRESSAVERYIMPORTANTPAPERONTHEENUMERATIONOFTREESANDMANYOTHERKINDSOFCOMBINATORIALSTRUCTURESWASPUBLISHEDBYGPOLYAINACTAMATHFORADISCUSSIONOFENUMERATIONPROBLEMSFORGRAPHSANDANEXCELLENTBIBLIOGRAPHYOFTHEEARLYLITERATURESEETHESURVEYBYFRANKHARARYINGRAPHTHEORYANDTHEORETICALPHYSICSLONDONACADEMICPRESSTHEPRINCIPLEOFMINIMIZINGWEIGHTEDPATHLENGTHBYREPEATEDLYCOMBININGTHESMALLESTWEIGHTSWASDISCOVEREDBYDHUFFMANPROCIREINCONNECTIONWITHTHEDESIGNOFCODESFORMINIMIZINGMESSAGELENGTHSTHESAMEIDEAWASINDEPENDENTLYPUBLISHEDBYSETHCOMPRESSIONOFMESSAGESZIMMERMANAMMTREESHISTORYENUMERATIONOFTREESHISTORYSEVERALOTHERNOTEWORTHYPAPERSABOUTTHETHEORYOFTREESTRUCTURESHAVEBEENCITEDINSECTIONSTHROUGHINCONNECTIONWITHPARTICULARTOPICSEXERCISESFINDASIMPLEONETOONECORRESPONDENCEBETWEENBINARYTREESWITHNODESANDDISSECTIONSOFANSIDEDCONVEXPOLYGONINTOTRIANGLESASSUMINGTHATTHESIDESOFTHEPOLYGONAREDISTINCTTRIANGULATIONSOFPOLYGONSCHOOSEONEEDGEOFTHEPOLYGONANDCALLITTHEBASEGIVENATRIANGULATIONLETTHETRIANGLEONTHEBASECORRESPONDTOTHEROOTOFABINARYTREEANDLETTHEOTHERTWOSIDESOFTHATTRIANGLEDEFINEBASESOFLEFTANDRIGHTSUBPOLYGONSWHICHCORRESPONDTOLEFTANDRIGHTSUBTREESINTHESAMEWAYWEPROCEEDRECURSIVELYUNTILREACHINGSIDEDPOLYGONSWHICHCORRESPONDTOEMPTYBINARYTREESSTATINGTHISCORRESPONDENCEANOTHERWAYWECANLABELTHENONBASEEDGESOFATRIANGULATEDPOLYGONWITHTHEINTEGERSANDWHENTWOADJACENTSIDESOFATRIANGLEARELABELEDANDINCLOCKWISEORDERWECANLABELTHETHIRDSIDETHELABELOFTHEBASETHENCHARACTERIZESTHEBINARYTREEANDTHETRIANGULATIONFOREXAMPLECORRESPONDSTOTHEBINARYTREESHOWNINEXAMPLEBINARYTREESEEHGFORDERMATHEMATICALGAZETTEMTPKIRKMANCONJECTUREDINTHATTHENUMBEROFWAYSTODIAGONALSOFPOLYGONSTREESENUMERATIONDRAWNONOVERLAPPINGDIAGONALSINANSIDEDPOLYGONISAEXTENDTHECORRESPONDENCEOFEXERCISETOOBTAINANEQUIVALENTPROBLEMABOUTTHEENUMERATIONOFTREESBPROVEKIRKMANSCONJECTUREBYUSINGTHEMETHODSOFEXERCISETREESBYDEGREESATAKEABASEEDGEASINEXERCISEANDGIVEITDESCENDANTSIFTHATEDGEISPARTOFAGONINTHEDISSECTEDGONTHEOTHEREDGESARETHENBASESFORSUBTREESTHISDEFINESACORRESPONDENCEBETWEENKIRKMANSPROBLEMANDALLORDEREDTREESWITHLEAVESANDNONLEAVESHAVINGNONODESOFDEGREEWHENWEHAVETHESITUATIONTERMINALNODESOFEXERCISEBTHEREARESEQUENCESOFNONNEGATIVEINTEGERSSUCHTHATOFTHESARENONEOFTHEMAREANDTHESUMISEXACTLYONEOFTHECYCLICPERMUTATIONSSATISFIESTHEADDITIONALPROPERTYTHATFORKIRKMANGAVEEVIDENCEFORHISCONJECTUREINPHILOSTRANSCAYLEYPROVEDITINPROCLONDONMATHSOCWITHOUTNOTICINGTHECONNECTIONTOTREESNONCROSSMCONSIDERALLWAYSOFPARTITIONINGTHEVERTICESOFACONVEXGONINTONONEMPTYPARTSINSUCHAWAYTHATNODIAGONALBETWEENTWOVERTICESDISSECTIONOFPOLYGONNONCROSSINGPARTITIONSOFAPOLYGONOFONEPARTCROSSESADIAGONALBETWEENTWOVERTICESOFANOTHERPARTAFINDAONETOONECORRESPONDENCEBETWEENNONCROSSINGPARTITIONSANDANINTERESTINGCLASSOFTREESTRUCTURESBGIVENANDHOWMANYWAYSARETHERETOMAKESUCHAPARTITIONALETTHEVERTICESBEDRAWANRLINKFROMTOIFANDARECONSECUTIVEELEMENTSOFTHESAMEPARTANDDRAWANLLINKFROMTOIFISTHESMALLESTOFITSPARTTHENTHEREARENONNULLLLINKSNONNULLRLINKSANDWEHAVEABINARYTREEWHOSENODESAREINPREORDERUSINGTHENATURALCORRESPONDENCEOFSECTIONTHISRULEDEFINESAONETOONECORRESPONDENCEBETWEENPARTITIONSOFANGONSVERTICESINTONONCROSSINGPARTSANDFORESTSWITHVERTICESANDLEAVESINTERCHANGINGLLINKWITHRLINKALSOGIVESFORESTSWITHVERTICESANDLEAVESBAFORESTWITHVERTICESANDLEAVESALSOCORRESPONDSTOASEQUENCEOFNESTEDPARENTHESESCONTAININGLEFTPARENTHESESRIGHTPARENTHESESPARENTHESESANDOCCURRENCESOFWECANENUMERATESUCHSEQUENCESASFOLLOWSSAYTHATASTRINGOFSANDSISANSTRINGIFTHEREARESTRINGSBINARYSSANDOCCURRENCESOFTHENISASTRINGTHENUMBEROFSTRINGSISBECAUSEWEAREFREETOCHOOSEWHICHSANDSWILLFORMTHEPAIRSLETBETHENUMBEROFSINMINUSTHENUMBEROFSWESAYTHATASTRINGISGOODIFWHENEVERISAPREFIXOFINOTHERWORDSIFIMPLIESTHATOTHERWISEISBADTHEFOLLOWINGALTERNATIVETOTHEREFLECTIONPRINCIPLEOFEXERCISEPERMSWITHSTACKESTABLISHESAONETOONECORRESPONDENCEBETWEENBADSTRINGSANDARBITRARYSTRINGSANYBADSTRINGCANBEWRITTENUNIQUELYINTHEFORMWHEREANDAREGOODHEREISTHESTRINGOBTAINEDFROMBYREVERSINGITANDCOMPLEMENTINGALLTHEBITSTHENISANSTRINGCONVERSELYEVERYSTRINGCANBEWRITTENUNIQUELYINTHEFORMWHEREANDAREGOODANDISTHENABADSTRINGTHUSTHENUMBEROFFORESTSWITHVERTICESANDLEAVESISASOCALLEDNARAYANANUMBERTVNARAYANACOMPTESRENDUSACADSCIPARISNOTESGKREWERASDISCRETEMATHENUMERATEDNONCROSSINGPARTITIONSINADIFFERENTWAYTHEPARTIALORDERINGOFPARTITIONSBYREFINEMENTLEADSTOANINTERESTINGPARTIALORDERINGOFFORESTSDIFFERENTFROMTHEONETAMARILATTICEDISCUSSEDINEXERCISEDUALPALLONUMBERSSEEYPOUPARDCAHIERSDUBUREAUUNIVDERECHERCHEOPERCHAPTERDISCRETEMATHPEDELMANDISCRETEMATHNDERSHOWITZANDSZAKSDISCRETEMATHATHIRDWAYTODEFINEANATURALLATTICEORDERINGOFFORESTSWASINTRODUCEDBYRSTANLEYINFIBONACCIQUARTERLYSUPPOSEWEREPRESENTAFORESTBYASTRINGOFSANDSREPRESENTINGLEFTANDRIGHTPARENTHESESASABOVETHENIFANDONLYIFFORALLWHEREDENOTESTHEFIRSTBITSOFSTANLEYSLATTICEISDISTRIBUTIVEUNLIKETHEOTHERTWOSEEEXERCISESKREWERASTHROUGHSTANMAXMCONWAYANDCOXETERAFRIEZEPATTERNISANINFINITEFRIEZEPATTERNSARRAYSUCHASINWHICHTHETOPANDBOTTOMROWSCONSISTENTIRELYOFSANDEACHDIAMONDOFADJACENTVALUESSATISFIESFINDAONETOONECORRESPONDENCEBETWEENNODEBINARYTREESANDROWEDFRIEZEPATTERNSOFPOSITIVEINTEGERSLETBYEXERCISEWEWANTACORRESPONDENCEBETWEENTRIANGULATEDGONSANDROWEDFRIEZESFIRSTLETSLOOKTRIANGULATIONSOFPOLYGONSMORECLOSELYATTHEPREVIOUSCORRESPONDENCEBYGIVINGATOPDOWNLABELINGTOTHEEDGESOFATRIANGULATIONINSTEADOFTHEBOTTOMUPONECONSIDEREDEARLIERASSIGNTHEEMPTYLABELTOTHEBASETHENRECURSIVELYGIVETHELABELSANDTOTHEOPPOSITEEDGESOFATRIANGLEWHOSEBASEISLABELEDFOREXAMPLETHEPREVIOUSDIAGRAMBECOMESUNDERTHESENEWCONVENTIONSIFTHEBASEEDGEINTHISEXAMPLEISCALLEDWHILETHEOTHEREDGESARETOASBEFOREWECANWRITEETCANYOFTHEOTHEREDGESCANALSOBECHOSENASTHEBASETHUSIFISCHOSENWEHAVEETCITISNOTDIFFICULTTOVERIFYTHATIFWEHAVEWHEREISOBTAINEDBYREADINGFROMRIGHTTOLEFTANDINTERCHANGINGWITHFOREXAMPLEETCIFANDAREEDGESOFTHEPOLYGONWITHANDTHENANDSTRINGSBINARYGIVENATRIANGULATIONOFAPOLYGONWHOSEEDGESARENUMBEREDWEDEFINEFORANYPAIROFDISTINCTEDGESANDASFOLLOWSLETANDINTERPRETASAMATRIXBYLETTINGANDTHENISDEFINEDTOBETHEELEMENTINTHEUPPERLEFTCORNEROFNOTICETHATISTHETRANSPOSEOFTHEMATRIXSINCEHENCEWEHAVENOTICEALSOTHATIFANDONLYIFANDAREJOINEDBYANEDGEOFTHETRIANGULATIONWHEREDENOTESTHEVERTEXBETWEENEDGESANDLETFORALLPOLYGONEDGESWECANNOWPROVETHATIMPLIESWHEREANDARETHECLOCKWISESUCCESSORSOFANDTHEPROOFISBYINDUCTIONONEQISTRIVIALWHENSINCETHETWOPARALLELEDGESANDARETHENRELATEDBYANDISTHEIDENTITYMATRIXIFANYTRIANGULATIONISAUGMENTEDBYEXTENDINGSOMEEDGEWITHATRIANGLETHENIMPLIESANDHENCEANDINTHEEXTENDEDPOLYGONARERESPECTIVELYEQUALTOANDINTHEORIGINALONEITFOLLOWSTHATANDREMAINSTRUEINTHEEXTENDEDPOLYGONTHEFRIEZEPATTERNCORRESPONDINGTOTHEGIVENTRIANGULATIONISNOWDEFINEDTOBETHEPERIODICSEQUENCEANDSOONUNTILROWSHAVEBEENDEFINEDTHEFINALROWBEGINSWITHWHENCONDITIONPROVESTHATTHISPATTERNISAFRIEZENAMELYTHATBECAUSEIMPLIESOUREXAMPLETRIANGULATIONYIELDSTHERELATIONDEFINESTHEEDGESOFTHETRIANGULATIONHENCEDIFFERENTTRIANGULATIONSYIELDDIFFERENTFRIEZESTOCOMPLETETHEPROOFOFONETOONECORRESPONDENCEWEMUSTSHOWTHATEVERYROWEDFRIEZEPATTERNOFPOSITIVEINTEGERSISOBTAINEDINTHISWAYFROMSOMETRIANGULATIONGIVENANYFRIEZEOFROWSEXTENDITBYPUTTINGANEWROWATTHETOPANDANEWROWATTHEBOTTOMBOTHCONSISTINGENTIRELYOFZEROSNOWLETTHEELEMENTSOFROWBECALLEDETCANDFORALLNONNEGATIVEINTEGERSLETBETHEELEMENTINTHEDIAGONALSOUTHEASTOFANDINTHEDIAGONALSOUTHWESTOFBYASSUMPTIONCONDITIONHOLDSFORALLWECANINFACTEXTENDTOTHECONSIDERABLYMOREGENERALRELATIONFORIFISFALSELETBEACOUNTEREXAMPLEWITHTHESMALLESTVALUEOFCLEARLYANDCASETHENHOLDSFORANDSOWEFINDTHISIMPLIESACONTRADICTIONCASETHENHOLDSFORANDWEOBTAINASIMILARCONTRADICTIONCASEANDINTHISCASEREDUCESTONOWWESETANDINOBTAININGFORBECAUSEANDWECONCLUDETHATTHEENTRIESOFANYROWEDFRIEZEAREPERIODICEVERYFRIEZEPATTERNOFPOSITIVEINTEGERSCONTAINSAINROWFORIFWESETANDINWEGETHENCEIFANDONLYIFTHISCANNOTHOLDFORALLINTHERANGEBECAUSEANDFINALLYIFWECANNOTHAVETWOCONSECUTIVESINROWBECAUSEIMPLIESTHEREFOREWECANREDUCETHEFRIEZETOANOTHERONEWITHREDUCEDBYASILLUSTRATEDHEREFORROWSREDUCEDTOTHEREDUCEDFRIEZECORRESPONDSTOATRIANGULATIONBYINDUCTIONANDTHEUNREDUCEDFRIEZECORRESPONDSTOATTACHINGONEMORETRIANGLEMATHGAZETTECONWAYANDGUYTHEBOOKOFNUMBERSNEWYORKCOPERNICUSNOTESTHISPROOFDEMONSTRATESTHATTHEFUNCTIONWHICHWEDEFINEDONANYTRIANGULATIONVIAMATRICESSATISFIESWHENEVERAREEDGESOFTHEPOLYGONINCLOCKWISEORDERWECANEXPRESSEACHASAPOLYNOMIALINTHENUMBERSTHESEPOLYNOMIALSAREESSENTIALLYIDENTICALTOTHECONTINUANTSCONTINUANTSDISCUSSEDINSECTIONEXCEPTFORTHESIGNSOFINDIVIDUALTERMSINFACTTHUSISEQUIVALENTTOEULERSIDENTITYFORCONTINUANTSINTHEANSWERTOEXERCISEMORSECODETHEMATRICESANDHAVETHEINTERESTINGPROPERTYTHATANYMATRIXOFNONNEGATIVEINTEGERSWITHDETERMINANTCANBEEXPRESSEDUNIQUELYASUNIMODULARMATRICESCONTINUANTSAPRODUCTOFSANDSMANYOTHERINTERESTINGRELATIONSHIPSAREPRESENTFOREXAMPLETHENUMBERSINROWOFANINTEGERFRIEZECOUNTTHENUMBEROFTRIANGLESTOUCHINGEACHVERTEXOFTHECORRESPONDINGTRIANGULATEDPOLYGONTRIANGULATIONSOFPOLYGONSTHETOTALNUMBEROFOCCURRENCESOFINTHEBASICREGIONANDISTHENUMBEROFDIAGONALSCHORDSOFTHETRIANGULATIONNAMELYTHETOTALNUMBEROFSISALSOBECAUSEIFANDONLYIFANDAREOPPOSINGVERTICESOFTHETWOTRIANGLESADJACENTTOACHORDANOTHERINTERPRETATIONOFWASFOUNDBYDBROLINEDWCROWEANDIMISAACSGEOMETRIAEDEDICATAITISTHENUMBEROFWAYSTOMATCHTHEVERTICESBETWEENEDGESANDWITHDISTINCTTRIANGLESADJACENTTOTHOSEVERTICESLISTSANDGARBAGECOLLECTIONLISTCAPITALLISTSTRUCTURESATOMSNEARTHEBEGINNINGOFSECTIONWEDEFINEDALISTINFORMALLYASAFINITESEQUENCEOFZEROORMOREATOMSORLISTSANYFORESTISALISTFOREXAMPLEMAYBEREGARDEDASTHELISTLISTCAPITALLISTNOTATIONSDIAGRAMSOFLISTSANDTHECORRESPONDINGLISTDIAGRAMWOULDBETHEREADERSHOULDREVIEWATTHISPOINTTHEINTRODUCTIONTOLISTSGIVENEARLIERINPARTICULARLISTSTUFFINTHEOPENINGPAGESOFSECTIONRECALLTHATINABOVETHENOTATIONMEANSTHATISALISTOFTHREEATOMSWHICHHASBEENLABELEDWITHTHEATTRIBUTETHISCONVENTIONISCOMPATIBLEWITHOURGENERALPOLICYTHATEACHNODEOFATREEMAYCONTAININFORMATIONBESIDESITSSTRUCTURALCONNECTIONSHOWEVERASWASDISCUSSEDFORTREESINSECTIONITISQUITEPOSSIBLEANDSOMETIMESDESIRABLETOINSISTTHATALLLISTSBEUNLABELEDSOTHATALLTHEINFORMATIONAPPEARSINTHEATOMSALTHOUGHANYFORESTMAYBEREGARDEDASALISTTHECONVERSEISNOTTRUETHEFOLLOWINGLISTISPERHAPSMORETYPICALTHANANDSINCEITSHOWSHOWTHERESTRICTIONSOFTREESTRUCTUREMIGHTBEVIOLATEDWHICHMAYBEDIAGRAMMEDASCOMPAREWITHTHEEXAMPLEINLISTDIAGTHEFORMOFTHESEDIAGRAMSNEEDNOTBETAKENTOOSERIOUSLYDIAGRAMSOFLISTSLISTCAPITALLISTNOTATIONSASWEMIGHTEXPECTTHEREAREMANYWAYSTOREPRESENTLISTSTRUCTURESWITHINLISTCAPITALLISTREPRESENTATIONACOMPUTERMEMORYTHESEMETHODSAREUSUALLYVARIATIONSONTHESAMEBASICTHEMEBYWHICHWEHAVEUSEDBINARYTREESTOREPRESENTGENERALFORESTSOFTREESONEFIELDSAYRLINKISUSEDTOPOINTTOTHENEXTELEMENTOFARLINKINLISTDLINKINLISTLISTANDANOTHERFIELDDLINKMAYBEUSEDTOPOINTTOTHEFIRSTELEMENTOFASUBLISTBYANATURALEXTENSIONOFTHEMEMORYREPRESENTATIONDESCRIBEDINSECTIONWEWOULDREPRESENTTHELISTASFOLLOWSUNFORTUNATELYTHISSIMPLEIDEAISNOTQUITEADEQUATEFORTHEMOSTCOMMONLISTPROCESSINGAPPLICATIONSFOREXAMPLESUPPOSETHATWEHAVETHELISTWHICHCONTAINSTHREEREFERENCESTOANOTHERLISTONEOFTHETYPICALLISTPROCESSINGOPERATIONSISTOREMOVETHELEFTMOSTELEMENTOFSOTHATBECOMESBUTTHISREQUIRESTHREECHANGESTOTHEREPRESENTATIONOFIFWEARETOUSETHETECHNIQUESHOWNINSINCEEACHPOINTERTOPOINTSTOTHEELEMENTTHATISBEINGDELETEDAMOMENTSREFLECTIONWILLCONVINCETHEREADERTHATITISEXTREMELYUNDESIRABLETOCHANGETHEPOINTERSINEVERYREFERENCETOJUSTBECAUSETHEFIRSTELEMENTOFISBEINGDELETEDINTHISEXAMPLEWECOULDTRYTOBETRICKYASSUMINGTHATTHEREARENOPOINTERSTOTHEELEMENTBYCOPYINGTHEENTIREELEMENTINTOTHELOCATIONFORMERLYOCCUPIEDBYANDTHENDELETINGTHEOLDELEMENTBUTTHISTRICKFAILSTOWORKWHENLOSESITSLASTELEMENTANDBECOMESEMPTYFORTHISREASONTHEREPRESENTATIONSCHEMEISGENERALLYREPLACEDBYANOTHERSCHEMETHATISSIMILARBUTUSESALISTHEADTOBEGINEACHLISTHEADFORLISTSLISTASWASINTRODUCEDINSECTIONEACHLISTCONTAINSANADDITIONALNODECALLEDITSLISTHEADSOTHATTHECONFIGURATIONWOULDFOREXAMPLEBEREPRESENTEDTHUSTHEINTRODUCTIONOFSUCHHEADERNODESISNOTREALLYAWASTEOFMEMORYSPACEINPRACTICESINCEMANYUSESFORTHEAPPARENTLYUNUSEDFIELDSTHESHADEDAREASINDIAGRAMGENERALLYPRESENTTHEMSELVESFOREXAMPLETHEREISROOMFORAREFERENCECOUNTORAPOINTERTOTHERIGHTENDOFTHELISTORANALPHABETICNAMEORASCRATCHFIELDTHATAIDSTRAVERSALALGORITHMSETCINOURORIGINALDIAGRAMTHENODECONTAININGISANATOMWHILETHENODECONTAININGSPECIFIESANEMPTYLISTTHESETWOTHINGSARESTRUCTURALLYIDENTICALSOTHEREADERWOULDBEQUITEJUSTIFIEDINASKINGWHYWEBOTHERTOTALKABOUTATOMSATALLWITHNOLOSSOFGENERALITYWECOULDHAVEDEFINEDLISTSASMERELYAFINITESEQUENCEOFZEROORMORELISTSWITHOURUSUALCONVENTIONTHATEACHNODEOFALISTMAYCONTAINDATABESIDESITSSTRUCTURALATOMSPURPOSEOFINFORMATIONTHISPOINTOFVIEWISCERTAINLYDEFENSIBLEANDITMAKESTHECONCEPTOFANATOMSEEMVERYARTIFICIALTHEREISHOWEVERAGOODREASONFORSINGLINGOUTATOMSASWEHAVEDONEWHENEFFICIENTUSEOFCOMPUTERMEMORYISTAKENINTOCONSIDERATIONSINCEATOMSARENOTSUBJECTTOTHESAMESORTOFGENERALPURPOSEMANIPULATIONTHATISDESIREDFORLISTSTHEMEMORYREPRESENTATIONSHOWSTHEREISPROBABLYMOREROOMFORINFORMATIONINANATOMICNODETHANINALISTNODEANDWHENLISTHEADNODESAREALSOPRESENTASINTHEREISADRAMATICDIFFERENCEBETWEENTHESTORAGEREQUIREMENTSFORTHENODESANDTHUSTHECONCEPTOFATOMSISINTRODUCEDPRIMARILYTOAIDINTHEEFFECTIVEUSEOFCOMPUTERMEMORYTYPICALLISTSCONTAINMANYMOREATOMSTHANOUREXAMPLEWOULDINDICATETHEEXAMPLEOFISINTENDEDTOSHOWTHECOMPLEXITIESTHATAREPOSSIBLENOTTHESIMPLICITIESTHATAREUSUALALISTISINESSENCENOTHINGMORETHANALINEARLISTWHOSEELEMENTSMAYLISTCAPITALLISTCOMPAREDTOLISTCONTAINPOINTERSTOOTHERLISTSTHECOMMONOPERATIONSWEWISHTOPERFORMONLISTSARETHEUSUALONESDESIREDFORLINEARLISTSCREATIONDESTRUCTIONINSERTIONDELETIONSPLITTINGCONCATENATIONPLUSFURTHEROPERATIONSTHATAREPRIMARILYOFINTERESTFORTREESTRUCTURESCOPYINGTRAVERSALINPUTANDOUTPUTOFNESTEDINFORMATIONFORTHESEPURPOSESANYOFTHETHREEBASICTECHNIQUESFORREPRESENTINGLINKEDLINEARLISTSINMEMORYNAMELYSTRAIGHTLINKAGECIRCULARLINKAGETWOWAYLINKAGEDOUBLYLINKEDSTRAIGHTCIRCULARORDOUBLELINKAGECANBEUSEDWITHVARYINGDEGREESOFEFFICIENCYDEPENDINGONTHEALGORITHMSBEINGEMPLOYEDFORTHESETHREETYPESOFREPRESENTATIONDIAGRAMMIGHTAPPEARINMEMORYASFOLLOWSHERELLINKISUSEDFORAPOINTERTOTHELEFTINADOUBLYLINKEDREPRESENTATIONTHEINFOANDDLINKFIELDSAREIDENTICALINALLTHREEFORMSRLINKINLISTLLINKINLISTDLINKINLISTTHEREISNONEEDTOREPEATHERETHEALGORITHMSFORLISTMANIPULATIONINANYOFTHESETHREEFORMSSINCEWEHAVEALREADYDISCUSSEDTHEIDEASMANYTIMESTHEFOLLOWINGIMPORTANTPOINTSABOUTLISTSWHICHDISTINGUISHTHEMFROMTHESIMPLERSPECIALCASESTREATEDEARLIERSHOULDHOWEVERBENOTEDITISIMPLICITINTHEMEMORYREPRESENTATIONABOVETHATATOMICNODESAREDISTINGUISHABLEFROMNONATOMICNODESFURTHERMOREWHENCIRCULARORDOUBLYLINKEDLISTSAREBEINGUSEDITISDESIRABLETODISTINGUISHHEADERNODESFROMTHEOTHERTYPESASANAIDINTRAVERSINGTHELISTSTHEREFOREEACHNODEGENERALLYCONTAINSATYPEFIELDTHATTELLSWHATKINDOFINFORMATIONTHENODEREPRESENTSTHISTYPEFIELDISOFTENUSEDALSOTODISTINGUISHBETWEENVARIOUSTYPESOFATOMSFOREXAMPLEBETWEENALPHABETICINTEGERORFLOATINGPOINTQUANTITIESFORUSEWHENMANIPULATINGORDISPLAYINGTHEDATATHEFORMATOFNODESFORGENERALLISTMANIPULATIONWITHTHECOMPUTERMIGHTBEDESIGNEDINONEOFTHEFOLLOWINGTWOWAYSAPOSSIBLEONEWORDFORMATASSUMINGTHATALLINFOAPPEARSINATOMSSSIGNMARKBITUSEDINGARBAGECOLLECTIONSEEBELOWTTYPEFORLISTHEADFORSUBLISTELEMENTFORATOMSREFWHENREFISAREFERENCECOUNTSEEBELOWWHENREFPOINTSTOTHELISTHEADOFTHESUBLISTINQUESTIONWHENREFPOINTSTOANODECONTAININGAMARKBITANDFIVEBYTESOFATOMICINFORMATIONRLINKPOINTERFORSTRAIGHTORCIRCULARLINKAGEASINBPOSSIBLETWOWORDFORMATSTASINLLINKRLINKTHEUSUALPOINTERSFORDOUBLELINKAGEASININFOAFULLWORDOFINFORMATIONASSOCIATEDWITHTHISNODEFORAHEADERNODETHISMAYINCLUDEAREFERENCECOUNTARUNNINGPOINTERTOTHEINTERIOROFTHELISTTOFACILITATELINEARTRAVERSALANALPHABETICNAMEETCWHENTHISINFORMATIONINCLUDESDLINKITISCLEARTHATLISTSAREVERYGENERALSTRUCTURESINDEEDITSEEMSFAIRTOSTATETHATANYSTRUCTUREWHATSOEVERCANBEREPRESENTEDASALISTWHENAPPROPRIATECONVENTIONSAREMADEBECAUSEOFTHISUNIVERSALITYOFLISTSALARGENUMBEROFPROGRAMMINGSYSTEMSHAVEBEENDESIGNEDTOFACILITATELISTMANIPULATIONANDTHEREAREUSUALLYSEVERALSUCHSYSTEMSAVAILABLEATANYCOMPUTERINSTALLATIONSUCHSYSTEMSAREBASEDONAGENERALPURPOSEFORMATFORNODESSUCHASORABOVEDESIGNEDFORFLEXIBILITYINLISTOPERATIONSACTUALLYITISCLEARTHATTHISGENERALPURPOSEFORMATISUSUALLYNOTTHEBESTFORMATSUITEDTOAPARTICULARAPPLICATIONANDTHEPROCESSINGTIMEUSINGTHEGENERALPURPOSEROUTINESISNOTICEABLYSLOWERTHANAPERSONWOULDACHIEVEBYHANDTAILORINGTHESYSTEMTOAPARTICULARPROBLEMFOREXAMPLEITISEASYTOSEETHATNEARLYALLOFTHEAPPLICATIONSWEHAVEWORKEDOUTSOFARINTHISCHAPTERWOULDBEENCUMBEREDBYAGENERALLISTREPRESENTATIONASINORINSTEADOFTHENODEFORMATTHATWASGIVENINEACHCASEALISTMANIPULATIONROUTINEMUSTOFTENEXAMINETHETFIELDWHENITPROCESSESNODESANDTHATWASNOTNEEDEDINANYOFOURPROGRAMSSOFARTHISLOSSOFEFFICIENCYISREPAIDINMANYINSTANCESBYTHECOMPARATIVEEASEOFPROGRAMMINGANDTHEREDUCTIONOFDEBUGGINGTIMEWHENAGENERALPURPOSESYSTEMISUSEDATOMSLISTCAPITALLISTREPRESENTATIONTHEREISALSOANEXTREMELYSIGNIFICANTDIFFERENCEBETWEENALGORITHMSFORLISTPROCESSINGANDTHEALGORITHMSGIVENPREVIOUSLYINTHISCHAPTERSINCEASINGLELISTMAYBECONTAINEDINMANYOTHERLISTSITISBYNOMEANSCLEAREXACTLYWHENALISTSHOULDBERETURNEDTOTHEPOOLOFAVAILABLESTORAGEOURALGORITHMSSOFARHAVEALWAYSSAIDWHENEVERNODEXWASNOLONGERNEEDEDBUTSINCEGENERALLISTSCANGROWANDDIEINACOMPLETELYUNPREDICTABLEMANNERITISOFTENQUITEDIFFICULTTOTELLJUSTWHENAPARTICULARNODEISSUPERFLUOUSTHEREFORETHEPROBLEMOFMAINTAININGTHELISTOFDYNAMICSTORAGEALLOCATIONLIBERATIONAVAILLISTAVAILABLESPACEISCONSIDERABLYMOREDIFFICULTWITHLISTSTHANITWASINTHESIMPLECASESCONSIDEREDPREVIOUSLYWEWILLDEVOTETHERESTOFTHISSECTIONTOADISCUSSIONOFTHESTORAGERECLAMATIONPROBLEMLETUSIMAGINETHATWEAREDESIGNINGAGENERALPURPOSELISTPROCESSINGSYSTEMREFERENCECOUNTERSGARBAGECOLLECTIONMARKBITSTHATWILLBEUSEDBYHUNDREDSOFOTHERPROGRAMMERSTWOPRINCIPALMETHODSHAVEBEENSUGGESTEDFORMAINTAININGTHEAVAILABLESPACELISTTHEUSEOFREFERENCECOUNTERSANDGARBAGECOLLECTIONTHEREFERENCECOUNTERTECHNIQUEMAKESUSEOFANEWFIELDINEACHNODEWHICHCONTAINSACOUNTOFHOWMANYARROWSPOINTTOTHISNODESUCHACOUNTISRATHEREASYTOMAINTAINASAPROGRAMRUNSANDWHENEVERITDROPSTOZEROTHENODEINQUESTIONBECOMESAVAILABLETHEGARBAGECOLLECTIONTECHNIQUEONTHEOTHERHANDREQUIRESANEWONEBITFIELDINEACHNODECALLEDTHEMARKBITTHEIDEAINTHISCASEISTOWRITENEARLYALLTHEALGORITHMSSOTHATTHEYDONOTRETURNANYNODESTOFREESTORAGEANDTOLETTHEPROGRAMRUNMERRILYALONGUNTILALLOFTHEAVAILABLESTORAGEISGONETHENARECYCLINGALGORITHMMAKESUSEOFTHEMARKBITSTOIDENTIFYALLNODESTHATARENOTCURRENTLYACCESSIBLEANDTORETURNTHEMTOAVAILABLESTORAGEAFTERWHICHTHEPROGRAMCANCONTINUENEITHEROFTHESETWOMETHODSISCOMPLETELYSATISFACTORYTHEPRINCIPALDRAWBACKOFTHEREFERENCECOUNTERMETHODISTHATITDOESNOTALWAYSFREEALLTHENODESTHATAREAVAILABLEITWORKSFINEFOROVERLAPPEDLISTSLISTSTHATCONTAINCOMMONSUBLISTSBUTRECURSIVELISTSLIKEOUREXAMPLESANDINWILLNEVERBERETURNEDTOSTORAGEBYTHEREFERENCECOUNTERTECHNIQUETHEIRCOUNTSWILLBENONZEROSINCETHEYREFERTOTHEMSELVESEVENWHENNOOTHERLISTACCESSIBLETOTHERUNNINGPROGRAMPOINTSTOTHEMFURTHERMORETHEREFERENCECOUNTERMETHODUSESAGOODCHUNKOFSPACEINEACHNODEALTHOUGHTHISSPACEISSOMETIMESAVAILABLEANYWAYDUETOTHECOMPUTERWORDSIZETHEDIFFICULTYWITHTHEGARBAGECOLLECTIONTECHNIQUEBESIDESTHEANNOYINGLOSSOFABITINEACHNODEISTHATITRUNSVERYSLOWLYWHENNEARLYALLTHEMEMORYSPACEISINUSEANDINSUCHCASESTHENUMBEROFFREESTORAGECELLSFOUNDBYTHERECLAMATIONPROCESSISNOTWORTHTHEEFFORTPROGRAMSTHATEXCEEDTHECAPACITYOFSTORAGEANDMANYUNDEBUGGEDPROGRAMSDOOFTENWASTEAGOODDEALOFTIMECALLINGTHEGARBAGECOLLECTORSEVERALALMOSTFRUITLESSTIMESJUSTBEFORESTORAGEISFINALLYEXHAUSTEDAPARTIALSOLUTIONTOTHISPROBLEMISTOLETTHEPROGRAMMERSPECIFYANUMBERSIGNIFYINGTHATPROCESSINGSHOULDNOTCONTINUEAFTERAGARBAGECOLLECTIONRUNHASFOUNDORFEWERFREENODESANOTHERPROBLEMISTHEOCCASIONALDIFFICULTYOFDETERMININGEXACTLYWHATLISTSARENOTGARBAGEATAGIVENSTAGEIFTHEPROGRAMMERHASBEENUSINGANYNONSTANDARDTECHNIQUESORKEEPINGANYPOINTERVALUESINUNUSUALPLACESCHANCESAREGOODTHATTHEGARBAGECOLLECTORWILLGOAWRYSOMEOFTHEGREATESTMYSTERIESINTHEHISTORYOFDEBUGGINGHAVEBEENCAUSEDBYTHEFACTTHATGARBAGECOLLECTIONSUDDENLYTOOKPLACEATANUNEXPECTEDTIMEDURINGTHERUNNINGOFPROGRAMSTHATHADWORKEDMANYTIMESBEFOREGARBAGECOLLECTIONALSOREQUIRESTHATPROGRAMMERSKEEPVALIDINFORMATIONINALLPOINTERFIELDSATALLTIMESALTHOUGHWEOFTENFINDITCONVENIENTTOLEAVEMEANINGLESSINFORMATIONINFIELDSTHATTHEPROGRAMDOESNTUSEFOREXAMPLETHELINKINTHEREARNODEOFAQUEUESEEEXERCISEDANGLINGLINKALTHOUGHGARBAGECOLLECTIONREQUIRESONEMARKBITFOREACHNODEWECOULDKEEPASEPARATETABLEOFALLTHEMARKBITSPACKEDTOGETHERINANOTHERMEMORYAREAWITHASUITABLECORRESPONDENCEBETWEENTHELOCATIONOFANODEANDITSMARKBITONSOMECOMPUTERSTHISIDEACANLEADTOAMETHODOFHANDLINGGARBAGECOLLECTIONTHATISMOREATTRACTIVETHANGIVINGUPABITINEACHNODEJWEIZENBAUMHASSUGGESTEDANINTERESTINGMODIFICATIONOFTHEREFERENCECOUNTERTECHNIQUEUSINGDOUBLYLINKEDLISTSTRUCTURESHEPUTSAREFERENCECOUNTERONLYINTHEHEADEROFEACHLISTTHUSWHENPOINTERVARIABLESTRAVERSEALISTLISTHEADFORLISTTHEYARENOTINCLUDEDINTHEREFERENCECOUNTSFORTHEINDIVIDUALNODESIFWEKNOWTHERULESBYWHICHREFERENCECOUNTSAREMAINTAINEDFORENTIRELISTSWEKNOWINTHEORYHOWTOAVOIDREFERRINGTOANYLISTTHATHASAREFERENCECOUNTOFZEROWEALSOHAVECOMPLETEFREEDOMTOEXPLICITLYOVERRIDEREFERENCECOUNTSANDTORETURNPARTICULARLISTSTOAVAILABLESTORAGETHESEIDEASREQUIRECAREFULHANDLINGTHEYPROVETOBESOMEWHATDANGEROUSINTHEHANDSOFINEXPERIENCEDPROGRAMMERSANDTHEYVETENDEDTOMAKEPROGRAMDEBUGGINGMOREDIFFICULTDUETOTHECONSEQUENCESOFREFERRINGTONODESTHATHAVEBEENERASEDTHENICESTPARTOFWEIZENBAUMSAPPROACHISHISTREATMENTOFLISTSWHOSEREFERENCECOUNTHASJUSTGONETOZEROSUCHALISTISAPPENDEDATTHEENDOFTHECURRENTAVAILABLELISTTHISISEASYTODOWITHDOUBLYLINKEDLISTSANDITISCONSIDEREDFORAVAILABLESPACEONLYAFTERALLPREVIOUSLYAVAILABLECELLSAREUSEDUPEVENTUALLYASTHEINDIVIDUALNODESOFTHISLISTDOBECOMEAVAILABLETHEREFERENCECOUNTERSOFLISTSTHEYREFERTOAREDECREASEDBYONETHISDELAYEDACTIONOFERASINGLISTSISQUITEEFFICIENTWITHRESPECTTORUNNINGTIMEBUTITTENDSTOMAKEINCORRECTPROGRAMSRUNCORRECTLYFORAWHILEFORFURTHERDETAILSSEECACMREFERENCECOUNTERSALGORITHMSFORGARBAGECOLLECTIONAREQUITEINTERESTINGFORSEVERALREASONSINTHEFIRSTPLACESUCHALGORITHMSAREUSEFULINOTHERSITUATIONSWHENWEWANTTOMARKALLNODESTHATAREDIRECTLYORINDIRECTLYREFERREDTOBYAGIVENNODEFOREXAMPLEWEMIGHTWANTTOFINDALLSUBROUTINESCALLEDDIRECTLYORINDIRECTLYBYACERTAINSUBROUTINEASINEXERCISESUBRALLOCGARBAGECOLLECTIONGENERALLYPROCEEDSINTWOPHASESWEASSUMETHATTHEMARKBITSOFALLNODESAREINITIALLYZEROORWESETTHEMALLTOZERONOWTHEFIRSTPHASEMARKSALLTHENONGARBAGENODESSTARTINGFROMTHOSETHATAREIMMEDIATELYACCESSIBLETOTHEMAINPROGRAMTHESECONDPHASEMAKESASEQUENTIALPASSOVERTHEENTIREMEMORYPOOLAREAPUTTINGALLUNMARKEDNODESONTOTHELISTOFFREESPACETHEMARKINGPHASEISTHEMOSTINTERESTINGSOWEWILLCONCENTRATEOURATTENTIONONITCERTAINVARIATIONSONTHESECONDPHASECANHOWEVERMAKEITNONTRIVIALSEEEXERCISEAVAILLISTLIBERATIONDYNAMICSTORAGEALLOCATIONMARKBITSWHENAGARBAGECOLLECTIONALGORITHMISRUNNINGONLYAVERYLIMITEDAMOUNTOFSTORAGEISAVAILABLETOCONTROLTHEMARKINGPROCEDURETHISINTRIGUINGPROBLEMWILLBECOMECLEARINTHEFOLLOWINGDISCUSSIONITISADIFFICULTYTHATISNOTAPPRECIATEDBYMOSTPEOPLEWHENTHEYFIRSTHEARABOUTTHEIDEAOFGARBAGECOLLECTIONANDFORSEVERALYEARSTHEREWASNOGOODSOLUTIONTOITTHEFOLLOWINGMARKINGALGORITHMISPERHAPSTHEMOSTOBVIOUSMARKINGALGORITHMSAEASYMARKALGORITHMAMARKINGLETTHEENTIREMEMORYUSEDFORLISTSTORAGEBENODENODENODEMANDSUPPOSETHATTHESEWORDSEITHERAREATOMSORCONTAINTWOLINKFIELDSALINKANDBLINKASSUMETHATALLNODESAREINITIALLYUNMARKEDTHEPURPOSEOFTHISALGORITHMISTOMARKALLOFTHENODESTHATCANBEREACHEDBYACHAINOFALINKANDORBLINKPOINTERSINNONATOMICNODESSTARTINGFROMASETOFIMMEDIATELYACCESSIBLENODESTHATISNODESPOINTEDTOBYCERTAINFIXEDLOCATIONSINTHEMAINPROGRAMTHESEFIXEDPOINTERSAREUSEDASASOURCEFORALLMEMORYACCESSESAINITIALIZEMARKALLNODESTHATAREIMMEDIATELYACCESSIBLESETADOESNODEKIMPLYANOTHERSETIFNODEKISANATOMORUNMARKEDGOTOSTEPAOTHERWISEIFNODEALINKKISUNMARKEDMARKITANDIFITISNOTANATOMSETSIMILARLYIFNODEBLINKKISUNMARKEDMARKITANDIFITISNOTANATOMSETADONESETIFRETURNTOSTEPAOTHERWISETHEALGORITHMTERMINATESTHROUGHOUTTHISALGORITHMANDTHEONESTHATFOLLOWINTHISSECTIONWEWILLASSUMEFORCONVENIENCETHATTHENONEXISTENTNODEISMARKEDFOREXAMPLEALINKKORBLINKKMAYEQUALINSTEPAAVARIANTOFALGORITHMASETSINSTEPAREMOVESTHEOPERATIONFROMSTEPAANDINSTEADCHANGESSTEPATOAADONESETIFRETURNTOSTEPAOTHERWISEIFSETANDANDRETURNTOSTEPAOTHERWISETHEALGORITHMTERMINATESITISVERYDIFFICULTTOGIVEAPRECISEANALYSISOFALGORITHMAORTODETERMINEWHETHERITISBETTERORWORSETHANTHEVARIANTJUSTDESCRIBEDSINCENOMEANINGFULWAYTODESCRIBETHEPROBABILITYDISTRIBUTIONOFTHEINPUTPRESENTSITSELFWECANSAYTHATITTAKESUPTIMEPROPORTIONALTOMINTHEWORSTCASEWHEREISTHENUMBEROFCELLSITMARKSANDINGENERALWECANBESURETHATITISVERYSLOWWHENISLARGEALGORITHMAISTOOSLOWTOMAKEGARBAGECOLLECTIONAUSABLETECHNIQUEANOTHERFAIRLYEVIDENTMARKINGALGORITHMISTOFOLLOWALLPATHSANDTORECORDBRANCHPOINTSONASTACKASWEGOSTACKALGORITHMBMARKINGTHISALGORITHMACHIEVESTHESAMEEFFECTASALGORITHMAUSINGSTACKSTACKASAUXILIARYSTORAGETOKEEPTRACKOFALLPATHSTHATHAVENOTYETBEENPURSUEDTOCOMPLETIONBINITIALIZELETTBETHENUMBEROFIMMEDIATELYACCESSIBLENODESMARKTHEMANDPLACEPOINTERSTOTHEMINSTACKSTACKTBSTACKEMPTYIFTHEALGORITHMTERMINATESBREMOVETOPENTRYSETBEXAMINELINKSIFNODEKISANATOMRETURNTOSTEPBOTHERWISEIFNODEALINKKISUNMARKEDMARKITANDSETIFNODEBLINKKISUNMARKEDMARKITANDSETRETURNTOBALGORITHMBCLEARLYHASANEXECUTIONTIMEESSENTIALLYPROPORTIONALTOTHENUMBEROFCELLSITMARKSANDTHISISASGOODASWECOULDPOSSIBLYEXPECTBUTITISNOTREALLYUSABLEFORGARBAGECOLLECTIONBECAUSETHEREISNOPLACETOKEEPTHESTACKITDOESNOTSEEMUNREASONABLETOASSUMETHATTHESTACKINALGORITHMBMIGHTGROWUPTOSAYFIVEPERCENTOFTHESIZEOFMEMORYBUTWHENGARBAGECOLLECTIONISCALLEDANDALLAVAILABLESPACEHASBEENUSEDUPTHEREISONLYAFIXEDRATHERSMALLNUMBEROFCELLSTOUSEFORSUCHASTACKMOSTOFTHEEARLYGARBAGECOLLECTIONPROCEDURESWEREESSENTIALLYBASEDONTHISALGORITHMIFTHESPECIALSTACKSPACEWASUSEDUPTHEENTIREPROGRAMHADTOBETERMINATEDASOMEWHATBETTERALTERNATIVEISPOSSIBLEUSINGAFIXEDSTACKSIZEBYCOMBININGALGORITHMSAANDBSTACKALGORITHMCMARKINGTHISALGORITHMACHIEVESTHESAMEEFFECTASALGORITHMSAANDBUSINGANAUXILIARYTABLEOFHCELLSSTACKSTACKINTHISALGORITHMTHEACTIONINSERTXONTHESTACKMEANSTHEFOLLOWINGSETANDIFSETANDNOTETHATTPOINTSTOTHECURRENTTOPOFTHESTACKANDBPOINTSONEPLACEBELOWTHECURRENTBOTTOMSTACKESSENTIALLYOPERATESASANINPUTRESTRICTEDDEQUECINITIALIZESETMARKALLTHEIMMEDIATELYACCESSIBLENODESANDSUCCESSIVELYINSERTTHEIRLOCATIONSONTOTHESTACKASJUSTDESCRIBEDABOVECSTACKEMPTYIFGOTOCCREMOVETOPENTRYSETCEXAMINELINKSIFNODEKISANATOMRETURNTOSTEPCOTHERWISEIFNODEALINKKISUNMARKEDMARKITANDINSERTALINKKONTHESTACKSIMILARLYIFNODEBLINKKISUNMARKEDMARKITANDINSERTBLINKKONTHESTACKRETURNTOCCSWEEPIFTHEALGORITHMTERMINATESTHEVARIABLEKREPRESENTSTHESMALLESTLOCATIONWHERETHEREISAPOSSIBILITYOFANEWLEADTOANODETHATSHOULDBEMARKEDOTHERWISEIFNODEKISANATOMORUNMARKEDINCREASEKBYANDREPEATTHISSTEPIFNODEKISMARKEDSETINCREASEKBYANDGOTOCTHISALGORITHMANDALGORITHMBCANBEIMPROVEDIFXISNEVERPUTONTHESTACKWHENNODEXISANATOMMOREOVERSTEPSBANDCNEEDNOTPUTITEMSONTHESTACKWHENTHEYKNOWTHATTHEITEMSWILLIMMEDIATELYBEREMOVEDSUCHMODIFICATIONSARESTRAIGHTFORWARDANDTHEYHAVEBEENLEFTOUTTOAVOIDMAKINGTHEALGORITHMSUNNECESSARILYCOMPLICATEDALGORITHMCISESSENTIALLYEQUIVALENTTOALGORITHMAWHENANDTOALGORITHMBWHENITGRADUALLYBECOMESMOREEFFICIENTASHBECOMESLARGERUNFORTUNATELYALGORITHMCDEFIESAPRECISEANALYSISFORTHESAMEREASONASALGORITHMAANDWEHAVENOGOODIDEAHOWLARGEHSHOULDBETOMAKETHISMETHODFASTENOUGHITISPLAUSIBLEBUTUNCOMFORTABLETOSAYTHATAVALUELIKEISSUFFICIENTTOMAKEALGORITHMCUSABLEFORGARBAGECOLLECTIONINMOSTAPPLICATIONSALGORITHMSBANDCUSEASTACKKEPTINSEQUENTIALMEMORYLOCATIONSBUTWEHAVESEENEARLIERINTHISCHAPTERTHATLINKEDMEMORYTECHNIQUESAREWELLSUITEDTOMAINTAININGSTACKSTHATARENOTCONSECUTIVEINMEMORYTHISSUGGESTSTHEIDEATHATWEMIGHTKEEPTHESTACKOFALGORITHMBSOMEHOWSCATTEREDSTACKLINKEDTHROUGHTHESAMEMEMORYAREAINWHICHWEARECOLLECTINGGARBAGETHISCOULDBEDONEEASILYIFWEWERETOGIVETHEGARBAGECOLLECTIONROUTINEALITTLEMOREROOMINWHICHTOBREATHESUPPOSEFOREXAMPLEWEASSUMETHATALLLISTSAREREPRESENTEDASINEXCEPTTHATTHEREFFIELDSOFLISTHEADNODESLISTHEADOFLISTAREUSEDFORGARBAGECOLLECTIONPURPOSESINSTEADOFASREFERENCECOUNTSWECANTHENREDESIGNALGORITHMBSOTHATTHESTACKISMAINTAINEDINTHEREFFIELDSOFTHEHEADERNODESDHEADMARKALGORITHMDMARKINGTHISALGORITHMACHIEVESTHESAMEEFFECTASALGORITHMSABANDCBUTITASSUMESTHATTHENODESHAVESTREFANDRLINKFIELDSASDESCRIBEDABOVEINSTEADOFALINKSANDBLINKSTHESFIELDISUSEDASTHEMARKBITSOTHATMEANSTHATNODEPISMARKEDDINITIALIZESETTHENFOREACHPOINTERPTOTHEHEADOFANIMMEDIATELYACCESSIBLELISTSEESTEPAOFALGORITHMAIFSETDSTACKEMPTYIFTHEALGORITHMTERMINATESDREMOVETOPENTRYSETDMOVETHROUGHLISTSETTHENIFORIFGOTODOTHERWISESETIFSETTHEREBYMARKINGTHEATOMICINFORMATIONOTHERWISESETIFANDSETREPEATSTEPDALGORITHMDMAYBECOMPAREDTOALGORITHMBWHICHISQUITESIMILARANDITSRUNNINGTIMEISESSENTIALLYPROPORTIONALTOTHENUMBEROFNODESMARKEDHOWEVERALGORITHMDISNOTRECOMMENDEDWITHOUTQUALIFICATIONBECAUSEITSSEEMINGLYRATHERMILDRESTRICTIONSAREOFTENTOOSTRINGENTFORAGENERALLISTPROCESSINGSYSTEMTHISALGORITHMESSENTIALLYREQUIRESTHATALLLISTSTRUCTURESBEWELLFORMEDASINWHENEVERGARBAGECOLLECTIONISCALLEDINTOACTIONBUTALGORITHMSFORLISTMANIPULATIONSMOMENTARILYLEAVETHELISTSTRUCTURESMALFORMEDANDAGARBAGECOLLECTORSUCHASALGORITHMDMUSTNOTBEUSEDDURINGTHOSEMOMENTARYPERIODSMOREOVERCAREMUSTBETAKENINSTEPDWHENTHEPROGRAMCONTAINSPOINTERSTOTHEMIDDLEOFALISTTHESECONSIDERATIONSBRINGUSTOALGORITHMEWHICHISANELEGANTMARKINGMETHODDISCOVEREDINDEPENDENTLYBYPETERDEUTSCHANDBYHERBERTSCHORRANDWMWAITEINTHEASSUMPTIONSUSEDINTHISALGORITHMAREJUSTALITTLEDIFFERENTFROMTHOSEOFALGORITHMSATHROUGHDFIGFIGALGORITHMEFORMARKINGWITHNOAUXILIARYSTACKSPACEESCHORRWAITEMARKALGORITHMEMARKINGASSUMETHATACOLLECTIONOFNODESISGIVENHAVINGTHEFOLLOWINGFIELDSMARKAONEBITFIELDATOMANOTHERONEBITFIELDALINKAPOINTERFIELDBLINKAPOINTERFIELDWHENTHEALINKANDBLINKFIELDSMAYATOMSCONTAINORAPOINTERTOANOTHERNODEOFTHESAMEFORMATWHENTHECONTENTSOFTHEALINKANDBLINKFIELDSAREIRRELEVANTTOTHISALGORITHMGIVENANONNULLPOINTERPTHISALGORITHMSETSTHEMARKFIELDEQUALTOINNODEPANDINEVERYOTHERNODETHATCANBEREACHEDFROMNODEPBYACHAINOFALINKANDBLINKPOINTERSINNODESWITHTHEALGORITHMUSESTHREEPOINTERVARIABLESTQANDPITMODIFIESTHELINKSANDCONTROLBITSINSUCHAWAYTHATALLATOMALINKANDBLINKFIELDSARERESTOREDTOTHEIRORIGINALSETTINGSAFTERCOMPLETIONALTHOUGHTHEYMAYBECHANGEDTEMPORARILYEINITIALIZESETTHROUGHOUTTHEREMAINDEROFTHISALGORITHMTHEVARIABLETHASADUALSIGNIFICANCEWHENITPOINTSTOTHETOPOFWHATISESSENTIALLYASTACKASINALGORITHMDANDTHENODETHATTPOINTSTOONCECONTAINEDALINKEQUALTOPINPLACEOFTHEARTIFICIALSTACKLINKTHATCURRENTLYOCCUPIESNODETEMARKSETEATOMIFGOTOEEDOWNALINKSETIFANDSETANDGOTOEHERETHEATOMFIELDANDALINKFIELDSARETEMPORARILYBEINGALTEREDSOTHATTHELISTSTRUCTUREINCERTAINNODESHASBEENRATHERDRASTICALLYCHANGEDBUTTHESECHANGESWILLBERESTOREDINSTEPEEDOWNBLINKSETIFANDSETANDGOTOEEUPTHISSTEPUNDOESTHELINKSWITCHINGMADEINSTEPEORETHESETTINGOFATOMTTELLSWHETHERALINKTORBLINKTISTOBERESTOREDIFTHEALGORITHMTERMINATESOTHERWISESETIFSETANDRETURNTOEIFSETANDREPEATEANEXAMPLEOFTHISALGORITHMINACTIONAPPEARSINFIGFIGWHICHSHOWSTHESUCCESSIVESTEPSENCOUNTEREDFORASIMPLELISTSTRUCTURETHEREADERWILLFINDITWORTHWHILETOSTUDYALGORITHMEVERYCAREFULLYNOTICEHOWTHELINKINGSTRUCTUREISARTIFICIALLYCHANGEDINSTEPSEANDEINORDERTOMAINTAINASTACKANALOGOUSTOTHESTACKINALGORITHMDWHENWERETURNTOAPREVIOUSSTATETHEATOMFIELDISUSEDTOTELLWHETHERALINKORBLINKCONTAINSTHEARTIFICIALADDRESSTHENESTINGSHOWNATTHEBOTTOMOFFIGFIGILLUSTRATESHOWEACHNONATOMICNODEISVISITEDTHREETIMESDURINGALGORITHMETHESAMECONFIGURATIONTPOCCURSATTHEBEGINNINGOFSTEPSEEANDEFIGASTRUCTUREMARKEDBYALGORITHMETHETABLESHOWSONLYCHANGESTHATHAVEOCCURREDSINCETHEPREVIOUSSTEPAPROOFTHATALGORITHMEISVALIDCANBEFORMULATEDBYINDUCTIONONTHENUMBEROFNODESTHATARETOBEMARKEDWEPROVEATTHESAMETIMETHATPRETURNSTOITSINITIALVALUEPATTHECONCLUSIONOFTHEALGORITHMFORDETAILSSEEEXERCISEALGORITHMEWILLRUNFASTERIFSTEPEISDELETEDANDIFSPECIALTESTSFORANDAPPROPRIATEACTIONSAREMADEINSTEPSEANDEASWELLASATESTINSTEPEWEHAVESTATEDTHEALGORITHMINITSPRESENTFORMFORSIMPLICITYTHEMODIFICATIONSJUSTSTATEDAPPEARINTHEANSWERTOEXERCISETHEIDEAUSEDINALGORITHMECANBEAPPLIEDTOPROBLEMSOTHERTHANGARBAGECOLLECTIONINFACTITSUSEFORTREETRAVERSALHASALREADYBEENMENTIONEDINEXERCISEINSITUTRAVERSETHEREADERMAYALSOFINDITUSEFULTOCOMPAREALGORITHMEWITHTHESIMPLERPROBLEMSOLVEDINEXERCISEINVERTLISTOFALLTHEMARKINGALGORITHMSWEHAVEDISCUSSEDONLYALGORITHMDISDIRECTLYAPPLICABLETOLISTSREPRESENTEDASINTHEOTHERALGORITHMSALLTESTWHETHERORNOTAGIVENNODEPISANATOMANDTHECONVENTIONSOFAREINCOMPATIBLEWITHSUCHTESTSBECAUSETHEYALLOWATOMICINFORMATIONTOFILLANENTIREWORDEXCEPTFORTHEMARKBITHOWEVEREACHOFTHEOTHERALGORITHMSCANBEMODIFIEDSOTHATTHEYWILLWORKWHENATOMICDATAISDISTINGUISHEDFROMPOINTERDATAINTHEWORDTHATLINKSTOITINSTEADOFBYLOOKINGATTHEWORDITSELFINALGORITHMSAORCWECANSIMPLYAVOIDMARKINGATOMICWORDSUNTILALLNONATOMICWORDSHAVEBEENPROPERLYMARKEDTHENONEFURTHERPASSOVERALLTHEDATASUFFICESTOMARKALLTHEATOMICWORDSALGORITHMBISEVENEASIERTOMODIFYSINCEWENEEDMERELYKEEPATOMICWORDSOFFTHESTACKTHEADAPTATIONOFALGORITHMEISALMOSTASSIMPLEALTHOUGHIFBOTHALINKANDBLINKAREALLOWEDTOPOINTTOATOMICDATAITWILLBENECESSARYTOINTRODUCEANOTHERBITFIELDINNONATOMICNODESTHISISGENERALLYNOTHARDTODOFOREXAMPLEWHENTHEREARETWOWORDSPERNODETHELEASTSIGNIFICANTBITOFEACHLINKFIELDMAYBEUSEDTOSTORETEMPORARYINFORMATIONALTHOUGHALGORITHMEREQUIRESATIMEPROPORTIONALTOTHENUMBEROFNODESITMARKSTHISCONSTANTOFPROPORTIONALITYISNOTASSMALLASINALGORITHMBTHEFASTESTGARBAGECOLLECTIONMETHODKNOWNCOMBINESALGORITHMSBANDEASDISCUSSEDINEXERCISELETUSNOWTRYTOMAKESOMEQUANTITATIVEESTIMATESOFTHEEFFICIENCYOFGARBAGECOLLECTIONEFFICIENCYLIBERATIONGARBAGECOLLECTIONASOPPOSEDTOTHEPHILOSOPHYOFTHATWASUSEDINMOSTOFTHEPREVIOUSEXAMPLESINTHISCHAPTERINEACHOFTHEPREVIOUSCASESWECOULDHAVEOMITTEDALLSPECIFICMENTIONOFRETURNINGNODESTOFREESPACEANDWECOULDHAVESUBSTITUTEDAGARBAGECOLLECTORINSTEADINASPECIALPURPOSEAPPLICATIONASOPPOSEDTOASETOFGENERALPURPOSELISTMANIPULATIONSUBROUTINESTHEPROGRAMMINGANDDEBUGGINGOFAGARBAGECOLLECTORISMOREDIFFICULTTHANTHEMETHODSWEHAVEUSEDANDOFCOURSEGARBAGECOLLECTIONREQUIRESANEXTRABITRESERVEDINEACHNODEBUTWEAREINTERESTEDHEREINTHERELATIVESPEEDOFTHEPROGRAMSONCETHEYHAVEBEENWRITTENANDDEBUGGEDTHEBESTGARBAGECOLLECTIONROUTINESKNOWNHAVEANEXECUTIONTIMEESSENTIALLYOFTHEFORMWHEREANDARECONSTANTSNISTHENUMBEROFNODESMARKEDANDMISTHETOTALNUMBEROFNODESINTHEMEMORYTHUSISTHENUMBEROFFREENODESFOUNDANDTHEAMOUNTOFTIMEREQUIREDTORETURNTHESENODESTOFREESTORAGEISPERNODELETTHISFIGUREBECOMESSOIFTHATISIFTHEMEMORYISTHREEFOURTHSFULLWESPENDUNITSOFTIMEPERFREENODERETURNEDTOSTORAGEWHENTHECORRESPONDINGCOSTISONLYIFWEDONOTUSETHEGARBAGECOLLECTIONTECHNIQUETHEAMOUNTOFTIMEPERNODERETURNEDISESSENTIALLYACONSTANTANDITISDOUBTFULTHATWILLBEVERYLARGEHENCEWECANSEETOWHATEXTENTGARBAGECOLLECTIONISINEFFICIENTWHENTHEMEMORYBECOMESFULLANDHOWITISCORRESPONDINGLYEFFICIENTWHENTHEDEMANDONMEMORYISLIGHTGARBAGECOLLECTIONEFFICIENCYLIBERATIONMANYPROGRAMSHAVETHEPROPERTYTHATTHERATIOOFGOODNODESTOTOTALMEMORYISQUITESMALLWHENTHEPOOLOFMEMORYBECOMESFULLINSUCHCASESITMIGHTBEBESTTOMOVEALLTHEACTIVELISTDATATOANOTHERMEMORYPOOLOFEQUALSIZEUSINGACOPYINGTECHNIQUESEEEXERCISEBUTCOPYINGANDCOMPACTINGWITHOUTBOTHERINGTOPRESERVETHECONTENTSOFTHENODESBEINGCOPIEDTHENWHENTHESECONDMEMORYPOOLFILLSUPWECANMOVETHEDATABACKTOTHEFIRSTONEAGAINWITHTHISMETHODMOREDATACANBEKEPTINHIGHSPEEDMEMORYATONCEBECAUSELINKFIELDSTENDTOPOINTTONEARBYNODESMOREOVERTHERESNONEEDFORAMARKINGPHASEANDSTORAGEALLOCATIONISSIMPLYSEQUENTIALITISPOSSIBLETOCOMBINEGARBAGECOLLECTIONWITHSOMEOFTHEOTHERMETHODSOFRETURNINGCELLSTOFREESTORAGETHESEIDEASARENOTMUTUALLYEXCLUSIVEANDSOMESYSTEMSEMPLOYBOTHTHEREFERENCECOUNTERANDTHEGARBAGECOLLECTIONSCHEMESBESIDESALLOWINGTHEPROGRAMMERTOERASENODESEXPLICITLYTHEIDEAISTOEMPLOYGARBAGECOLLECTIONONLYASALASTRESORTWHENEVERALLOTHERMETHODSOFRETURNINGCELLSHAVEFAILEDANELABORATESYSTEMWHICHIMPLEMENTSTHISIDEAANDALSOINCLUDESAMECHANISMFORPOSTPONINGOPERATIONSONREFERENCECOUNTSINORDERTOACHIEVEFURTHEREFFICIENCYHASBEENDESCRIBEDBYLPDEUTSCHANDDGBOBROWINCACMASEQUENTIALREPRESENTATIONOFLISTSWHICHSAVESMANYOFTHELINKFIELDSATTHELISTCAPITALLISTSEQUENTIALLISTCAPITALLISTREPRESENTATIONEXPENSEOFMORECOMPLICATEDSTORAGEMANAGEMENTISALSOPOSSIBLESEENEWISEMANANDJOHILESCOMPJWJHANSENCACMANDCJCHENEYCACMDANIELPFRIEDMANANDDAVIDSWISEHAVEOBSERVEDTHATTHEREFERENCECOUNTERMETHODCANBEEMPLOYEDSATISFACTORILYINMANYCASESEVENWHENLISTSPOINTTOTHEMSELVESIFCERTAINLINKFIELDSARENOTINCLUDEDINTHECOUNTSINFPROCLETTERSAGREATMANYVARIANTSANDREFINEMENTSOFGARBAGECOLLECTIONALGORITHMSHAVEBEENPROPOSEDJACQUESCOHENINCOMPUTINGSURVEYSPRESENTSADETAILEDREVIEWOFTHELITERATUREPRIORTOWITHIMPORTANTCOMMENTSABOUTTHEEXTRACOSTOFMEMORYACCESSESWHENPAGESOFDATAARESHUTTLEDBETWEENSLOWMEMORYANDFASTMEMORYMEMORYHIERARCHYGARBAGECOLLECTIONASWEHAVEDESCRIBEDITISUNSUITABLEFORREALTIMEAPPLICATIONSWHEREEACHBASICLISTOPERATIONMUSTBEQUICKEVENIFTHEGARBAGECOLLECTORGOESINTOACTIONINFREQUENTLYITREQUIRESLARGECHUNKSOFCOMPUTERTIMEONTHOSEOCCASIONSEXERCISEDISCUSSESSOMEAPPROACHESBYWHICHREALTIMEGARBAGECOLLECTIONISPOSSIBLEITISAVERYSADTHINGNOWADAYSTHATTHEREISSOLITTLEUSELESSINFORMATIONOSCARWILDEEXERCISESMINSECTIONWESAWTHATTREESARESPECIALCASESOFTHECLASSICALMATHEMATICALCONCEPTOFADIRECTEDGRAPHCANLISTSBEDESCRIBEDINGRAPHTHEORETICTERMINOLOGYALISTSTRUCTUREISADIRECTEDGRAPHINWHICHTHEARCSLEAVINGEACHVERTEXAREORDEREDANDWHERESOMEOFTHEVERTICESTHATHAVEOUTDEGREEAREDESIGNATEDATOMSFURTHERMORETHEREISAVERTEXSUCHTHATTHEREISANORIENTEDPATHFROMTOFORALLVERTICESWITHDIRECTIONSOFARCSREVERSEDWOULDBEAROOTINSECTIONWESAWTHATTREETRAVERSALCANBEFACILITATEDUSINGATHREADEDTHREADLINKSREPRESENTATIONINSIDETHECOMPUTERCANLISTSTRUCTURESBETHREADEDINANANALOGOUSWAYNOTINTHESAMEWAYSINCETHREADLINKSINTHEUSUALREPRESENTATIONLEADBACKTOPARENTWHICHISNOTUNIQUEFORSUBLISTSTHEREPRESENTATIONDISCUSSEDINEXERCISEDIGRAPHTHREADSORSOMESIMILARMETHODCOULDPERHAPSBEUSEDBUTTHISIDEAHASNOTYETBEENEXPLOITEDATTHETIMEOFWRITINGMPROVETHEVALIDITYOFALGORITHMEHINTSEETHEPROOFOFALGORITHMBININORDERPROOFOFALGORITHMSASMENTIONEDINTHETEXTWEPROVEALSOTHATUPONTERMINATIONIFONLYPISTOBEMARKEDTHEALGORITHMCERTAINLYOPERATESCORRECTLYIFNODESARETOBEMARKEDWEMUSTHAVESTEPETHENSETSANDEXECUTESTHEALGORITHMWITHPREPLACEDBYALINKPANDTREPLACEDBYPBYINDUCTIONNOTETHATSINCEMARKPISNOWALLLINKSTOPAREEQUIVALENTTOBYSTEPSEANDEWESEETHATULTIMATELYWEWILLMARKALLNODESONPATHSTHATSTARTWITHALINKPANDDONOTPASSTHROUGHPANDWEWILLTHENGETTOSTEPEWITHANDNOWSINCESTEPERESTORESALINKPANDATOMPANDWEREACHSTEPESTEPESETSETCANDASIMILARARGUMENTSHOWSTHATWEWILLULTIMATELYMARKALLNODESONPATHSTHATSTARTWITHBLINKPANDDONOTPASSTHROUGHPORNODESREACHABLEFROMALINKPTHENWEWILLGETTOEWITHANDFINALLYWEGETTOEWITHWRITEAPROGRAMFORALGORITHMEASSUMINGTHATNODESAREREPRESENTEDASONEWORDWITHMARKTHEFIELDATOMTHEFIELDALINKTHEFIELDBLINKTHEFIELDANDALSODETERMINETHEEXECUTIONTIMEOFYOURPROGRAMINTERMSOFRELEVANTPARAMETERSINTHECOMPUTERTHEPROBLEMOFDETERMININGWHETHERAMEMORYLOCATIONCONTAINSORISNOTQUITETRIVIALANDTHISCANBEAFACTORINYOURPROGRAMTHEPROGRAMTHATFOLLOWSINCORPORATESTHESUGGESTEDIMPROVEMENTSINTHESPEEDOFPROCESSINGATOMSTHATAPPEARINTHETEXTAFTERTHESTATEMENTOFALGORITHMEINSTEPSEANDEOFTHEALGORITHMWEWANTTOTESTIFMARKQIFTHISISANUNUSUALCASETHATCANBEHANDLEDPROPERLYBYSETTINGITTOANDTREATINGITASIFITWEREORIGINALLYSINCEITHASALINKANDBLINKBOTHTHISSIMPLIFICATIONISNOTREFLECTEDINTHETIMINGCALCULATIONSBELOWANDFORSETTINGMARKSBYKIRCHHOFFSLAWTHETOTALTIMEISWHEREISTHENUMBEROFNONATOMICNODESMARKEDISTHENUMBEROFATOMSMARKEDISTHENUMBEROFLINKSENCOUNTEREDINMARKEDNONATOMICNODESANDISTHENUMBEROFTIMESWEWENTDOWNANALINKSCHORRANDWAITEGIVEAMARKINGALGORITHMTHATCOMBINESALGORITHMSBANDEASFOLLOWSTHEASSUMPTIONSOFALGORITHMEWITHREGARDTOFIELDSWITHINTHENODESETCARERETAINEDBUTANAUXILIARYSTACKSTACKSTACKSTACKNISUSEDASINALGORITHMBANDTHEMECHANISMOFALGORITHMEISEMPLOYEDONLYWHENTHESTACKISFULLTHEFOLLOWINGISTHEFASTESTKNOWNMARKINGALGORITHMFORAONELEVELMEMORYSSSETIFTHEALGORITHMTERMINATESOTHERWISESETSSETIFORGOTOSOTHERWISESETNOWIFGOTOSOTHERWISEIFSETANDGOTOSOTHERWISEGOTOSSSETIFORGOTOSOTHERWISESETNOWIFGOTOSOTHERWISESETANDRETURNTOSSIFTERMINATETHEALGORITHMOTHERWISESETANDGOTOSSSETIFORGOTOSOTHERWISESETNOWIFGOTOSOTHERWISESETGOTOSSSETIFORGOTOSOTHERWISESETNOWIFGOTOSOTHERWISESETGOTOSSIFGOTOSOTHERWISESETIFSETANDRETURNTOSIFSETANDRETURNTOSREFERENCECACMTHEQUANTITATIVEDISCUSSIONATTHEENDOFTHISSECTIONSAYSTHATTHECOSTOFGARBAGECOLLECTIONISAPPROXIMATELYUNITSOFTIMEWHEREDOESTHETERMCOMEFROMFROMTHESECONDPHASEOFGARBAGECOLLECTIONORPERHAPSALSOTHEINITIALPHASEIFALLMARKBITSARESETTOZEROATTHATTIMERWFLOYDDESIGNAMARKINGALGORITHMTHATISSIMILARTOALGORITHMEINUSINGNOAUXILIARYSTACKEXCEPTTHATIITHASAMOREDIFFICULTTASKTODOBECAUSEEACHNODECONTAINSONLYMARKALINKANDBLINKFIELDSTHEREISNOATOMFIELDTOPROVIDEADDITIONALCONTROLYETIIITHASASIMPLERTASKTODOBECAUSEITMARKSONLYABINARYTREEINSTEADOFAGENERALLISTHEREALINKANDBLINKARETHEUSUALLLINKANDRLINKINABINARYTREEDELETESTEPSEANDEANDDELETEINESETINSTEPEANDUSEINSTEPEINPLACEOFTHEPRESENTRESPECTIVELYTHEIDEAISTOSETTHEMARKBITONLYAFTERTHELEFTSUBTREEHASBEENMARKEDTHISALGORITHMWORKSEVENIFTHETREEHASOVERLAPPINGSHAREDSUBTREESBUTITDOESNOTWORKFORALLRECURSIVELISTSTRUCTURESBINARYTREEWITHSHAREDSUBTREESSUCHASTHOSEWITHNODEALINKQANANCESTOROFNODEQNOTETHATALINKOFAMARKEDNODEISNEVERCHANGEDLPDEUTSCHDESIGNAMARKINGALGORITHMSIMILARTOALGORITHMSDANDEINTHATITUSESNOAUXILIARYMEMORYFORASTACKBUTMODIFYTHEMETHODSOTHATITWORKSWITHNODESOFVARIABLESIZEANDWITHAVARIABLENUMBEROFPOINTERSHAVINGTHEFOLLOWINGFORMATTHEFIRSTWORDOFANODEHASTWOFIELDSMARKANDSIZETHEMARKFIELDISTOBETREATEDASINALGORITHMEANDTHESIZEFIELDCONTAINSANUMBERTHISMEANSTHATTHEREARECONSECUTIVEWORDSAFTERTHEFIRSTWORDEACHCONTAININGTWOFIELDSMARKWHICHISZEROANDSHOULDREMAINSOANDLINKWHICHISORPOINTSTOTHEFIRSTWORDOFANOTHERNODEFOREXAMPLEANODEWITHTHREEPOINTERSWOULDCOMPRISEFOURCONSECUTIVEWORDSYOURALGORITHMSHOULDMARKALLNODESREACHABLEFROMAGIVENNODEPSOLUTIONANALOGOUSTOALGORITHMEBUTSIMPLERFFSETFSETANDSETFIFGOTOFFSETIFANDSETANDGOTOFOTHERWISESETANDRETURNTOFFIFSTOPOTHERWISESETANDRETURNTOFASIMILARALGORITHMWHICHSOMETIMESDECREASESTHESTORAGEOVERHEADANDWHICHAVOIDSALLPOINTERSINTOTHEMIDDLEOFNODESHASBEENSUGGESTEDBYLARSERIKTHORELLIBITSOLUTIONANALOGOUSTOALGORITHMDFORTHISSOLUTIONWEASSUMETHATTHESIZEFIELDISLARGEENOUGHTOCONTAINALINKADDRESSSUCHANASSUMPTIONISPROBABLYNOTJUSTIFIEDBYTHESTATEMENTOFTHEPROBLEMBUTITLETSUSUSEASLIGHTLYFASTERMETHODTHANTHEFIRSTSOLUTIONWHENITISAPPLICABLEGGSETGIFGOTOGGSETGIFANDSETGOBACKTOGGIFSTOPOTHERWISESETANDFINDTHEFIRSTVALUEOFFORWHICHSETANDGOBACKTOGDEDWARDSDESIGNANALGORITHMFORTHESECONDPHASEOFGARBAGECOLLECTIONTHATCOMPACTSSTORAGEINTHEFOLLOWINGSENSECOMPACTINGMEMORYREALLOCATIONLETNODENODEMBEONEWORDNODESWITHFIELDSMARKATOMALINKANDBLINKASDESCRIBEDINALGORITHMEASSUMETHATINALLNODESTHATARENOTGARBAGETHEDESIREDALGORITHMSHOULDRELOCATETHEMARKEDNODESIFNECESSARYSOTHATTHEYALLAPPEARINCONSECUTIVELOCATIONSNODENODEKANDATTHESAMETIMETHEALINKANDBLINKFIELDSOFNONATOMICNODESSHOULDBEALTEREDIFNECESSARYSOTHATTHELISTSTRUCTUREISPRESERVEDHHSETMHINCREASELBYONEANDIFREPEATTHISSTEPHDECREASEKBYONEANDIFREPEATTHISSTEPHIFGOTOSTEPHOTHERWISESETANDRETURNTOHHFORKDOTHEFOLLOWINGSETIFANDSETIFANDSETSEEALSOEXERCISEGCANDCOMPACTDESIGNANALGORITHMTHATCOPIESALISTSTRUCTUREASSUMINGTHATANINTERNALREPRESENTATIONLIKETHATINISBEINGUSEDTHUSIFYOURPROCEDUREISASKEDTOCOPYTHELISTWHOSEHEADISTHENODEATTHEUPPERLEFTCOPYALISTCORNEROFANEWSETOFLISTSHAVINGNODESANDWITHSTRUCTUREANDINFORMATIONIDENTICALTOTHATSHOWNINSHOULDBECREATEDASSUMETHATTHELISTSTRUCTUREISSTOREDINMEMORYUSINGSTREFANDRLINKFIELDSASINANDTHATNODEPISTHEHEADOFTHELISTTOBECOPIEDASSUMEFURTHERTHATTHEREFFIELDINEACHLISTHEADNODEISTOAVOIDTHENEEDFORADDITIONALMEMORYSPACEYOURCOPYINGPROCEDURESHOULDMAKEUSEOFTHEREFFIELDSANDRESETTHEMTOAGAINAFTERWARDSZZINITIALIZESETHEREFANDRAREPOINTERSFORAQUEUESETUPINTHEREFFIELDSOFALLHEADERNODESENCOUNTEREDZBEGINNEWLISTSETZADVANCETORIGHTSETIFGOTOZZCOPYONENODESETZTRANSLATESUBLISTLINKIFSETANDIFSETIFANDSETGOTOZZMOVETONEXTLISTSETIFSETANDRETURNTOZOTHERWISESETZFINALCLEANUPSETIFSETANDANDREPEATSTEPZOFCOURSETHISUSEOFTHEREFFIELDSMAKESITIMPOSSIBLETODOGARBAGECOLLECTIONWITHALGORITHMDMOREOVERALGORITHMDISRULEDOUTBYTHEFACTTHATTHELISTSARENTWELLFORMEDDURINGTHECOPYINGSEVERALELEGANTLISTMOVINGANDLISTCOPYINGALGORITHMSTHATMAKESUBSTANTIALLYWEAKERASSUMPTIONSABOUTLISTREPRESENTATIONHAVEBEENDEVISEDSEEDWCLARKCACMJMROBSONCACMMANYLISTSTRUCTURECANBEFULLYEXPANDEDINTOATREESTRUCTUREBYREPEATINGALLOVERLAPPINGELEMENTSUNTILNONEARELEFTWHENTHELISTISRECURSIVETHISGIVESANINFINITETREEFOREXAMPLETHELISTWOULDEXPANDINTOANINFINITETREEWHOSEFIRSTFOURLEVELSAREDESIGNANALGORITHMTOTESTTHEEQUIVALENCEOFTWOLISTSTRUCTURESINTHESENSEEQUIVALENTLISTSTHATTHEYHAVETHESAMEDIAGRAMWHENFULLYEXPANDEDFOREXAMPLELISTSANDAREEQUIVALENTINTHISSENSEIFHEREISAPENCILANDPAPERMETHODTHATCANBEWRITTENOUTMOREFORMALLYTOANSWERTHEPROBLEMFIRSTATTACHAUNIQUENAMEEGACAPITALLETTERTOEACHLISTINTHEGIVENSETINTHEEXAMPLEWEMIGHTHAVENOWMAKEALISTOFPAIRSOFLISTNAMESTHATMUSTBEPROVEDEQUALSUCCESSIVELYADDPAIRSTOTHISLISTUNTILEITHERACONTRADICTIONISFOUNDBECAUSEWEHAVEAPAIRTHATDISAGREEONTHEFIRSTLEVELTHENTHEORIGINALLYGIVENLISTSAREUNEQUALORUNTILTHELISTOFPAIRSDOESNOTIMPLYANYFURTHERPAIRSTHENTHEORIGINALLYGIVENLISTSAREEQUALINTHEEXAMPLETHISLISTOFPAIRSWOULDORIGINALLYCONTAINONLYTHEGIVENPAIRTHENITGETSTHEFURTHERPAIRSBYMATCHINGANDFROMANDTHENWEHAVEASELFCONSISTENTSETTOPROVETHEVALIDITYOFTHISMETHODOBSERVETHATIIFITRETURNSTHEANSWERUNEQUALTHEGIVENLISTSAREUNEQUALIIIFTHEGIVENLISTSAREUNEQUALITRETURNSTHEANSWERUNEQUALIIIITALWAYSTERMINATESMMINSKYSHOWTHATITISPOSSIBLETOUSEAGARBAGECOLLECTIONMETHODRELIABLYINAREALTIMEAPPLICATIONFOREXAMPLEWHENACOMPUTERISREALTIMEGARBAGECOLLECTIONCONTROLLINGSOMEPHYSICALDEVICEEVENWHENSTRINGENTUPPERBOUNDSAREPLACEDONTHEMAXIMUMEXECUTIONTIMEREQUIREDFOREACHLISTOPERATIONPERFORMEDHINTGARBAGECOLLECTIONCANBEARRANGEDTOWORKINPARALLELWITHTHELISTOPERATIONSIFAPPROPRIATECAREISTAKENWHENTHEAVAILLISTCONTAINSNODESWHEREISASPECIFIEDCONSTANTTOBECHOSENASDISCUSSEDBELOWINITIATEANOTHERCOROUTINETHATSHARESCOMPUTERTIMEWITHTHEMAINROUTINEANDDOESTHEFOLLOWINGAMARKSALLNODESONTHEAVAILLISTBMARKSALLOTHERNODESTHATAREACCESSIBLETOTHEPROGRAMCLINKSALLUNMARKEDNODESTOGETHERTOPREPAREANEWAVAILLISTFORUSEWHENTHECURRENTAVAILLISTISEMPTYANDDRESETSTHEMARKBITSINALLNODESONEMUSTCHOOSEANDTHERATIOOFTIMESHARINGSOTHATOPERATIONSABCANDDAREGUARANTEEDTOBECOMPLETEBEFORENODESARETAKENFROMTHEAVAILLISTYETTHEMAINROUTINEISRUNNINGSUFFICIENTLYFASTITISNECESSARYTOUSESOMECAREINSTEPBTOMAKESURETHATALLNODESACCESSIBLETOTHEPROGRAMAREINCLUDEDASTHEPROGRAMCONTINUESTORUNDETAILSAREOMITTEDHEREIFTHELISTFORMEDINCHASFEWERTHANNODESITMAYBENECESSARYTOSTOPEVENTUALLYBECAUSEMEMORYSPACEMIGHTBECOMEEXHAUSTEDFORFURTHERINFORMATIONSEEGUYLSTEELEJRCACMPWADLERCACMEWDIJKSTRALLAMPORTAJMARTINCSSCHOLTENANDEFMSTEFFENSCACMHGBAKERJRCACMTREESLISTCAPITALLISTSTRUCTURESMARKINGALGORITHMSGARBAGECOLLECTIONTREESWENOWTURNTREESTOASTUDYOFTREESTHEMOSTIMPORTANTNONLINEARSTRUCTURESTHATARISEINCOMPUTERALGORITHMSGENERALLYSPEAKINGTREESTRUCTUREMEANSABRANCHINGRELATIONSHIPBETWEENNODESMUCHLIKETHATFOUNDINTHETREESOFNATURELETUSDEFINEATREEFORMALLYASAFINITESETOFONEORMORENODESTREEDEFINEDSUCHTHATATHEREISONESPECIALLYDESIGNATEDNODECALLEDTHEROOTOFTHETREEROOTANDBTHEREMAININGNODESEXCLUDINGTHEROOTAREPARTITIONEDINTODISJOINTSETSANDEACHOFTHESESETSINTURNISATREETHETREESARECALLEDTHESUBTREESOFTHEROOTTHEDEFINITIONJUSTGIVENISRECURSIVERECURSIVEDEFINITIONCIRCULARDEFINITIONWEHAVEDEFINEDATREEINTERMSOFTREESOFCOURSETHEREISNOPROBLEMOFCIRCULARITYINVOLVEDHERESINCETREESWITHONENODEMUSTCONSISTOFONLYTHEROOTANDTREESWITHNODESAREDEFINEDINTERMSOFTREESWITHFEWERTHANNODESHENCETHECONCEPTOFATREEWITHTWONODESTHREENODESORULTIMATELYANYNUMBEROFNODESISDETERMINEDBYTHEDEFINITIONGIVENTHEREARENONRECURSIVEWAYSTODEFINETREESFOREXAMPLESEEEXERCISESANDANDSECTIONBUTARECURSIVEDEFINITIONSEEMSMOSTAPPROPRIATESINCERECURSIONISANINNATECHARACTERISTICOFTREESTRUCTURESTHERECURSIVECHARACTEROFTREESISPRESENTALSOINNATURESINCEBUDSONYOUNGTREESEVENTUALLYGROWINTOSUBTREESWITHBUDSOFTHEIROWNANDSOONEXERCISEILLUSTRATESHOWTOGIVERIGOROUSPROOFSOFIMPORTANTFACTSABOUTTREESBASEDONARECURSIVEDEFINITIONSUCHASTHEONEABOVEBYUSINGINDUCTIONONTHENUMBEROFNODESINATREEITFOLLOWSFROMOURDEFINITIONTHATEVERYNODEOFATREEISTHEROOTOFSOMESUBTREECONTAINEDINTHEWHOLETREETHENUMBEROFSUBTREESOFANODEISCALLEDTHEDEGREEOFTHATNODEANODEOFDEGREEZEROISCALLEDATERMINALNODEORSOMETIMESALEAFANONTERMINALNODEISOFTENCALLEDABRANCHNODETHELEVELOFANODEWITHRESPECTTOISDEFINEDRECURSIVELYTHELEVELOFROOTISZEROANDTHELEVELOFANYOTHERNODEISONEHIGHERTHANTHATNODESLEVELWITHRESPECTTOTHESUBTREEOFROOTCONTAININGITTHESECONCEPTSAREILLUSTRATEDINFIGFIGWHICHSHOWSATREEWITHSEVENNODESTHEROOTISANDITHASTHETWOSUBTREESANDTHETREEHASNODEASITSROOTNODEISONLEVELWITHRESPECTTOTHEWHOLETREEANDITHASTHREESUBTREESANDTHEREFOREHASDEGREETHETERMINALNODESINFIGFIGAREANDISTHEONLYNODEWITHDEGREEISTHEONLYNODEWITHLEVELFIGFIGINFIGATREEFIGANOTHERTREEIFTHERELATIVEORDEROFTHESUBTREESINBOFTHEDEFINITIONISIMPORTANTWESAYTHATTHETREEISANORDEREDTREEORDEREDTREETREESCOMPARISONOFTYPESWHENINANORDEREDTREEITMAKESSENSETOCALLTHESECONDSUBTREEOFTHEROOTETCORDEREDTREESAREALSOCALLEDPLANETREESBYSOMEAUTHORSSINCETHEMANNEROFEMBEDDINGTHETREEINAPLANEISRELEVANTIFWEDONOTCARETOREGARDTWOTREESASDIFFERENTWHENTHEYDIFFERONLYINTHERESPECTIVEORDERINGOFSUBTREESOFNODESTHETREEISORIENTEDTREESAIDTOBEORIENTEDSINCEONLYTHERELATIVEORIENTATIONOFTHENODESNOTTHEIRORDERISBEINGCONSIDEREDTHEVERYNATUREOFCOMPUTERREPRESENTATIONDEFINESANIMPLICITORDERINGFORANYTREESOINMOSTCASESORDEREDTREESAREOFGREATESTINTERESTTOUSWEWILLTHEREFORETACITLYASSUMETHATALLTREESWEDISCUSSAREORDEREDUNLESSEXPLICITLYSTATEDOTHERWISEACCORDINGLYTHETREESOFFIGSFIGANDFIGWILLGENERALLYBECONSIDEREDTOBEDIFFERENTALTHOUGHTHEYWOULDBETHESAMEASORIENTEDTREESORIENTEDTREEORDEREDTREETREESCOMPARISONOFTYPESAFORESTISASETUSUALLYANORDEREDSETOFZEROORMOREDISJOINTTREESANOTHERWAYTOPHRASEPARTBOFTHEDEFINITIONOFTREEWOULDBETOSAYTHATTHENODESOFATREEEXCLUDINGTHEROOTFORMAFORESTTHEREISVERYLITTLEDISTINCTIONBETWEENABSTRACTFORESTSANDTREESIFWEDELETETHEROOTOFATREEWEHAVEAFORESTCONVERSELYIFWEADDJUSTONENODETOANYFORESTANDREGARDTHETREESOFTHEFORESTASSUBTREESOFTHENEWNODEWEGETATREETHEREFORETHEWORDSTREEANDFORESTAREOFTENUSEDALMOSTINTERCHANGEABLYDURINGINFORMALDISCUSSIONSABOUTDATASTRUCTURESFIGHOWSHALLWEDRAWATREETREESCANBEDRAWNINMANYWAYSBESIDESTHEDIAGRAMOFDIAGRAMSOFTREESFIGFIGTHREEOFTHEPRINCIPALALTERNATIVESARESHOWNINFIGFIGDEPENDINGONWHERETHEROOTISPLACEDITISNOTAFRIVOLOUSJOKETOWORRYABOUTHOWTREESTRUCTURESAREDRAWNINDIAGRAMSSINCETHEREAREMANYOCCASIONSINWHICHWEWANTTOSAYTHATONENODEISABOVEORHIGHERTHANANOTHERNODEORTOREFERTOTHERIGHTMOSTELEMENTETCCERTAINALGORITHMSFORDEALINGWITHTREESTRUCTURESHAVEBECOMEKNOWNASTOPDOWNMETHODSASOPPOSEDTOBOTTOMUPSUCHTERMINOLOGYLEADSTOCONFUSIONUNLESSWEADHERETOAUNIFORMCONVENTIONFORDRAWINGTREESTOFIGAFIGFAMILYTREESAPEDIGREEBLINEALCHARTREFERENCESBURKESPEERAGEALMANACHDEGOTHAGENEALOGISCHESHANDBUCHDESADELSFURSTLICHEHAUSERGENESISBITMAYSEEMTHATTHEFORMOFFIGFIGWOULDBEPREFERABLESIMPLYBECAUSETHATISHOWTREESGROWINNATUREINTHEABSENCEOFANYCOMPELLINGREASONTOADOPTANYOFTHEOTHERTHREEFORMSWEMIGHTASWELLADOPTNATURESTIMEHONOREDTRADITIONWITHREALTREESINMINDTHEAUTHORCONSISTENTLYFOLLOWEDAROOTATTHEBOTTOMCONVENTIONASTHEPRESENTSETOFBOOKSWASFIRSTBEINGPREPAREDBUTAFTERTWOYEARSOFTRIALITWASFOUNDTOBEAMISTAKEOBSERVATIONSOFTHECOMPUTERLITERATUREANDNUMEROUSINFORMALDISCUSSIONSWITHCOMPUTERSCIENTISTSABOUTAWIDEVARIETYOFALGORITHMSSHOWEDTHATTREESWEREDRAWNWITHTHEROOTATTHETOPINMORETHANPERCENTOFTHECASESEXAMINEDTHEREISANOVERWHELMINGTENDENCYTOMAKEHANDDRAWNCHARTSGROWDOWNWARDSINSTEADOFUPWARDSANDTHISISEASYTOUNDERSTANDINVIEWOFTHEWAYWEWRITEEVENTHEWORDSUBTREEASOPPOSEDTOSUPERTREETENDSTOCONNOTEADOWNWARDRELATIONSHIPFROMTHESECONSIDERATIONSWECONCLUDETHATFIGFIGISUPSIDEDOWNHENCEFORTHWEWILLALMOSTALWAYSDRAWTREESASINFIGFIGBWITHTHEROOTATTHETOPANDLEAVESATTHEBOTTOMCORRESPONDINGTOTHISORIENTATIONWESHOULDPERHAPSCALLTHEROOTNODETHEAPEXOFTHETREEANDSPEAKOFNODESATSHALLOWANDDEEPLEVELSFAMILYTREESFIGPEDIGREEFIGLINEALCHARTFIGNOAHFIGWINDSORFIGBURKEFIGCHRISTIANIXFIGCHARLESIIIFIGITISNECESSARYTOHAVEGOODDESCRIPTIVETERMINOLOGYFORTALKINGABOUTTREESINSTEADOFMAKINGSOMEWHATAMBIGUOUSREFERENCESTOABOVEANDBELOWWEGENERALLYUSEGENEALOGICALWORDSTAKENFROMTHETERMINOLOGYOFFAMILYTREESFIGUREFIGSHOWSTWOCOMMONTYPESOFFAMILYTREESTHETWOTYPESAREQUITEDIFFERENTAPEDIGREESHOWSTHEANCESTORSOFAGIVENINDIVIDUALWHILEALINEALCHARTSHOWSTHEDESCENDANTSIFCROSSBREEDINGOCCURSAPEDIGREEISNOTREALLYATREEBECAUSEDIFFERENTBRANCHESOFATREEASWEHAVEDEFINEDITCANNEVERBEJOINEDTOGETHERTOCOMPENSATEFORTHISDISCREPANCYFIGFIGAMENTIONSQUEENVICTORIAANDPRINCEALBERTTWICEINTHESIXTHGENERATIONKINGCHRISTIANIXANDQUEENLOUISEACTUALLYAPPEARINBOTHTHEFIFTHANDSIXTHGENERATIONSAPEDIGREECANBEREGARDEDASATRUETREEIFEACHOFITSNODESREPRESENTSAPERSONINTHEROLEOFMOTHERORFATHEROFSOANDSONOTSIMPLYAPERSONASANINDIVIDUALBYSTANDARDTERMINOLOGYFORTREESTRUCTURESISTAKENFROMTHESECONDFORMOFFAMILYTREETHELINEALCHARTEACHROOTISSAIDTOBETHEPARENTFAMILYTREEPEDIGREELINEALCHARTCHRISTIANIXOFTHEROOTSOFITSSUBTREESANDTHELATTERARESAIDTOBESIBLINGSTHEYARECHILDRENOFTHEIRPARENTTHEROOTOFTHEENTIRETREEHASNOPARENTFOREXAMPLEINFIGFIGHASTHREECHILDRENANDISTHEPARENTOFANDARESIBLINGSEXTENSIONOFTHISTERMINOLOGYFOREXAMPLEISTHEGREATGRANDPARENTOFISANAUNTORUNCLEOFANDAREFIRSTCOUSINSISCLEARLYPOSSIBLESOMEAUTHORSUSETHEMASCULINEDESIGNATIONSFATHERSONBROTHERINSTEADOFPARENTCHILDSIBLINGOTHERSUSEMOTHERDAUGHTERSISTERINANYCASEANODEHASATMOSTONEPARENTORPROGENITORWEUSETHEWORDSANCESTORANDDESCENDANTTODENOTEARELATIONSHIPTHATMAYSPANSEVERALLEVELSOFTHETREETHEDESCENDANTSOFINFIGFIGAREANDTHEANCESTORSOFAREANDSOMETIMESESPECIALLYWHENTALKINGABOUTNEARESTCOMMONANCESTORSWECONSIDERANODETOBEANANCESTOROFITSELFANDADESCENDANTOFITSELFTHEINCLUSIVEANCESTORSOFAREANDWHILEITSPROPERANCESTORSAREJUSTANDFIGFIGCONVENTIONALTREEDIAGRAMTHEPEDIGREEINFIGUREFIGAISANEXAMPLEOFABINARYTREEBINARYTREESWHICHISANOTHERIMPORTANTTYPEOFTREESTRUCTURETHEREADERHASUNDOUBTEDLYSEENBINARYTREESINCONNECTIONWITHTENNISTOURNAMENTSOROTHERSPORTINGEVENTSINABINARYTREEEACHNODEHASATMOSTTWOSUBTREESANDWHENONLYONESUBTREEISPRESENTWEDISTINGUISHBETWEENTHELEFTANDRIGHTSUBTREEMOREFORMALLYBINARYTREEDEFINITIONRECURSIVEDEFINITIONLETUSDEFINEABINARYTREEASAFINITESETOFNODESTHATEITHERISEMPTYORCONSISTSOFAROOTANDTHEELEMENTSOFTWODISJOINTBINARYTREESCALLEDTHELEFTANDRIGHTSUBTREESOFTHEROOTLEFTSUBTREERIGHTSUBTREEDIAGRAMSOFBINARYTREESTHISRECURSIVEDEFINITIONOFBINARYTREESHOULDBESTUDIEDCAREFULLYNOTICETHATABINARYTREEISNOTASPECIALCASEOFATREEITISANOTHERCONCEPTENTIRELYALTHOUGHWEWILLSEEMANYRELATIONSBETWEENTHETWOCONCEPTSFOREXAMPLETHEBINARYTREESAREDISTINCTTHEROOTHASANEMPTYRIGHTSUBTREEINONECASEANDANONEMPTYRIGHTSUBTREEINTHEOTHERALTHOUGHASTREESTHESEDIAGRAMSWOULDREPRESENTIDENTICALSTRUCTURESABINARYTREECANBEEMPTYATREECANNOTTHEREFOREWEWILLALWAYSBECAREFULTOUSETHEWORDBINARYTODISTINGUISHBETWEENBINARYTREESANDORDINARYTREESSOMEAUTHORSDEFINEBINARYTREESINASLIGHTLYDIFFERENTMANNERSEEEXERCISETREESTRUCTURECANBEREPRESENTEDGRAPHICALLYINSEVERALOTHERWAYSBEARINGNORESEMBLANCETOACTUALTREESFIGURETREESTRUCTSHOWSTHREEDIAGRAMSTHATREFLECTTHESTRUCTUREOFFIGFIGFIGURETREESTRUCTAESSENTIALLYREPRESENTSFIGFIGASANORIENTEDTREEORIENTEDTREETHISDIAGRAMISASPECIALCASEOFTHEGENERALIDEAOFNESTEDSETSNAMELYACOLLECTIONOFSETSINWHICHANYPAIROFSETSISEITHERDISJOINTORONECONTAINSTHEOTHERSEEEXERCISEPARTBOFTHEFIGURESHOWSNESTEDSETSINALINEMUCHASPARTASHOWSTHEMINAPLANEINPARTBTHEORDERINGOFTHETREEISALSOINDICATEDPARTBMAYALSOBEREGARDEDASANOUTLINEOFANALGEBRAICFORMULAINVOLVINGNESTEDPARENTHESESPARENTHESESPARTCSHOWSSTILLANOTHERCOMMONWAYTOREPRESENTTREESTRUCTUREUSINGINDENTATIONTHENUMBEROFDIFFERENTREPRESENTATIONMETHODSINITSELFISAMPLEEVIDENCEFORTHEIMPORTANCEOFTREESTRUCTURESINEVERYDAYLIFEASWELLASINCOMPUTERPROGRAMMINGANYHIERARCHICALCLASSIFICATIONSCHEMELEADSTOATREESTRUCTUREBINARYTREESTREESTRUCTANALGEBRAICFORMULADEFINESANIMPLICITTREESTRUCTURETHATISOFTENCONVEYEDBYOTHERMEANSINSTEADOFORINADDITIONTOTHEUSEOFPARENTHESESPARENTHESESFOREXAMPLEFIGUREALGTREESHOWSATREECORRESPONDINGTOTHEARITHMETICEXPRESSIONSTANDARDMATHEMATICALCONVENTIONSACCORDINGTOWHICHMULTIPLICATIONANDDIVISIONTAKEPRECEDENCEOVERADDITIONANDSUBTRACTIONALLOWUSTOUSEASIMPLIFIEDFORMLIKEINSTEADOFTHEFULLYPARENTHESIZEDFORMTHISCONNECTIONBETWEENFORMULASANDTREESISVERYIMPORTANTINAPPLICATIONSALGTREENOTICETHATTHEINDENTEDLISTINFIGTREESTRUCTCLOOKSVERYMUCHLIKETHETABLEOFCONTENTSINABOOKINDEEDTHISBOOKITSELFHASATREESTRUCTURETHETREESTRUCTUREOFCHAPTERISSHOWNINFIGCHAPTREEHEREWENOTICEASIGNIFICANTIDEATHEMETHODUSEDTONUMBERSECTIONSINTHISBOOKISANOTHERWAYTOSPECIFYTREESTRUCTURESUCHAMETHODISOFTENCALLEDDEWEYDECIMALNOTATIONFORTREESBYANALOGYWITHTHESIMILARCLASSIFICATIONSCHEMEOFTHISNAMEUSEDINLIBRARIESTHEDEWEYDECIMALNOTATIONFORTHETREEOFFIGFIGISDEWEYDECIMALNOTATIONAPPLIESTOANYFORESTTHEROOTOFTHETHTREEINTHEFORESTISGIVENNUMBERANDIFISTHENUMBEROFANYNODEOFDEGREEITSCHILDRENARENUMBEREDTHEDEWEYDECIMALNOTATIONSATISFIESMANYSIMPLEMATHEMATICALPROPERTIESANDITISAUSEFULTOOLINTHEANALYSISOFTREESONEEXAMPLEOFTHISISTHENATURALSEQUENTIALORDERINGITGIVESTOTHENODESOFANARBITRARYTREEANALOGOUSTOTHEORDERINGOFSECTIONSWITHINTHISBOOKSECTIONPRECEDESSECTIONANDFOLLOWSSECTIONTOCHAPTREEFIGTHESTRUCTUREOFCHAPTERTHEREISANINTIMATERELATIONBETWEENDEWEYDECIMALNOTATIONANDTHENOTATIONFORINDEXEDVARIABLESTHATWEHAVEALREADYBEENUSINGEXTENSIVELYINDICESIFISAFORESTOFTREESWEMAYLETDENOTETHESUBTREESOFTHEFIRSTTREESOTHATSTANDSFORTHESUBTREESOFTHESECONDSUBTREEOFANDSTANDSFORTHEFIRSTSUBFORESTOFTHELATTERANDSOONNODEINDEWEYDECIMALNOTATIONISTHEPARENTOFTHISNOTATIONISANEXTENSIONOFORDINARYINDEXNOTATIONBECAUSETHEADMISSIBLERANGEOFEACHINDEXDEPENDSONTHEVALUESINTHEPRECEDINGINDEXPOSITIONSTHUSINPARTICULARWESEETHATANYRECTANGULARARRAYCANBETHOUGHTOFASASPECIALCASEOFATREEORFORESTSTRUCTUREFOREXAMPLEHEREARETWOREPRESENTATIONSOFAMATRIXDIAGRAMSOFTREESARRAYREPRESENTEDASATREEITISIMPORTANTTOOBSERVEHOWEVERTHATTHISTREESTRUCTUREDOESNOTFAITHFULLYREFLECTALLOFTHEMATRIXSTRUCTURETHEROWRELATIONSHIPSAPPEAREXPLICITLYINTHETREEBUTTHECOLUMNRELATIONSHIPSDONOTAFORESTCANINTURNBEREGARDEDASASPECIALCASEOFWHATISCOMMONLYCALLEDALISTSTRUCTURELISTCAPITALLISTSTRUCTURETHEWORDLISTISBEINGUSEDHEREINAVERYTECHNICALSENSEANDTODISTINGUISHTHETECHNICALUSEOFTHEWORDWEWILLALWAYSCAPITALIZEITLISTALISTISDEFINEDRECURSIVELYASAFINITESEQUENCEOFZEROORMOREATOMSORLISTSHEREATOMISANUNDEFINEDRECURSIVEDEFINITIONDIAGRAMSOFLISTSLISTCAPITALLISTNOTATIONSCONCEPTREFERRINGTOELEMENTSFROMANYUNIVERSEOFOBJECTSTHATMIGHTBEDESIREDSOLONGASITISPOSSIBLETODISTINGUISHANATOMFROMALISTBYMEANSOFANOBVIOUSNOTATIONALCONVENTIONINVOLVINGCOMMASANDPARENTHESESWECANDISTINGUISHBETWEENATOMSANDLISTSANDWECANCONVENIENTLYDISPLAYTHEORDERINGWITHINALISTASANEXAMPLECONSIDERWHICHISALISTWITHFIVEELEMENTSFIRSTTHEATOMTHENTHELISTTHENTHEEMPTYLISTTHENTHEATOMANDFINALLYTHELISTTHELATTERLISTCONSISTSOFTHELISTWHICHCONSISTSOFTHELISTWHICHCONSISTSOFTHEATOMTHEFOLLOWINGTREESTRUCTURECORRESPONDSTOTHEASTERISKSINTHISDIAGRAMINDICATETHEDEFINITIONANDAPPEARANCEOFALISTASOPPOSEDTOTHEAPPEARANCEOFANATOMINDEXNOTATIONAPPLIESTOLISTSASITINDICESDOESTOFORESTSFOREXAMPLEANDNODATAISCARRIEDINTHENODESFORTHELISTSINOTHERTHANTHEFACTTHATTHEYARELISTSBUTITISPOSSIBLETOLABELTHENONATOMICELEMENTSOFLISTSWITHINFORMATIONASWEHAVEDONEFORTREESANDOTHERSTRUCTURESTHUSWOULDCORRESPONDTOATREETHATWECANDRAWASFOLLOWSTHEBIGDIFFERENCEBETWEENLISTSANDTREESISTHATLISTSMAYOVERLAPTHATISSUBLISTSNEEDNOTBEDISJOINTANDTHEYMAYEVENBERECURSIVEMAYRECURSIVELISTSCONTAINTHEMSELVESTHELISTCORRESPONDSTONOTREESTRUCTURENORDOESTHELISTINTHESEEXAMPLESCAPITALLETTERSREFERTOLISTSLOWERCASELETTERSTOLABELSANDATOMSWEMIGHTDIAGRAMANDASFOLLOWSUSINGANASTERISKTODENOTEEACHPLACEWHEREALISTISDEFINEDLISTSTUFFACTUALLYLISTSARENOTSOCOMPLICATEDASTHEEXAMPLESABOVEMIGHTINDICATETHEYAREINESSENCEARATHERSIMPLEGENERALIZATIONOFTHELINEARLISTSTHATWEHAVECONSIDEREDINSECTIONWITHTHEADDITIONALPROVISOTHATTHEELEMENTSOFLINEARLISTSMAYBELINKVARIABLESTHATPOINTTOOTHERLINEARLISTSANDPOSSIBLYTOTHEMSELVESLISTCAPITALLISTNOTATIONSSUMMARYFOURCLOSELYRELATEDKINDSOFINFORMATIONSTRUCTURESTREESFORESTSBINARYTREESANDLISTSARISEFROMMANYSOURCESANDTHEYARETHEREFOREIMPORTANTINCOMPUTERALGORITHMSWEHAVESEENVARIOUSWAYSTODIAGRAMTHESESTRUCTURESANDWEHAVECONSIDEREDSOMETERMINOLOGYANDNOTATIONSTHATAREUSEFULINTALKINGABOUTTHEMTHEFOLLOWINGSECTIONSDEVELOPTHESEIDEASINGREATERDETAILEXERCISESHOWMANYDIFFERENTTREESARETHEREWITHTHREENODESANDTHEREARETHREEWAYSTOCHOOSETHEROOTONCETHEROOTHASBEENCHOSENSAYTHEREARETHREEWAYSTOPARTITIONTHEOTHERNODESINTOSUBTREESINTHELATTERCASETHEREARETWOWAYSTOMAKEINTOATREEDEPENDINGONWHICHISTHEROOTHENCEWEGETTHEFOURTREESSHOWNWHENISTHEROOTANDINALLTHISPROBLEMISSOLVEDFORANYNUMBEROFNODESINEXERCISEENUMLABELEDORDEREDTREESTOAHOWMANYDIFFERENTORIENTEDTREESARETHEREWITHTHREENODESANDTHEFIRSTTWOTREESINTHEANSWERTOEXERCISEARETHESAMEASORIENTEDTREESSOWEGETONLYDIFFERENTPOSSIBILITIESINTHISCASEFORTHEGENERALSOLUTIONSEESECTIONWHERETHEFORMULAISPROVEDMPROVERIGOROUSLYFROMTHEDEFINITIONSTHATFOREVERYNODEINATREETHEREISAUNIQUEPATHUPTOTHEROOTNAMELYAUNIQUESEQUENCEOFNODESSUCHTHATISTHEROOTOFTHETREEANDISTHEPARENTOFFORTHISPROOFWILLBETYPICALOFTHEPROOFSOFNEARLYALLTHEELEMENTARYFACTSABOUTTREESTRUCTURESHINTUSEINDUCTIONONTHENUMBEROFNODESINTHETREEPARTTOSHOWTHEREISATLEASTONESUCHSEQUENCELETTHETREEHAVENODESTHERESULTISCLEARWHENSINCEMUSTBETHEROOTIFTHEDEFINITIONIMPLIESTHEREISAROOTANDSUBTREESEITHERORISAMEMBEROFAUNIQUEINTHELATTERCASETHEREISBYINDUCTIONAPATHWHEREISTHEROOTOFANDSINCEISTHEPARENTOFWEHAVEAPATHPARTTOSHOWTHEREISATMOSTONESUCHSEQUENCEWEWILLPROVEBYINDUCTIONTHATIFISNOTTHEROOTOFTHETREEHASAUNIQUEPARENTSOTHATDETERMINESDETERMINESETCIFTHETREEHASONENODETHEREISNOTHINGTOPROVEOTHERWISEISINAUNIQUEEITHERISTHEROOTOFINWHICHCASEHASAUNIQUEPARENTBYDEFINITIONORISNOTTHEROOTOFINWHICHCASEHASAUNIQUEPARENTINBYINDUCTIONANDNONODEOUTSIDEOFCANBESPARENTTRUEORFALSEINACONVENTIONALTREEDIAGRAMROOTATTHETOPIFNODEHASAHIGHERLEVELNUMBERTHANNODETHENNODEAPPEARSLOWERINTHEDIAGRAMTHANNODETRUEUNFORTUNATELYIFNODEHASTHREESIBLINGSANDISTHEPARENTOFWHATISTHEDEGREEOFDEFINETHESTATEMENTISANTHCOUSINOFTIMESREMOVEDASAMEANINGFULRELATIONBETWEENNODESANDOFATREEBYANALOGYWITHFAMILYTREESIFANDSEEADICTIONARYFORTHEMEANINGOFTHESETERMSINREGARDTOFAMILYTREESPARENTLETDENOTEANDLETSOTHATISSPARENTANDISSGRANDPARENTWHENISSGREATGRANDPARENTTHEREQUESTEDCOUSINSHIPCONDITIONISTHATBUTWHENTHISRELATIONISNOTSYMMETRICALWITHRESPECTTOANDALTHOUGHPEOPLEUSUALLYTREATITASSYMMETRICALINEVERYDAYCONVERSATIONEXTENDTHEDEFINITIONGIVENINTHEPREVIOUSEXERCISETOALLANDTOALLINTEGERSINSUCHAWAYTHATFORANYTWONODESANDOFATREETHEREAREUNIQUEANDSUCHTHATISANTHCOUSINOFTIMESREMOVEDUSETHEUNSYMMETRICCONDITIONDEFINEDINEXERCISEWITHTHECONVENTIONTHATIFEITHERORORBOTHISTOSHOWTHATTHISRELATIONISALWAYSVALIDFORSOMEUNIQUEANDCONSIDERTHEDEWEYDECIMALNOTATIONFORANDNAMELYANDWHEREANDIFTHEDEWEYNUMBERSOFANYPAIROFNODESCANBEWRITTENINTHISFORMANDCLEARLYWEMUSTTAKEANDWHATBINARYTREEISNOTATREENOBINARYTREEISREALLYATREETHECONCEPTSAREQUITESEPARATEEVENTHOUGHTHEDIAGRAMOFANONEMPTYBINARYTREEMAYLOOKTREELIKEINTHETWOBINARYTREESOFWHICHNODEISTHEROOTORISTHEROOTSINCEWECONVENTIONALLYPUTTHEROOTATTHETOPMACOLLECTIONOFNONEMPTYSETSISSAIDTOBENESTEDNESTEDSETSIFGIVENANYPAIROFTHESETSEITHERORORANDAREDISJOINTINOTHERWORDSISEITHERORFIGURETREESTRUCTAINDICATESTHATANYTREECORRESPONDSTOACOLLECTIONOFNESTEDSETSCONVERSELYDOESEVERYSUCHCOLLECTIONCORRESPONDTOATREEANYFINITECOLLECTIONOFNESTEDSETSCORRESPONDSTOAFORESTASDEFINEDINTHETEXTASFOLLOWSLETBETHESETSOFTHECOLLECTIONTHATARECONTAINEDINNOOTHERFORFIXEDTHESUBCOLLECTIONOFALLSETSCONTAINEDINISNESTEDHENCEWEMAYASSUMETHATTHISSUBCOLLECTIONCORRESPONDSTOATREEUNORDEREDWITHASTHEROOTEXTENDTHEDEFINITIONOFTREETOINFINITETREESBYCONSIDERINGCOLLECTIONSOFNESTEDSETSASINEXERCISECANTHECONCEPTSOFLEVELDEGREEPARENTANDCHILDBEDEFINEDFOREACHNODEOFANINFINITETREEGIVEEXAMPLESOFNESTEDSETSOFREALNUMBERSTHATCORRESPONDTOATREEINWHICHAEVERYNODEHASUNCOUNTABLEDEGREEANDTHEREAREINFINITELYMANYLEVELSBTHEREARENODESWITHUNCOUNTABLELEVELCEVERYNODEHASDEGREEATLEASTANDTHEREAREUNCOUNTABLYMANYLEVELSINANESTEDCOLLECTIONLETIFTHEREISSOMESUCHTHATTHISRELATIONISOBVIOUSLYREFLEXIVEANDSYMMETRICANDITISINFACTANEQUIVALENCERELATIONSINCEANDIMPLIESTHATTHEREAREANDINWITHANDSINCEEITHERORHENCENOWIFISANESTEDCOLLECTIONDEFINEANORIENTEDFORESTCORRESPONDINGTOBYTHERULEISANANCESTOROFANDISADESCENDANTOFTHATISAPROPERANCESTORORDESCENDANTIFANDONLYIFEACHEQUIVALENCECLASSOFCORRESPONDSTOANORIENTEDTREEWHICHISANORIENTEDFORESTWITHFORALLWETHEREBYHAVEGENERALIZEDTHEDEFINITIONSOFFORESTANDTREETHATWEREGIVENFORFINITECOLLECTIONSINTHESETERMSWEMAYDEFINETHELEVELOFASTHECARDINALNUMBEROFANCESTORSSIMILARLYTHEDEGREEOFISTHECARDINALNUMBEROFEQUIVALENCECLASSESINTHENESTEDCOLLECTIONDESCENDANTSWESAYISTHEPARENTOFANDISACHILDOFIFISANANCESTOROFBUTTHEREISNOSUCHTHATITISPOSSIBLEFORTOHAVEDESCENDANTSBUTNOCHILDRENANCESTORSBUTNOPARENTTOGETORDEREDTREESANDFORESTSORDERTHEEQUIVALENCECLASSESMENTIONEDABOVEINSOMEADHOCMANNERFOREXAMPLEBYEMBEDDINGTHERELATIONINTOLINEARORDERASINEXERCISELINORDEXAMPLEALETINDECIMALNOTATIONWHEREINDECIMALNOTATIONANDIFTHECOLLECTIONISNESTEDANDGIVESATREEWITHINFINITELYMANYLEVELSANDUNCOUNTABLEDEGREEFOREACHNODEEXAMPLEBCITISCONVENIENTTODEFINETHISSETINTHEPLANEINSTEADOFINTERMSOFREALNUMBERSANDTHISISSUFFICIENTSINCETHEREISAONETOONECORRESPONDENCEBETWEENTHEPLANEANDTHEREALNUMBERSLETANDLETTHECOLLECTIONISEASILYSEENTOBENESTEDTHECHILDRENOFAREANDANDHASTHECHILDPLUSTHESUBTREESOEACHNODEHASDEGREEANDEACHNODEHASUNCOUNTABLYMANYANCESTORSOFTHEFORMTHISCONSTRUCTIONISDUETORBIGELOWNOTEIFWETAKEASUITABLEWELLORDERINGOFTHEREALNUMBERSANDIFWEDEFINEWECANIMPROVETHISCONSTRUCTIONSLIGHTLYOBTAININGANESTEDCOLLECTIONWHEREEACHNODEHASUNCOUNTABLELEVELDEGREEANDTWOCHILDRENMUNDERWHATCONDITIONSDOESAPARTIALLYORDEREDSETCORRESPONDTOANUNORDEREDTREEORFORESTPARTIALLYORDEREDSETSAREDEFINEDINSECTIONWEIMPOSEANADDITIONALCONDITIONONTHEPARTIALORDERINGANALOGOUSPARTIALORDERINGTOTHATOFNESTEDSETSTOENSURETHATITCORRESPONDSTOAFORESTIFANDTHENEITHERORINOTHERWORDSTHEELEMENTSLARGERTHANANYGIVENELEMENTARELINEARLYORDEREDTOMAKEATREEALSOASSERTTHEEXISTENCEOFALARGESTELEMENTSUCHTHATFORALLAPROOFTHATTHISGIVESANUNORDEREDTREEASDEFINEDINTHETEXTWHENTHENUMBEROFNODESISFINITERUNSLIKETHEPROOFFORNESTEDSETSINEXERCISESUPPOSETHATNODEISNUMBEREDINTHEDEWEYDECIMALSYSTEMWHATARETHEDEWEYNUMBERSOFTHENODESINTHEPATHFROMTOTHEROOTSEEEXERCISEROOTOFTREEDEWEYPROPMLETBEANYNONEMPTYSETOFELEMENTSHAVINGTHEFORMWHEREANDAREPOSITIVEINTEGERSSHOWTHATSPECIFIESATREEWHENITISFINITEANDSATISFIESTHEFOLLOWINGCONDITIONIFISINTHESETTHENSOISIFORIFTHISCONDITIONISCLEARLYSATISFIEDINTHEDEWEYDECIMALNOTATIONFORATREETHEREFOREITISANOTHERWAYTOCHARACTERIZETREESTRUCTURESINCEISNONEMPTYITCONTAINSANELEMENTWHEREISASSMALLASPOSSIBLEIFWEALSOTAKEASSMALLASPOSSIBLEINANDWEIMMEDIATELYSEETHATMUSTBEINOTHERWORDSMUSTCONTAINTHEELEMENTLETBETHEROOTALLOTHERELEMENTSHAVEANDSOTHEREMAININGELEMENTSOFCANBEPARTITIONEDINTOSETSFORSOMEIFANDISNONEMPTYWEDEDUCEBYREASONINGASABOVETHATISINFOREACHHENCEEACHISNONEMPTYTHENITISEASYTOSEETHATTHESETSSATISFYTHESAMECONDITIONASDIDBYINDUCTIONEACHOFTHEFORMSATREEBINDEWEYINVENTANOTATIONFORTHENODESOFBINARYTREESANALOGOUSTOTHEDEWEYDECIMALNOTATIONFORNODESOFTREESDEWEYBINARYLETTHEROOTBEANDLETTHEROOTSOFTHELEFTANDRIGHTSUBTREESOFBEANDRESPECTIVELYWHENSUCHROOTSEXISTFOREXAMPLEKINGCHRISTIANIXAPPEARSINTWOPOSITIONSOFFIGFIGANAMELYANDFORBREVITYWEMAYDROPTHEDECIMALPOINTSANDWRITEMERELYANDNOTETHISNOTATIONISDUETOFRANCISGALTONSEENATURALINHERITANCEMACMILLANFORPEDIGREESITISMOREMNEMONICTOUSEANDINPLACEOFANDANDTODROPTHEINITIALTHUSCHRISTIANIXISCHARLESIIISHISMOTHERSFATHERSFATHERSMOTHERSFATHERTHEANDCONVENTIONISINTERESTINGFORANOTHERREASONITGIVESUSANIMPORTANTCORRESPONDENCEBETWEENNODESINABINARYTREEANDPOSITIVEINTEGERSEXPRESSEDINTHEBINARYSYSTEMNAMELYMEMORYADDRESSESINACOMPUTERDRAWTREESANALOGOUSTOFIGALGTREECORRESPONDINGTOTHEARITHMETICEXPRESSIONSIFSTANDSFORFIGFIGREGARDEDASAFORESTWHATNODEISPARENTPARENTPARENTPARENTINLISTWHATISWHATISISNONSENSESINCEISANEMPTYLISTDRAWALISTDIAGRAMANALOGOUSTOFORTHELISTWHATISINTHISLISTWHATISDIAGRAMSOFLISTSEMATREESMDEFINEATREEASATREEINWHICHEACHNODEHASEXACTLYZEROORTWOCHILDRENFORMALLYATREECONSISTSOFASINGLENODECALLEDITSROOTPLUSORDISJOINTTREESSHOWTHATEVERYTREEHASANODDNUMBEROFNODESANDGIVEAONETOONECORRESPONDENCEBETWEENBINARYTREESWITHNODESANDORDEREDTREESWITHNODESINTUITIVELYTHECORRESPONDENCEBETWEENTREESANDBINARYTREESISOBTAINEDBYREMOVINGALLTERMINALNODESOFTHETREESEETHEIMPORTANTCONSTRUCTIONINSECTIONLETATREEWITHONENODECORRESPONDTOTHEEMPTYBINARYTREEANDLETATREEWITHMORETHANONENODECONSISTINGTHEREFOREOFAROOTANDTREESANDCORRESPONDTOTHEBINARYTREEWITHROOTLEFTSUBTREEANDRIGHTSUBTREEWHEREANDCORRESPONDRESPECTIVELYTOANDHOWMANYLEAVESMIFATREEHASNODESOFDEGREENODESOFDEGREEANDNODESOFDEGREEHOWMANYTERMINALNODESDOESITHAVEPROOFTHENUMBEROFNODESINTHETREEISANDTHISALSOEQUALSNUMBEROFCHILDRENINTHETREESTANDARDEUROPEANPAPERSIZESAAAAARERECTANGLESWHOSESIDESAREINTHERATIOTOANDWHOSEAREASARESQUAREMETERSTHEREFOREIFWECUTASHEETOFAPAPERINHALFWEGETTWOSHEETSOFAPAPERUSETHISPRINCIPLETODESIGNAGRAPHICREPRESENTATIONOFBINARYTREESANDILLUSTRATEYOURIDEABYDRAWINGTHEREPRESENTATIONOFEXAMPLEBINARYTREEBELOWDIAGRAMSOFBINARYTREESTHEBASICIDEAISTOPROCEEDRECURSIVELYWITHTHEREPRESENTATIONOFANONEMPTYBINARYTREEDEFINEDTOBETHEREPRESENTATIONOFITSROOTPLUSHALFSIZEANDROTATEDREPRESENTATIONSOFITSLEFTANDRIGHTSUBTREESTHUSANARBITRARILYLARGEBINARYTREECANBEREPRESENTEDONASINGLESHEETOFPAPERIFONEHASASUFFICIENTLYPOWERFULMAGNIFYINGGLASSMANYVARIATIONSONTHISTHEMEAREPOSSIBLEFOREXAMPLEONEIDEAISTOREPRESENTTHEROOTBYALINEFROMTHECENTEROFAGIVENLANDSCAPEORIENTEDPAGETOTHETOPEDGEANDTOROTATETHELEFTSUBTREEREPRESENTATIONBYCLOCKWISEINTHELEFTHALFPAGETHERIGHTSUBTREEREPRESENTATIONBYCOUNTERCLOCKWISEINTHERIGHTHALFPAGEEACHNODEISTHENREPRESENTEDBYALINEWHENTHISMETHODISAPPLIEDTOACOMPLETEBINARYTREEDIAGRAMSOFBINARYTREESHAVINGNODESONLEVELSITYIELDSSOCALLEDHTREESWHICHARETHEMOSTEFFICIENTLAYOUTSOFSUCHBINARYTREESONAVLSICHIPSEERPBRENTANDHTKUNGINFPROCLETTERSANOTHERIDEAISTOREPRESENTANEMPTYBINARYTREEBYSOMESORTOFBOXANDTOROTATETHESUBTREEREPRESENTATIONSOFNONEMPTYBINARYTREESSOTHATLEFTSUBSUBTREESAREALTERNATELYTOTHELEFTOFORBELOWTHECORRESPONDINGRIGHTSUBSUBTREESDEPENDINGONWHETHERTHEDEPTHOFRECURSIONISEVENORODDTHENTHEBOXESCORRESPONDTOEXTERNALNODESINANEXTENDEDBINARYTREESEESECTIONTHISREPRESENTATIONWHICHISSTRONGLYRELATEDTOTHEDTREESANDQUADTREESDISCUSSEDINSECTIONISESPECIALLYAPPROPRIATEWHENTHEEXTERNALNODESCARRYINFORMATIONBUTTHEINTERNALNODESDONOTMULTILINKEDSTRUCTURESNOWTHATWEMULTILINKEDSTRUCTURESREPRESENTATIONCHOOSINGSTRUCTUREHOWTOREPRESENTHAVEEXAMINEDLINEARLISTSANDTREESTRUCTURESINDETAILTHEPRINCIPLESOFREPRESENTINGSTRUCTURALINFORMATIONWITHINACOMPUTERSHOULDBEEVIDENTINTHISSECTIONWEWILLLOOKATANOTHERAPPLICATIONOFTHESETECHNIQUESTHISTIMEFORTHETYPICALCASEINWHICHTHESTRUCTURALINFORMATIONISSLIGHTLYMORECOMPLICATEDINHIGHERLEVELAPPLICATIONSSEVERALTYPESOFSTRUCTUREAREUSUALLYPRESENTSIMULTANEOUSLYAMULTILINKEDSTRUCTUREINVOLVESNODESWITHSEVERALLINKFIELDSINEACHNODENOTJUSTONEORTWOASINMOSTOFOURPREVIOUSEXAMPLESWEHAVEALREADYSEENSOMEEXAMPLESOFMULTIPLELINKAGESUCHASTHESIMULATEDELEVATORSYSTEMINSECTIONANDTHEMULTIVARIATEPOLYNOMIALSINSECTIONWESHALLSEETHATTHEPRESENCEOFMANYDIFFERENTKINDSOFLINKSPERNODEDOESNOTNECESSARILYMAKETHEACCOMPANYINGALGORITHMSANYMOREDIFFICULTTOWRITEORTOUNDERSTANDTHANTHEALGORITHMSALREADYSTUDIEDWEWILLALSODISCUSSTHEIMPORTANTQUESTIONHOWMUCHSTRUCTURALINFORMATIONOUGHTTOBEEXPLICITLYRECORDEDINMEMORYTHEPROBLEMWEWILLCONSIDERARISESINCONNECTIONWITHWRITINGACOMPILERPROGRAMFORTHETRANSLATIONOFANDRELATEDLANGUAGESAPROGRAMMERWHOCOBOLCOMPILERALGORITHMSQUALIFICATIONOFNAMESUSESMAYGIVEALPHABETICNAMESTOPROGRAMVARIABLESONSEVERALLEVELSFOREXAMPLETHEPROGRAMMIGHTREFERTOFILESOFDATAFORSALESANDPURCHASESHAVINGTHEFOLLOWINGSTRUCTURETHISCONFIGURATIONINDICATESTHATEACHITEMINSALESCONSISTSOFTWOPARTSTHEDATEANDTHETRANSACTIONTHEDATEISFURTHERDIVIDEDINTOTHREEPARTSANDTHETRANSACTIONLIKEWISEHASFIVESUBDIVISIONSSIMILARREMARKSAPPLYTOPURCHASESTHERELATIVEORDEROFTHESENAMESINDICATESTHEORDERINWHICHTHEQUANTITIESAPPEARINEXTERNALREPRESENTATIONSOFTHEFILEFOREXAMPLEMAGNETICTAPEORPRINTEDFORMSNOTICETHATINTHISEXAMPLEDAYANDMONTHAPPEARINOPPOSITEORDERINTHETWOFILESTHEPROGRAMMERALSOGIVESFURTHERINFORMATIONNOTSHOWNINTHISILLUSTRATIONTHATTELLSHOWMUCHSPACEEACHITEMOFINFORMATIONOCCUPIESANDINWHATFORMATITAPPEARSSUCHCONSIDERATIONSARENOTRELEVANTTOUSINTHISSECTIONSOTHEYWILLNOTBEMENTIONEDFURTHERAPROGRAMMERFIRSTDESCRIBESTHEFILELAYOUTANDTHEOTHERPROGRAMVARIABLESTHENSPECIFIESTHEALGORITHMSTHATMANIPULATETHOSEQUANTITIESTOREFERTOANINDIVIDUALVARIABLEINTHEEXAMPLEABOVEITWOULDNOTBESUFFICIENTMERELYTOGIVETHENAMEDAYSINCETHEREISNOWAYOFTELLINGIFTHEVARIABLECALLEDDAYISINTHESALESFILEORINTHEPURCHASESFILETHEREFOREAPROGRAMMERISGIVENTHEABILITYTOWRITEDAYOFSALESTOREFERTOTHEDAYPARTOFASALESITEMTHEPROGRAMMERCOULDALSOWRITEMORECOMPLETELYBUTINGENERALTHEREISNONEEDTOGIVEMOREQUALIFICATIONTHANNECESSARYTOAVOIDAMBIGUITYTHUSMAYBEABBREVIATEDTOSINCEONLYONEPARTOFTHEDATAHASBEENCALLEDSHIPPERTHESERULESOFMAYBESTATEDMOREPRECISELYASFOLLOWSAEACHNAMEISIMMEDIATELYPRECEDEDBYANASSOCIATEDPOSITIVEINTEGERCALLEDITSLEVELNUMBERANAMEEITHERREFERSTOANELEMENTARYITEMORITISTHENAMEOFAGROUPOFONEORMOREITEMSWHOSENAMESFOLLOWINTHELATTERCASEEACHITEMOFTHEGROUPMUSTHAVETHESAMELEVELNUMBERWHICHMUSTBEGREATERTHANTHELEVELNUMBEROFTHEGROUPNAMEFOREXAMPLEDATEANDTRANSACTIONABOVEHAVELEVELNUMBERWHICHISGREATERTHANTHELEVELNUMBEROFSALESBTOREFERTOANELEMENTARYITEMORGROUPOFITEMSNAMEDTHEGENERALFORMISWHEREANDWHEREFORISTHENAMEOFSOMEITEMCONTAINEDDIRECTLYORINDIRECTLYWITHINAGROUPNAMEDTHEREMUSTBEEXACTLYONEITEMSATISFYINGTHISCONDITIONCIFTHESAMENAMEAPPEARSINSEVERALPLACESTHEREMUSTBEAWAYTOREFERTOEACHUSEOFTHENAMEBYUSINGQUALIFICATIONASANEXAMPLEOFRULECTHEDATACONFIGURATIONWOULDNOTBEALLOWEDSINCETHEREISNOUNAMBIGUOUSWAYTOREFERTOTHESECONDAPPEARANCEOFCCSEEEXERCISEHASANOTHERFEATURETHATAFFECTSCOMPILERWRITINGANDTHEAPPLICATIONWEARECONSIDERINGNAMELYANOPTIONINTHELANGUAGETHATMAKESITPOSSIBLETOREFERTOMANYITEMSATONCEAPROGRAMMERMAYWRITEMOVECORRESPONDINGWHICHMOVESALLITEMSWITHCORRESPONDINGNAMESFROMDATAAREATODATAAREAFOREXAMPLETHESTATEMENTWOULDMEANTHATTHEVALUESOFMONTHDAYANDYEARFROMTHESALESFILEARETOBEMOVEDTOTHEVARIABLESMONTHDAYANDYEARINTHEPURCHASESFILETHERELATIVEORDEROFDAYANDMONTHISTHEREBYINTERCHANGEDTHEPROBLEMWEWILLINVESTIGATEINTHISSECTIONISTODESIGNTHREEALGORITHMSSUITABLEFORUSEINACOMPILERWHICHARETODOTHEFOLLOWINGTHINGSOPERATIONTOPROCESSADESCRIPTIONOFNAMESANDLEVELNUMBERSSUCHASPUTTINGTHERELEVANTINFORMATIONINTOTABLESWITHINTHECOMPILERFORUSEINOPERATIONSANDOPERATIONTODETERMINEIFAGIVENQUALIFIEDREFERENCEASINRULEBISVALIDANDWHENITISVALIDTOLOCATETHECORRESPONDINGDATAITEMOPERATIONTOFINDALLCORRESPONDINGPAIRSOFITEMSINDICATEDBYAGIVENCORRESPONDINGSTATEMENTWEWILLASSUMETHATOURCOMPILERALREADYHASASYMBOLTABLESUBROUTINETHATSYMBOLTABLEALGORITHMSWILLCONVERTANALPHABETICNAMEINTOALINKTHATPOINTSTOATABLEENTRYFORTHATNAMEMETHODSFORCONSTRUCTINGSYMBOLTABLEALGORITHMSAREDISCUSSEDINDETAILINCHAPTERINADDITIONTOTHESYMBOLTABLETHEREISALARGERTABLETHATCONTAINSONEENTRYFOREACHITEMOFDATAINTHESOURCEPROGRAMTHATISBEINGCOMPILEDWEWILLCALLTHISTHEDATATABLECLEARLYWECANNOTDESIGNANALGORITHMFOROPERATIONUNTILWEKNOWWHATKINDOFINFORMATIONISTOBESTOREDINTHEDATATABLEANDTHEFORMOFTHEDATATABLEDEPENDSONWHATINFORMATIONWENEEDINORDERTOPERFORMOPERATIONSANDTHUSWELOOKFIRSTATOPERATIONSANDINORDERTODETERMINETHEMEANINGOFTHEREFERENCEWESHOULDFIRSTLOOKUPTHENAMEINTHESYMBOLTABLETHEREOUGHTTOBEASERIESOFLINKSFROMTHESYMBOLTABLEENTRYTOALLDATATABLEENTRIESFORTHISNAMETHENFOREACHDATATABLEENTRYWEWILLWANTALINKTOTHEENTRYFORTHEGROUPITEMTHATCONTAINSITNOWIFTHEREISAFURTHERLINKFIELDFROMTHEDATATABLEITEMSBACKTOTHESYMBOLTABLEITISNOTHARDTOSEEHOWAREFERENCELIKECANBEPROCESSEDFURTHERMOREWEWILLWANTSOMESORTOFLINKSFROMTHEDATATABLEENTRIESFORGROUPITEMSTOTHEITEMSINTHEGROUPINORDERTOLOCATETHEPAIRSINDICATEDBYMOVECORRESPONDINGWEHAVETHEREBYFOUNDAPOTENTIALNEEDFORFIVELINKFIELDSINEACHDATATABLEENTRYPREVALINKTOTHEPREVIOUSENTRYWITHTHESAMENAMEIFANYPARENTALINKTOTHESMALLESTGROUPIFANYCONTAININGTHISITEMNAMEALINKTOTHESYMBOLTABLEENTRYFORTHISITEMCHILDALINKTOTHEFIRSTSUBITEMOFAGROUPSIBALINKTOTHENEXTSUBITEMINTHEGROUPCONTAININGTHISITEMITISCLEARTHATDATASTRUCTURESLIKETHOSEFORSALESPARENTLINKSIBLINGLINKCHILDLINKTRIPLYLINKEDTREEANDPURCHASESABOVEAREESSENTIALLYTREESANDTHEPARENTCHILDANDSIBLINKSTHATAPPEARHEREAREFAMILIARFROMOURPREVIOUSSTUDYTHECONVENTIONALBINARYTREEREPRESENTATIONOFATREECONSISTSOFTHECHILDANDSIBLINKSADDINGTHEPARENTLINKGIVESWHATWEHAVECALLEDATRIPLYLINKEDTREETHEFIVELINKSABOVECONSISTOFTHESETHREETREELINKSTOGETHERWITHPREVANDNAMEWHICHSUPERIMPOSEFURTHERINFORMATIONONTHETREESTRUCTUREPERHAPSNOTALLFIVEOFTHESELINKSWILLTURNOUTTOBENECESSARYORSUFFICIENTBUTWEWILLTRYFIRSTTODESIGNOURALGORITHMSUNDERTHETENTATIVEASSUMPTIONTHATDATATABLEENTRIESWILLINVOLVETHESEFIVELINKFIELDSPLUSFURTHERINFORMATIONIRRELEVANTTOOURPROBLEMSASANEXAMPLEOFTHEMULTIPLELINKINGUSEDCONSIDERTHETWODATASTRUCTURESTHEYWOULDBEREPRESENTEDASSHOWNINWITHLINKSINDICATEDSYMBOLICALLYTHELINKFIELDOFEACHSYMBOLTABLEENTRYPOINTSTOTHEMOSTRECENTLYENCOUNTEREDDATATABLEENTRYFORTHESYMBOLICNAMEINQUESTIONTHEFIRSTALGORITHMWEREQUIREISONETHATBUILDSTHEDATATABLEINSUCHAFORMNOTETHEFLEXIBILITYINCHOICEOFLEVELNUMBERSTHATISALLOWEDBYTHERULESTHELEFTSTRUCTUREINISCOMPLETELYEQUIVALENTTOBECAUSELEVELNUMBERSDONOTHAVETOBESEQUENTIALSOMESEQUENCESOFLEVELNUMBERSAREILLEGALHOWEVERFOREXAMPLEIFTHELEVELNUMBEROFDINWERECHANGEDTOINEITHERPLACEWEWOULDHAVEAMEANINGLESSDATACONFIGURATIONVIOLATINGTHERULETHATALLITEMSOFAGROUPMUSTHAVETHESAMENUMBERTHEFOLLOWINGALGORITHMTHEREFOREMAKESSURETHATSRULEAHASNOTBEENBROKENALGORITHMABUILDDATATABLETHISALGORITHMISGIVENASEQUENCEOFCONSTRUCTIONOFTREESPAIRSWHERELISAPOSITIVEINTEGERLEVELNUMBERANDPPOINTSTOASYMBOLTABLEENTRYCORRESPONDINGTODATASTRUCTURESSUCHASABOVETHEALGORITHMBUILDSADATATABLEASINTHEEXAMPLEABOVEWHENPPOINTSTOASYMBOLTABLEENTRYTHATHASNOTAPPEAREDBEFORELINKPWILLEQUALTHISALGORITHMUSESANAUXILIARYSTACKTHATISTREATEDSTACKASUSUALUSINGEITHERSEQUENTIALMEMORYALLOCATIONASINSECTIONORLINKEDALLOCATIONASINSECTIONAINITIALIZESETTHESTACKCONTENTSTOTHESINGLEENTRYTHESTACKENTRIESTHROUGHOUTTHISALGORITHMAREPAIRSWHERELISANINTEGERANDPISAPOINTERASTHISALGORITHMPROCEEDSTHESTACKCONTAINSTHELEVELNUMBERSANDPOINTERSTOTHEMOSTRECENTDATAENTRIESONALLLEVELSHIGHERINTHETREETHANTHECURRENTLEVELFOREXAMPLEJUSTBEFOREENCOUNTERINGTHEPAIRFINTHEEXAMPLEABOVETHESTACKWOULDCONTAINFROMBOTTOMTOTOPANEXTITEMLETBETHENEXTDATAITEMFROMTHEINPUTIFTHEINPUTISEXHAUSTEDHOWEVERTHEALGORITHMTERMINATESSETTHATISLETQBETHELOCATIONOFANEWNODEINWHICHWECANPUTTHENEXTDATATABLEENTRYASETNAMELINKSSETTHISPROPERLYSETSTWOOFTHEFIVELINKSINNODEQWENOWWANTTOSETPARENTCHILDANDSIBAPPROPRIATELYACOMPARELEVELSLETTHETOPENTRYOFTHESTACKBEIFSETORIFSETWHEREFIRSTISAVARIABLETHATWILLPOINTTOTHEFIRSTDATATABLEENTRYANDGOTOAAREMOVETOPLEVELIFREMOVETHETOPSTACKENTRYLETBETHENEWENTRYTHATHASJUSTCOMETOTHETOPOFTHESTACKANDREPEATSTEPAIFSIGNALANERRORMIXEDNUMBERSHAVEOCCURREDONTHESAMELEVELOTHERWISENAMELYWHENSETREMOVETHETOPSTACKENTRYANDLETBETHEPAIRTHATHASJUSTCOMETOTHETOPOFTHESTACKASETFAMILYLINKSSETAADDTOSTACKPLACEONTOPOFTHESTACKANDRETURNTOSTEPATHEINTRODUCTIONOFANAUXILIARYSTACKASEXPLAINEDINSTEPAMAKESTHISALGORITHMSOTRANSPARENTTHATITNEEDSNOFURTHEREXPLANATIONSTACKCONSTRUCTIONOFTREESTHENEXTPROBLEMISTOLOCATETHEDATATABLEENTRYCORRESPONDINGTOAREFERENCEAGOODCOMPILERWILLALSOCHECKTOENSURETHATSUCHAREFERENCEISUNAMBIGUOUSINTHISCASEASUITABLEALGORITHMSUGGESTSITSELFIMMEDIATELYALLWENEEDTODOISTORUNTHROUGHTHELISTOFDATATABLEENTRIESFORTHENAMEANDMAKESURETHATEXACTLYONEOFTHESEENTRIESMATCHESTHESTATEDQUALIFICATIONALGORITHMBCHECKAQUALIFIEDREFERENCECORRESPONDINGTOREFERENCEASYMBOLTABLESUBROUTINEWILLFINDPOINTERSTOTHESYMBOLTABLEENTRIESFORRESPECTIVELYTHEPURPOSEOFTHISALGORITHMISTOEXAMINEANDEITHERTODETERMINETHATREFERENCEISINERRORORTOSETVARIABLEQTOTHEADDRESSOFTHEDATATABLEENTRYFORTHEITEMREFERREDTOBYBINITIALIZESETPBDONEIFTHEALGORITHMTERMINATESATTHISPOINTQWILLEQUALIFDOESNOTCORRESPONDTOANYDATATABLEENTRYBUTIFSETANDSISAPOINTERVARIABLETHATWILLRUNFROMPUPTHETREETHROUGHPARENTLINKSISANINTEGERVARIABLETHATGOESFROMTOINPRACTICETHEPOINTERSWOULDOFTENBEKEPTINALINKEDLISTANDINSTEADOFWEWOULDSUBSTITUTEAPOINTERVARIABLETHATTRAVERSESTHISLISTSEEEXERCISEBMATCHCOMPLETEIFGOONTOBOTHERWISEWEHAVEFOUNDAMATCHINGDATATABLEENTRYIFTHISISTHESECONDENTRYFOUNDSOANERRORCONDITIONISSIGNALEDSETANDGOTOBBINCREASESETBMOVEUPTREESETIFWEHAVEFAILEDTOFINDAMATCHSETANDGOTOBBMATCHIFGOTOBOTHERWISEGOTOBNOTETHATTHECHILDANDSIBLINKSARENOTNEEDEDBYTHISALGORITHMFIGFIGALGORITHMFORCHECKINGAREFERENCETHETHIRDANDFINALALGORITHMTHATWENEEDCONCERNSMOVECORRESPONDINGMOVECORRESPONDINGBEFOREWEDESIGNSUCHANALGORITHMWEMUSTHAVEAPRECISEDEFINITIONOFWHATISREQUIREDTHESTATEMENTWHEREANDAREREFERENCESSUCHASTODATAITEMSISANABBREVIATIONFORTHESETOFALLSTATEMENTSWHERETHEREEXISTSANINTEGERANDNAMESSUCHTHATANDEITHERORISANELEMENTARYITEMNOTAGROUPITEMFURTHERMOREWEREQUIRETHATTHEFIRSTLEVELSOFSHOWCOMPLETEQUALIFICATIONSNAMELYTHATBETHEPARENTOFFORANDTHATANDAREPARENTSOFANDMUSTBEEXACTLYLEVELSFARTHERDOWNINTHETREETHANANDAREWITHRESPECTTOOUREXAMPLEISTHEREFOREANABBREVIATIONFORTHESTATEMENTSTHEALGORITHMTORECOGNIZEALLCORRESPONDINGPAIRSISQUITEINTERESTINGALTHOUGHNOTDIFFICULTWEMOVETHROUGHTHETREEWHOSEROOTISINPREORDERSIMULTANEOUSLYLOOKINGINTHETREEFORMATCHINGNAMESANDSKIPPINGOVERSUBTREESINWHICHNOCORRESPONDINGELEMENTSCANPOSSIBLYOCCURTHENAMESOFAREDISCOVEREDINTHEOPPOSITEORDERCCORRESPALGALGORITHMCFINDCORRESPONDINGPAIRSGIVENPANDQWHICHPOINTTODATATABLEENTRIESFORANDRESPECTIVELYTHISALGORITHMSUCCESSIVELYFINDSALLPAIRSOFPOINTERSTOITEMSSATISFYINGTHECONSTRAINTSMENTIONEDABOVECINITIALIZESETINTHEREMAINDEROFTHISALGORITHMTHEPOINTERVARIABLESPANDQWILLWALKTHROUGHTREESHAVINGTHERESPECTIVEROOTSANDCELEMENTARYIFOROUTPUTASONEOFTHEDESIREDPAIRSANDGOTOCOTHERWISESETINTHISSTEPPANDQPOINTTOITEMSANDSATISFYINGANDWEWISHTOMOVETOIFANDONLYIFEITHERORORBOTHISANELEMENTARYITEMCMATCHNAMENOWPANDQPOINTTODATAITEMSTHATHAVERESPECTIVECOMPLETEQUALIFICATIONSOFTHEFORMSANDTHEOBJECTISTOSEEIFWECANMAKEBYEXAMININGALLTHENAMESOFTHEGROUPOFOFOFIFGOTOCAMATCHHASBEENFOUNDOTHERWISEIFSETANDREPEATSTEPCIFNOMATCHINGNAMEISPRESENTINTHEGROUPANDWECONTINUEONTOSTEPCCMOVEONIFSETANDANDGOBACKTOCIFSETANDCDONEIFTHEALGORITHMTERMINATESOTHERWISEGOTOCAFLOWCHARTFORTHISALGORITHMISSHOWNINFIGFIGAPROOFTHATTHISALGORITHMISVALIDCANREADILYBECONSTRUCTEDBYINDUCTIONONTHESIZEOFTHETREESINVOLVEDSEEEXERCISEMOVECORRESPONDINGFIGFIGALGORITHMFORMOVECORRESPONDINGATTHISPOINTITISWORTHWHILETOSTUDYTHEWAYSINWHICHTHEFIVELINKFIELDSPREVPARENTNAMECHILDANDSIBAREUSEDBYALGORITHMSBANDCTHESTRIKINGFEATUREISTHATTHESEFIVELINKSCONSTITUTEACOMPLETESETINTHESENSETHATALGORITHMSBANDCDOVIRTUALLYTHEMINIMUMAMOUNTOFWORKASTHEYMOVETHROUGHTHEDATATABLEWHENEVERTHEYNEEDTOREFERTOANOTHERDATATABLEENTRYITSADDRESSISIMMEDIATELYAVAILABLETHEREISNONEEDTOCONDUCTASEARCHITWOULDBEDIFFICULTTOIMAGINEHOWALGORITHMSBANDCCOULDPOSSIBLYBEMADEANYFASTERIFANYADDITIONALLINKINFORMATIONWEREPRESENTINTHETABLESEEEXERCISEHOWEVEREACHLINKFIELDMAYBEVIEWEDASACLUETOTHEPROGRAMPLANTEDTHERELINKFIELDPURPOSEINORDERTOMAKETHEALGORITHMSRUNFASTEROFCOURSETHEALGORITHMTHATBUILDSTHETABLESALGORITHMARUNSCORRESPONDINGLYSLOWERSINCEITHASMORELINKSTOFILLINBUTTABLEBUILDINGISDONEONLYONCEITISCLEARONTHEOTHERHANDTHATTHEDATATABLECONSTRUCTEDABOVECONTAINSMUCHREDUNDANTINFORMATIONLETUSCONSIDERWHATWOULDHAPPENIFWEWERETODELETECERTAINOFTHELINKFIELDSTHEPREVLINKWHILENOTUSEDINALGORITHMCISEXTREMELYIMPORTANTFORALGORITHMBANDITSEEMSTOBEANESSENTIALPARTOFANYCOMPILERUNLESSLENGTHYSEARCHESARETOBECARRIEDOUTAFIELDTHATLINKSTOGETHERALLITEMSOFTHESAMENAMETHEREFORESEEMSESSENTIALFOREFFICIENCYWECOULDPERHAPSMODIFYTHESTRATEGYSLIGHTLYANDADOPTCIRCULARLINKINGINSTEADOFTERMINATINGEACHLISTWITHBUTTHEREISNOREASONTODOTHISUNLESSOTHERLINKFIELDSARECHANGEDORELIMINATEDTHEPARENTLINKISUSEDINBOTHALGORITHMSBANDCALTHOUGHITSUSEINALGORITHMCCOULDBEAVOIDEDIFWEUSEDANAUXILIARYSTACKINTHATALGORITHMORIFWEAUGMENTEDSIBSOTHATTHREADLINKSAREINCLUDEDASINSECTIONSOWESEETHATTHEPARENTLINKHASBEENUSEDINANESSENTIALWAYONLYINALGORITHMBIFTHESIBLINKWERETHREADEDSOTHATTHEITEMSTHATNOWHAVEWOULDHAVEINSTEADITWOULDBEPOSSIBLETOLOCATETHEPARENTOFANYDATAITEMBYFOLLOWINGTHESIBLINKSTHEADDEDTHREADLINKSCOULDBEDISTINGUISHEDEITHERBYHAVINGANEWTAGFIELDINEACHNODETHATSAYSWHETHERTHESIBLINKISATHREADORBYTHECONDITIONIFTHEDATATABLEENTRIESAREKEPTCONSECUTIVELYINMEMORYINORDEROFAPPEARANCETHISWOULDMEANASHORTSEARCHWOULDBENECESSARYINSTEPBANDTHEALGORITHMWOULDBECORRESPONDINGLYSLOWERTHENAMELINKISUSEDBYTHEALGORITHMSONLYINSTEPSBANDCINBOTHCASESWECOULDMAKETHETESTSANDINOTHERWAYSIFTHENAMELINKWERENOTPRESENTSEEEXERCISEBUTTHISWOULDSIGNIFICANTLYSLOWDOWNTHEINNERLOOPSOFBOTHALGORITHMSBANDCHEREAGAINWESEEATRADEOFFBETWEENTHESPACEFORALINKANDTHESPEEDOFTHEALGORITHMSTHESPEEDOFALGORITHMCISNOTESPECIALLYSIGNIFICANTINCOMPILERSWHENTYPICALUSESOFMOVECORRESPONDINGARECONSIDEREDBUTALGORITHMBSHOULDBEFASTEXPERIENCEINDICATESTHATOTHERIMPORTANTUSESAREFOUNDFORTHENAMELINKWITHINACOMPILERESPECIALLYINPRINTINGDIAGNOSTICINFORMATIONALGORITHMABUILDSTHEDATATABLESTEPBYSTEPANDITNEVERHASOCCASIONTORETURNANODETOTHEPOOLOFAVAILABLESTORAGESOWEUSUALLYFINDTHATDATATABLEENTRIESTAKECONSECUTIVEMEMORYLOCATIONSINTHEORDEROFAPPEARANCEOFTHEDATAITEMSINTHESOURCEPROGRAMTHUSINOUREXAMPLELOCATIONSABWOULDFOLLOWEACHOTHERTHISSEQUENTIALNATUREOFTHEDATATABLELEADSTOCERTAINSIMPLIFICATIONSFOREXAMPLETHECHILDLINKOFEACHNODEISEITHERORITPOINTSTOTHENODEIMMEDIATELYFOLLOWINGSOCHILDCANBEREDUCEDTOABITFIELDALTERNATIVELYCHILDCOULDBEREMOVEDINFAVOROFATESTIFPCWHEREISTHENODESIZEINTHEDATATABLETREESSEQUENTIALLINKEDVSSEQUENTIALTHUSTHEFIVELINKFIELDSARENOTALLESSENTIALALTHOUGHTHEYARELINKFIELDPURPOSEHELPFULFROMTHESTANDPOINTOFSPEEDINALGORITHMSBANDCTHISSITUATIONISFAIRLYTYPICALOFMOSTMULTILINKEDSTRUCTURESITISINTERESTINGTONOTETHATATLEASTHALFADOZENPEOPLEWRITINGCOMPILERSINTHEEARLYSARRIVEDINDEPENDENTLYATTHISSAMEWAYTOMAINTAINADATATABLEUSINGFIVELINKSORFOUROFTHEFIVEUSUALLYWITHTHECHILDLINKMISSINGTHEFIRSTPUBLICATIONOFSUCHATECHNIQUEWASBYHWLAWSONJRACMNATIONALCONFERENCEDIGESTSYRACUSENYBUTINANINGENIOUSTECHNIQUEFORACHIEVINGTHEEFFECTSOFALGORITHMSBANDCUSINGONLYTWOLINKFIELDSANDSEQUENTIALSTORAGEOFTHEDATATABLEWITHOUTAVERYGREATDECREASEINSPEEDWASTRIPLYLINKEDTREECHILDLINKSIBLINGLINKPARENTLINKSTRUCTUREHOWTOREPRESENTINTRODUCEDBYDAVIDDAHMSEEEXERCISESTHROUGHEXERCISESCONSIDERINGDATACONFIGURATIONSASTREESTRUCTURESARETHEDATAITEMSLISTEDBYAPROGRAMMERINPREORDERPOSTORDERORNEITHEROFTHOSEORDERSPREORDERCOMMENTABOUTTHERUNNINGTIMEOFALGORITHMAITISESSENTIALLYPROPORTIONALTOTHENUMBEROFDATATABLEENTRIESCREATEDTHEPLILANGUAGEACCEPTSDATASTRUCTURESLIKETHOSEINPLIEXCEPTTHATANYSEQUENCEOFLEVELNUMBERSISPOSSIBLEFOREXAMPLETHESEQUENCEINGENERALRULEAISMODIFIEDTOREADTHEITEMSOFAGROUPMUSTHAVEASEQUENCEOFNONINCREASINGLEVELNUMBERSALLOFWHICHAREGREATERTHANTHELEVELNUMBEROFTHEGROUPNAMEWHATMODIFICATIONSTOALGORITHMAWOULDCHANGEITFROMTHECONVENTIONTOTHISPLICONVENTIONCHANGESTEPATOAAREMOVETOPLEVELREMOVETHETOPSTACKENTRYANDIFTHENEWLEVELNUMBERATTHETOPOFTHESTACKISLETBETHENEWENTRYATTHETOPOFTHESTACKANDREPEATTHISSTEPOTHERWISESETANDTHENLETBETHENEWENTRYATTHETOPOFTHESTACKALGORITHMADOESNOTDETECTTHEERRORIFAPROGRAMMERVIOLATESRULECSTATEDINTHETEXTHOWSHOULDALGORITHMABEMODIFIEDSOTHATONLYDATASTRUCTURESSATISFYINGRULECWILLBEACCEPTEDSOLUTIONBYDAVIDSWISERULECISVIOLATEDIFANDONLYIFTHEREISADATAITEMWHOSECOMPLETEQUALIFICATIONOFOFISALSOAREFERENCETOSOMEOTHERDATAITEMSINCETHEPARENTOFOFMUSTALSOSATISFYRULECWEMAYASSUMETHATTHISOTHERDATAITEMISADESCENDANTOFTHESAMEPARENTTHEREFOREALGORITHMAWOULDBEEXTENDEDTOCHECKASEACHNEWDATAITEMISADDEDTOTHEDATATABLEWHETHERITSPARENTISANANCESTOROFANYOTHERITEMOFTHESAMENAMEORIFTHEPARENTOFANYOTHERITEMOFTHESAMENAMEISINTHESTACKWHENTHEPARENTISITISEVERYBODYSANCESTORANDALWAYSONTHESTACKONTHEOTHERHANDIFWELEAVEALGORITHMAASITSTANDSTHEPROGRAMMERWILLGETANERRORMESSAGEFROMALGORITHMBWHENTRYINGTOUSEANILLEGALITEMONLYMOVECORRESPONDINGCANMAKEUSEOFSUCHITEMSWITHOUTERRORINPRACTICEALGORITHMBMAYBEGIVENALINKEDLISTOFSYMBOLTABLEREFERENCESASINPUTINSTEADOFWHATWECALLEDLETTBEAPOINTERVARIABLESUCHTHATSHOWHOWTOMODIFYALGORITHMBSOTHATITUSESSUCHALINKEDLISTASINPUTMAKETHESECHANGESSTEPREPLACEBYBPBBBBTHEPLILANGUAGEACCEPTSDATASTRUCTURESMUCHLIKETHOSEINBUTDOESNOTMAKETHERESTRICTIONOFRULECINSTEADWEHAVETHERULETHATAQUALIFIEDREFERENCEISUNAMBIGUOUSIFITSHOWSCOMPLETEQUALIFICATIONTHATISIFISTHEPARENTOFFORANDIFHASNOPARENTRULECISNOWWEAKENEDTOTHESIMPLECONDITIONTHATNOTWOITEMSOFAGROUPMAYHAVETHESAMENAMETHESECONDCCINWOULDBEREFERREDTOASCCOFAAWITHOUTAMBIGUITYTHETHREEDATAITEMSWOULDBEREFERREDTOASAAOFAAOFAOFAWITHRESPECTTOTHEPLICONVENTIONJUSTSTATEDNOTEACTUALLYTHEWORDOFISREPLACEDBYAPERIODINPLIANDTHEORDERISREVERSEDCCOFAAISREALLYWRITTENAACCINPLIBUTTHISISNOTIMPORTANTFORTHEPURPOSESOFTHEPRESENTEXERCISESHOWHOWTOMODIFYALGORITHMBSOTHATITFOLLOWSTHEPLICONVENTIONASIMPLEMODIFICATIONOFALGORITHMBMAKESITSEARCHONLYFORCOMPLETEREFERENCESIFANDINSTEPBORIFINSTEPBSETANDGOTOBTHEIDEAISTORUNTHROUGHTHISMODIFIEDALGORITHMBFIRSTTHENIFQISSTILLTOPERFORMTHEUNMODIFIEDALGORITHMGIVENTHEDATASTRUCTURESINWHATDOESTHESTATEMENTMOVECORRESPONDINGSALESTOPURCHASESMEANMOVEMONTHOFDATEOFSALESTOMONTHOFDATEOFPURCHASESMOVEDAYOFDATEOFSALESTODAYOFDATEOFPURCHASESMOVEYEAROFDATEOFSALESTOYEAROFDATEOFPURCHASESMOVEITEMOFTRANSACTIONOFSALESTOITEMOFTRANSACTIONOFPURCHASESMOVEQUANTITYOFTRANSACTIONOFSALESTOQUANTITYOFTRANSACTIONOFPURCHASESMOVEPRICEOFTRANSACTIONOFSALESTOPRICEOFTRANSACTIONOFPURCHASESMOVETAXOFTRANSACTIONOFSALESTOTAXOFTRANSACTIONOFPURCHASESUNDERWHATCIRCUMSTANCESISMOVECORRESPONDINGTOEXACTLYTHESAMEASMOVETOACCORDINGTOTHEDEFINITIONINTHETEXTMOVECORRESPONDINGIFANDONLYIFORISANELEMENTARYITEMITMAYBEOFINTERESTTONOTETHATTHEAUTHORFAILEDTOHANDLETHISCASEPROPERLYINHISFIRSTDRAFTOFALGORITHMCANDITACTUALLYMADETHEALGORITHMMORECOMPLICATEDMPROVETHATALGORITHMCISCORRECTPROOFOFALGORITHMSMOVECORRESPONDINGTOIFNEITHERNORISELEMENTARYISEQUIVALENTTOTHESETOFSTATEMENTSMOVECORRESPONDINGOFTOOFTAKENOVERALLNAMESCOMMONTOGROUPSANDTHISISAMOREELEGANTWAYTOSTATETHEDEFINITIONTHANTHEMORETRADITIONALANDMORECUMBERSOMEDEFINITIONOFMOVECORRESPONDINGGIVENINTHETEXTWEMAYVERIFYTHATALGORITHMCSATISFIESTHISDEFINITIONUSINGANINDUCTIVEPROOFTHATSTEPSCTHROUGHCWILLULTIMATELYTERMINATEWITHANDFURTHERDETAILSOFTHEPROOFAREFILLEDINASWEHAVEDONEMANYTIMESBEFOREINATREEINDUCTIONSEEFOREXAMPLETHEPROOFOFALGORITHMBININORDERAHOWCOULDTHETESTINSTEPBBEPERFORMEDIFTHEREWERENONAMELINKINTHEDATATABLENODESBHOWCOULDTHETESTINSTEPCBEPERFORMEDIFTHEREWERENONAMELINKINTHEDATATABLEENTRIESASSUMETHATALLOTHERLINKSAREPRESENTASINTHETEXTASETPKTHENREPEATEDLYSETZEROORMORETIMESUNTILEITHERORBSETANDTHENSETZEROORMORETIMESUNTILDOASIMILAROPERATIONWITHVARIABLESQANDQTHENTESTIFALTERNATIVELYIFTHEDATATABLEENTRIESAREORDEREDSOTHATFORALLPAFASTERTESTCANBEMADEINANOBVIOUSWAYDEPENDINGONWHETHERORNOTFOLLOWINGTHEPREVLINKSOFTHELARGERTOSEEIFTHESMALLERISENCOUNTEREDWHATADDITIONALLINKSORCHANGESINTHESTRATEGYOFTHEALGORITHMSOFTHETEXTCOULDMAKEALGORITHMBORALGORITHMCFASTERAMINUSCULEIMPROVEMENTINTHESPEEDOFSTEPCWOULDBEACHIEVEDBYADDINGANEWLINKFIELDMORESIGNIFICANTLYWECOULDMODIFYTHECHILDANDSIBLINKSSOTHATTHISWOULDSPEEDUPTHESEARCHINSTEPCCONSIDERABLYBECAUSEITWOULDREQUIREONLYONEPASSOVEREACHFAMILYTOFINDTHEMATCHINGMEMBERSTHISCHANGEWOULDTHEREFOREREMOVETHEONLYSEARCHPRESENTINALGORITHMCALGORITHMSAANDCAREREADILYMODIFIEDFORTHISINTERPRETATIONANDTHEREADERMAYFINDITANINTERESTINGEXERCISEHOWEVERIFWECONSIDERTHERELATIVEFREQUENCYOFMOVECORRESPONDINGSTATEMENTSANDTHEUSUALSIZEOFFAMILYGROUPSTHERESULTINGSPEEDUPWILLNOTBETERRIBLYSIGNIFICANTINTHETRANSLATIONOFACTUALPROGRAMSDAHMSCOPESDMDAHMCONSIDERREPRESENTINGTHEDATATABLEINSEQUENTIALLOCATIONSWITHJUSTTWOLINKSFOREACHITEMSCOPEWEHAVEIFANDONLYIFNODEPREPRESENTSANELEMENTARYITEMFOREXAMPLETHEDATATABLEOFWOULDBEREPLACEDBYCOMPAREWITHSCOPESOFSECTIONNOTICETHATNODEPISPARTOFTHETREEBELOWNODEQIFANDONLYIFDESIGNANALGORITHMTHATPERFORMSTHEFUNCTIONOFALGORITHMBWHENTHEDATATABLEHASTHISFORMATLEAVESTEPSBBBUNCHANGEDCHANGETHEOTHERSTEPSTHUSBBSETPKBIFSETANDGOTOBWEHAVENTFOUNDAMATCHIFSETANDGOTOBOTHERWISESETANDREPEATSTEPBTHISALGORITHMDOESNOTADAPTTOTHEPLICONVENTIONOFEXERCISEGIVEANALGORITHMTOSUBSTITUTEFORALGORITHMAWHENTHEDATATABLEISTOHAVETHEFORMATSHOWNINEXERCISEUSETHESAMEALGORITHMMINUSTHEOPERATIONSTHATSETNAMEPARENTCHILDANDSIBWHENEVERREMOVINGTHETOPSTACKENTRYINSTEPASETWHENTHEINPUTISEXHAUSTEDINSTEPASIMPLYSETANDCONTINUETHENTERMINATETHEALGORITHMIFINSTEPAGIVEANALGORITHMTOSUBSTITUTEFORALGORITHMCWHENTHEDATATABLEHASTHEFORMATSHOWNINEXERCISETHEFOLLOWINGALGORITHMUSINGANAUXILIARYSTACKHASSTEPSNUMBEREDTOSHOWADIRECTCORRESPONDENCEWITHTHETEXTSALGORITHMCCSETANDSETTHESTACKCONTENTSEMPTYCIFOROUTPUTASONEOFTHEDESIREDPAIRSANDGOTOCOTHERWISEPUTONTHESTACKANDSETCDETERMINEIFPANDQPOINTTOENTRIESWITHTHESAMENAMESEEEXERCISEBIFSOGOTOCIFNOTLETBETHEENTRYATTHETOPOFTHESTACKIFSETANDREPEATSTEPCCLETBETHEENTRYATTHETOPOFTHESTACKIFSETANDGOBACKTOCIFSETANDREMOVETHETOPENTRYOFTHESTACKCIFTHESTACKISEMPTYTHEALGORITHMTERMINATESOTHERWISEGOTOCDAVIDSWISEREFORMULATEALGORITHMASOTHATNOEXTRASTORAGEISUSEDFORTHESTACKHINTTHESIBFIELDSOFALLNODESPOINTEDTOBYTHESTACKAREINTHEPRESENTFORMULATIONQUALIFICATIONOFNAMESCOMPILERALGORITHMSCOBOLMULTILINKEDSTRUCTURESPLIDYNAMICSTORAGEALLOCATIONWEHAVESEENHOWTHEUSEOFLINKSIMPLIESTHATDATASTRUCTURESNEEDDYNAMICSTORAGEALLOCATIONNOTBESEQUENTIALLYLOCATEDINMEMORYANUMBEROFTABLESMAYINDEPENDENTLYGROWANDSHRINKINACOMMONPOOLEDMEMORYAREAHOWEVEROURDISCUSSIONSHAVEALWAYSTACITLYASSUMEDTHATALLNODESHAVETHESAMESIZETHATEVERYNODEOCCUPIESACERTAINFIXEDNUMBEROFMEMORYCELLSMALLOCSEEDYNAMICSTORAGEALLOCATIONNODESIZEVARIABLESIZENODESFORAGREATMANYAPPLICATIONSASUITABLECOMPROMISECANBEFOUNDSOTHATAUNIFORMNODESIZEISINDEEDUSEDFORALLSTRUCTURESFOREXAMPLESEEEXERCISEINSTEADOFSIMPLYTAKINGTHEMAXIMUMSIZETHATISNEEDEDANDWASTINGSPACEINSMALLERNODESITISCUSTOMARYTOPICKARATHERSMALLNODESIZEANDTOEMPLOYWHATMAYBECALLEDTHECLASSICALLINKEDMEMORYPHILOSOPHYIFTHEREISNTROOMFORTHEINFORMATIONHERELETSPUTITSOMEWHEREELSEANDPLANTALINKTOITFORAGREATMANYOTHERAPPLICATIONSHOWEVERASINGLENODESIZEISNOTREASONABLEWEOFTENWISHTOHAVENODESOFVARYINGSIZESSHARINGACOMMONMEMORYAREAPUTTINGTHISANOTHERWAYWEWANTALGORITHMSFORRESERVINGANDFREEINGVARIABLESIZEBLOCKSOFMEMORYFROMALARGERSTORAGEAREAWHERETHESEBLOCKSARETOCONSISTOFCONSECUTIVEMEMORYLOCATIONSSUCHTECHNIQUESAREGENERALLYCALLEDDYNAMICSTORAGEALLOCATIONALGORITHMSSOMETIMESOFTENINSIMULATIONPROGRAMSWEWANTDYNAMICSTORAGEALLOCATIONFORNODESOFRATHERSMALLSIZESSAYONETOTENWORDSANDATOTHERTIMESOFTENINOPERATINGSYSTEMSWEAREDEALINGPRIMARILYWITHRATHERLARGEBLOCKSOFINFORMATIONTHESETWOPOINTSOFVIEWLEADTOSLIGHTLYDIFFERENTAPPROACHESTODYNAMICSTORAGEALLOCATIONALTHOUGHTHEMETHODSHAVEMUCHINCOMMONFORUNIFORMITYINTERMINOLOGYBETWEENTHESETWOAPPROACHESWEWILLGENERALLYUSETHETERMSBLOCKANDAREARATHERTHANNODEINTHISSECTIONTODENOTEASETOFCONTIGUOUSMEMORYLOCATIONSINORSOSEVERALAUTHORSBEGANTOCALLTHEPOOLOFAVAILABLEMEMORYAHEAPBUTINTHEPRESENTSERIESOFBOOKSWEWILLUSETHATWORDONLYINITSMORETRADITIONALSENSERELATEDTOPRIORITYQUEUESSEESECTIONTERMINOLOGYARESERVATIONFIGUREFIGSHOWSATYPICALMEMORYMAPORCHECKERBOARDMEMORYMAPAVAILLISTACHARTSHOWINGTHECURRENTSTATEOFSOMEMEMORYPOOLINTHISCASETHEMEMORYISSHOWNPARTITIONEDINTOBLOCKSOFSTORAGETHATARERESERVEDORINUSEMIXEDTOGETHERWITHFREEORAVAILABLEBLOCKSTHATARENOTINUSEAFTERDYNAMICSTORAGEALLOCATIONHASBEENINOPERATIONFORAWHILETHECOMPUTERMEMORYWILLPERHAPSLOOKSOMETHINGLIKETHISOURFIRSTPROBLEMISTOANSWERTWOQUESTIONSAHOWISTHISPARTITIONINGOFAVAILABLESPACETOBEREPRESENTEDINSIDETHECOMPUTERBGIVENSUCHAREPRESENTATIONOFTHEAVAILABLESPACESWHATISAGOODALGORITHMFORFINDINGABLOCKOFCONSECUTIVEFREESPACESANDRESERVINGTHEMFIGFIGAMEMORYMAPTHEANSWERTOQUESTIONAISOFCOURSETOKEEPALISTOFTHEAVAILABLESPACESOMEWHERETHISISALMOSTALWAYSDONEBESTBYUSINGTHEAVAILABLESPACEITSELFTOCONTAINSUCHALISTANEXCEPTIONISTHECASEWHENWEAREALLOCATINGSTORAGEFORADISKFILEOROTHERMEMORYINWHICHNONUNIFORMACCESSMEMORYHIERARCHYTIMEMAKESITBETTERTOMAINTAINASEPARATEDIRECTORYOFAVAILABLESPACETHUSWECANLINKTOGETHERTHEAVAILABLESEGMENTSTHEFIRSTWORDOFEACHFREESTORAGEAREACANCONTAINTHESIZEOFTHATBLOCKANDTHEADDRESSOFTHENEXTFREEAREATHEFREEBLOCKSCANBELINKEDTOGETHERININCREASINGORDECREASINGORDEROFSIZEORINORDEROFMEMORYADDRESSORINESSENTIALLYRANDOMORDERMEMORYMAPFOREXAMPLECONSIDERFIGFIGWHICHILLUSTRATESAMEMORYOFWORDSADDRESSEDFROMTOIFWEWERETOLINKTOGETHERTHEAVAILABLEBLOCKSINORDEROFMEMORYLOCATIONWEWOULDHAVEONEVARIABLEAVAILPOINTINGTOTHEFIRSTFREEBLOCKINTHISCASEAVAILWOULDEQUALANDTHEOTHERBLOCKSWOULDBEREPRESENTEDASFOLLOWSTHUSLOCATIONSTHROUGHFORMTHEFIRSTAVAILABLEBLOCKAFTERTHERESERVEDAREASANDSHOWNINFIGFIGWEHAVEMOREFREESPACEINLOCATIONETCASFORQUESTIONBIFWEWANTCONSECUTIVEWORDSCLEARLYWEMUSTLOCATERESERVATIONSOMEBLOCKOFAVAILABLEWORDSANDREDUCEITSSIZETOFURTHERMOREWHENWEMUSTALSODELETETHISBLOCKFROMTHELISTTHEREMAYBESEVERALBLOCKSWITHORMORECELLSANDSOTHEQUESTIONBECOMESWHICHAREASHOULDBECHOSENTWOPRINCIPALANSWERSTOTHISQUESTIONSUGGESTTHEMSELVESWECANUSETHEBESTFITMETHODBESTFITFIRSTFITORTHEFIRSTFITMETHODINTHEFORMERCASEWEDECIDETOCHOOSEANAREAWITHCELLSWHEREISTHESMALLESTVALUEPRESENTTHATISORMORETHISMIGHTREQUIRESEARCHINGTHEENTIRELISTOFAVAILABLESPACEBEFOREADECISIONCANBEMADETHEFIRSTFITMETHODONTHEOTHERHANDSIMPLYCHOOSESTHEFIRSTAREAENCOUNTEREDTHATHASWORDSHISTORICALLYTHEBESTFITMETHODWASWIDELYUSEDFORSEVERALYEARSTHISNATURALLYAPPEARSTOBEAGOODPOLICYSINCEITSAVESTHELARGERAVAILABLEAREASFORALATERTIMEWHENTHEYMIGHTBENEEDEDBUTSEVERALOBJECTIONSTOTHEBESTFITTECHNIQUECANBERAISEDITISRATHERSLOWSINCEITINVOLVESAFAIRLYLONGSEARCHIFBESTFITISNOTSUBSTANTIALLYBETTERTHANFIRSTFITFOROTHERREASONSTHISEXTRASEARCHINGTIMEISNOTWORTHWHILEMOREIMPORTANTLYTHEBESTFITMETHODTENDSTOINCREASETHENUMBEROFVERYSMALLBLOCKSANDPROLIFERATIONOFSMALLBLOCKSISUSUALLYUNDESIRABLETHEREARECERTAINSITUATIONSINWHICHTHEFIRSTFITTECHNIQUEISDEMONSTRABLYBETTERTHANTHEBESTFITMETHODFOREXAMPLESUPPOSEWEAREGIVENJUSTTWOAVAILABLEAREASOFMEMORYOFSIZESANDANDSUPPOSETHEREARESUBSEQUENTREQUESTSFORBLOCKSOFSIZESANDACONTRARYEXAMPLEAPPEARSINEXERCISETHEPOINTISTHATNEITHERMETHODCLEARLYDOMINATESTHEOTHERHENCETHESIMPLEFIRSTFITMETHODCANBERECOMMENDEDBESTFITALGORITHMAFIRSTFITMETHODLETAVAILPOINTTOTHEFIRSTAVAILABLEBLOCKOFSTORAGEANDSUPPOSETHATEACHAVAILABLEBLOCKWITHADDRESSPHASTWOFIELDSSIZEPTHENUMBEROFWORDSINTHEBLOCKANDLINKPAPOINTERTOTHENEXTAVAILABLEBLOCKTHELASTPOINTERISTHISALGORITHMSEARCHESFORANDRESERVESABLOCKOFNWORDSORREPORTSFAILUREAINITIALIZESETTHROUGHOUTTHEALGORITHMWEUSETWOPOINTERSQANDPWHICHAREGENERALLYRELATEDBYTHECONDITIONWEASSUMETHATAENDOFLISTSETIFTHEALGORITHMTERMINATESUNSUCCESSFULLYTHEREISNOROOMFORABLOCKOFNCONSECUTIVEWORDSAISSIZEENOUGHIFGOTOAOTHERWISESETANDRETURNTOSTEPAARESERVENSETIFSETTHEREBYREMOVINGANEMPTYAREAFROMTHELISTOTHERWISESETTHEALGORITHMTERMINATESSUCCESSFULLYHAVINGRESERVEDANAREAOFLENGTHNBEGINNINGWITHLOCATIONTHISALGORITHMISCERTAINLYSTRAIGHTFORWARDENOUGHHOWEVERASIGNIFICANTIMPROVEMENTINITSRUNNINGSPEEDCANBEMADEWITHONLYARATHERSLIGHTCHANGEINSTRATEGYTHISIMPROVEMENTISQUITEIMPORTANTANDTHEREADERWILLFINDITAPLEASURETODISCOVERITWITHOUTBEINGTOLDTHESECRETSEEEXERCISEALGORITHMAMAYBEUSEDWHETHERSTORAGEALLOCATIONISDESIREDFORSMALLNORLARGENLETUSASSUMETEMPORARILYHOWEVERTHATWEAREPRIMARILYINTERESTEDINLARGEVALUESOFNTHENNOTICEWHATHAPPENSWHENSIZEPISEQUALTOINTHATALGORITHMWEGETTOSTEPAANDREDUCESIZEPTOINOTHERWORDSANAVAILABLEBLOCKOFSIZEHASJUSTBEENCREATEDTHISBLOCKISSOSMALLITISVIRTUALLYUSELESSANDITJUSTCLOGSUPTHESYSTEMWEWOULDHAVEBEENBETTEROFFIFWEHADRESERVEDTHEWHOLEBLOCKOFWORDSINSTEADOFSAVINGTHEEXTRAWORDITISOFTENBETTERTOEXPENDAFEWWORDSOFMEMORYTOAVOIDHANDLINGUNIMPORTANTDETAILSSIMILARREMARKSAPPLYTOBLOCKSOFWORDSWHENKISVERYSMALLIFWEALLOWTHEPOSSIBILITYOFRESERVINGSLIGHTLYMORETHANNWORDSITWILLBENECESSARYTOREMEMBERHOWMANYWORDSHAVEBEENRESERVEDSOTHATLATERWHENTHISBLOCKBECOMESAVAILABLEAGAINTHEENTIRESETOFWORDSISFREEDTHISADDEDAMOUNTOFBOOKKEEPINGMEANSTHATWEARETYINGUPSPACEINEVERYBLOCKINORDERTOMAKETHESYSTEMMOREEFFICIENTONLYINCERTAINCIRCUMSTANCESWHENATIGHTFITISFOUNDSOTHESTRATEGYDOESNTSEEMESPECIALLYATTRACTIVEHOWEVERASPECIALCONTROLWORDASTHEFIRSTWORDOFEACHVARIABLESIZEBLOCKOFTENTURNSOUTTOBEDESIRABLEFOROTHERREASONSANDSOITISUSUALLYNOTUNREASONABLETOEXPECTTHESIZEFIELDTOBEPRESENTINTHEFIRSTWORDOFALLBLOCKSWHETHERTHEYAREAVAILABLEORRESERVEDINACCORDANCEWITHTHESECONVENTIONSWEWOULDMODIFYSTEPAABOVETOREADASFOLLOWSAARESERVESETIFWHEREISASMALLPOSITIVECONSTANTCHOSENTOREFLECTANAMOUNTOFSTORAGEWEAREWILLINGTOSACRIFICEINTHEINTERESTSOFSAVINGTIMESETANDOTHERWISESETTHEALGORITHMTERMINATESSUCCESSFULLYHAVINGRESERVEDANAREAOFLENGTHNORMOREBEGINNINGWITHLOCATIONLAVALUEFORTHECONSTANTOFABOUTORISSUGGESTEDALTHOUGHVERYLITTLETHEORYOREMPIRICALEVIDENCEEXISTSTOCOMPARETHISWITHOTHERCHOICESWHENTHEBESTFITMETHODISBEINGUSEDTHETESTOFISEVENMOREIMPORTANTTHANITISFORTHEFIRSTFITMETHODBECAUSETIGHTERFITSSMALLERVALUESOFKAREMUCHMORELIKELYTOOCCURANDTHENUMBEROFAVAILABLEBLOCKSSHOULDBEKEPTASSMALLASPOSSIBLEFORTHATALGORITHMFIRSTFITRESERVATIONBLIBERATIONNOWLETSCONSIDERTHEINVERSEPROBLEMLIBERATIONHOWSHOULDWERETURNBLOCKSTOTHEAVAILABLESPACELISTWHENTHEYARENOLONGERNEEDEDITISPERHAPSTEMPTINGTODISMISSTHISPROBLEMBYUSINGGARBAGECOLLECTIONGARBAGECOLLECTIONSEESECTIONWECOULDFOLLOWAPOLICYOFSIMPLYDOINGNOTHINGUNTILSPACERUNSOUTTHENSEARCHINGFORALLTHEAREASCURRENTLYINUSEANDFASHIONINGANEWAVAILLISTTHEIDEAOFGARBAGECOLLECTIONISNOTTOBERECOMMENDEDHOWEVERFORALLAPPLICATIONSINTHEFIRSTPLACEWENEEDAFAIRLYDISCIPLINEDUSEOFPOINTERSIFWEARETOBEABLETOGUARANTEETHATALLAREASCURRENTLYINUSEWILLBEEASYTOLOCATEANDTHISAMOUNTOFDISCIPLINEISOFTENLACKINGINTHEAPPLICATIONSCONSIDEREDHERESECONDLYASWEHAVESEENBEFOREGARBAGECOLLECTIONTENDSTOBESLOWWHENTHEMEMORYISNEARLYFULLTHEREISANOTHERMOREIMPORTANTREASONWHYGARBAGECOLLECTIONISNOTSATISFACTORYDUETOAPHENOMENONTHATDIDNOTCONFRONTUSINOURPREVIOUSDISCUSSIONOFTHETECHNIQUESUPPOSETHATTHEREARETWOADJACENTAREASOFMEMORYBOTHOFWHICHAREAVAILABLEBUTBECAUSEOFTHEGARBAGECOLLECTIONPHILOSOPHYONEOFTHEMSHOWNSHADEDISNOTINTHEAVAILLISTINTHISDIAGRAMTHEHEAVILYSHADEDAREASATTHEEXTREMELEFTANDRIGHTAREUNAVAILABLEWEMAYNOWRESERVEASECTIONOFTHEAREAKNOWNTOBEAVAILABLEIFGARBAGECOLLECTIONOCCURSATTHISPOINTWEHAVETWOSEPARATEFREEAREASBOUNDARIESBETWEENAVAILABLEANDRESERVEDAREASHAVEATENDENCYTOPERPETUATETHEMSELVESANDASTIMEGOESONTHESITUATIONGETSPROGRESSIVELYWORSEBUTIFWEHADUSEDAPHILOSOPHYOFRETURNINGBLOCKSTOTHEAVAILLISTASSOONASTHEYBECOMEFREEANDCOLLAPSINGADJACENTAVAILABLEAREASTOGETHERWEWOULDHAVECOLLAPSEDINTOANDWEWOULDHAVEOBTAINEDWHICHISMUCHBETTERTHANTHISPHENOMENONCAUSESTHEGARBAGECOLLECTIONTECHNIQUETOLEAVEMEMORYMOREBROKENUPTHANITSHOULDBECHECKERBOARDINGFRAGMENTATIONINORDERTOREMOVETHISDIFFICULTYWECANUSEGARBAGECOLLECTIONTOGETHERWITHTHEPROCESSOFCOMPACTINGMEMORYTHATISMOVINGALLTHEGARBAGECOLLECTIONRESERVEDBLOCKSINTOCONSECUTIVELOCATIONSSOTHATALLAVAILABLEBLOCKSCOMETOGETHERWHENEVERGARBAGECOLLECTIONISDONETHEALLOCATIONALGORITHMNOWBECOMESCOMPLETELYTRIVIALBYCONTRASTWITHALGORITHMASINCETHEREISONLYONEAVAILABLEBLOCKATALLTIMESEVENTHOUGHTHISTECHNIQUETAKESTIMETORECOPYALLTHELOCATIONSTHATAREINUSEANDTOCHANGETHEVALUEOFTHELINKFIELDSTHEREINITCANBEAPPLIEDWITHREASONABLEEFFICIENCYWHENTHEREISADISCIPLINEDUSEOFPOINTERSANDWHENTHEREISASPARELINKFIELDINEACHBLOCKFORUSEBYTHEGARBAGECOLLECTIONALGORITHMSSEEEXERCISESINCEMANYAPPLICATIONSDONOTMEETTHEREQUIREMENTSFORTHEFEASIBILITYOFGARBAGECOLLECTIONWESHALLNOWSTUDYMETHODSFORRETURNINGBLOCKSOFMEMORYTOTHEAVAILABLESPACELISTTHEONLYDIFFICULTYINTHESEMETHODSISTHECOLLAPSINGPROBLEMTWOADJACENTFREEAREASSHOULDBEMERGEDINTOONEINFACTWHENANAREABOUNDEDBYTWOAVAILABLEBLOCKSBECOMESFREEALLTHREEAREASSHOULDBEMERGEDTOGETHERINTOONEINTHISWAYAGOODBALANCEISOBTAINEDINMEMORYEVENTHOUGHSTORAGEAREASARECONTINUALLYRESERVEDANDFREEDOVERALONGPERIODOFTIMEFORAPROOFOFTHISFACTSEETHEFIFTYPERCENTRULEBELOWTHEPROBLEMISTODETERMINEWHETHERTHEAREASATEITHERSIDEOFTHERETURNEDBLOCKARECURRENTLYAVAILABLEANDIFTHEYAREWEWANTTOUPDATETHEAVAILLISTPROPERLYTHELATTEROPERATIONISALITTLEMOREDIFFICULTTHANITSOUNDSTHEFIRSTSOLUTIONTOTHESEPROBLEMSISTOMAINTAINTHEAVAILLISTINORDEROFINCREASINGMEMORYLOCATIONSALGORITHMBLIBERATIONWITHSORTEDLISTUNDERTHEASSUMPTIONSOFALGORITHMAWITHTHEADDITIONALASSUMPTIONTHATTHEAVAILLISTISSORTEDBYMEMORYLOCATIONTHATISIFPPOINTSTOANAVAILABLEBLOCKANDTHENTHISALGORITHMADDSTHEBLOCKOFNCONSECUTIVECELLSBEGINNINGATLOCATIONPTOTHEAVAILLISTWENATURALLYASSUMETHATNONEOFTHESENCELLSISALREADYAVAILABLEBINITIALIZESETSEETHEREMARKSINSTEPAABOVEBADVANCEPSETIFORIFGOTOBOTHERWISESETANDREPEATSTEPBBCHECKUPPERBOUNDIFANDSETANDSETOTHERWISESETBCHECKLOWERBOUNDIFWEASSUMETHATSOTHISTESTALWAYSFAILSWHENSETANDOTHERWISESETSTEPSBANDBDOTHEDESIREDCOLLAPSINGBASEDONTHEFACTTHATTHEPOINTERSARETHEBEGINNINGLOCATIONSOFTHREECONSECUTIVEAVAILABLEAREASIFTHEAVAILLISTISNOTMAINTAINEDINORDEROFLOCATIONSTHEREADERCANSEETHATABRUTEFORCEAPPROACHTOTHECOLLAPSINGPROBLEMWOULDREQUIREACOMPLETESEARCHTHROUGHTHEENTIREAVAILLISTALGORITHMBREDUCESTHISTOASEARCHTHROUGHABOUTHALFOFTHEAVAILLISTINSTEPBONTHEAVERAGEEXERCISESHOWSHOWALGORITHMBCANBEMODIFIEDSOTHATONTHEAVERAGEONLYABOUTONETHIRDOFTHEAVAILLISTMUSTBESEARCHEDBUTOBVIOUSLYWHENTHEAVAILLISTISLONGALLOFTHESEMETHODSAREMUCHSLOWERTHANWEWANTTHEMTOBEISNTTHERESOMEWAYTORESERVEANDFREESTORAGEAREASSOTHATWEDONTNEEDTODOEXTENSIVESEARCHINGTHROUGHTHEAVAILLISTWEWILLNOWCONSIDERAMETHODTHATELIMINATESALLSEARCHINGWHENSTORAGEISRETURNEDANDTHATCANBEMODIFIEDASINEXERCISETOAVOIDALMOSTALLOFTHESEARCHINGWHENSTORAGEISRESERVEDTHETECHNIQUEMAKESUSEOFATAGFIELDATBOTHENDSOFEACHBLOCKANDASIZEFIELDINTHEFIRSTWORDOFEACHBLOCKTHISOVERHEADISNEGLIGIBLEWHENREASONABLYLARGEBLOCKSAREBEINGUSEDALTHOUGHITISPERHAPSTOOMUCHOFAPENALTYTOPAYINSITUATIONSWHENTHEBLOCKSHAVEAVERYSMALLAVERAGESIZEANOTHERMETHODDESCRIBEDINEXERCISEREQUIRESONLYONEBITINTHEFIRSTWORDOFEACHBLOCKATTHEEXPENSEOFALITTLEMORERUNNINGTIMEANDASLIGHTLYMORECOMPLICATEDPROGRAMATANYRATELETUSNOWASSUMETHATWEDONTMINDADDINGALITTLEBITOFBOUNDARYTAGMETHODCONTROLINFORMATIONINORDERTOSAVEAGOODDEALOFTIMEOVERALGORITHMBWHENTHEAVAILLISTISLONGTHEMETHODWEWILLDESCRIBEASSUMESTHATEACHBLOCKHASTHEFOLLOWINGFORMTHEIDEAINTHEFOLLOWINGALGORITHMISTOMAINTAINADOUBLYLINKEDAVAILDOUBLYLINKEDLISTLISTHEADDOUBLYLINKEDLISTSOTHATENTRIESMAYCONVENIENTLYBEDELETEDFROMRANDOMPARTSOFTHELISTTHETAGFIELDATEITHERENDOFABLOCKCANBEUSEDTOCONTROLTHECOLLAPSINGPROCESSSINCEWECANTELLEASILYWHETHERORNOTBOTHADJACENTBLOCKSAREAVAILABLEDOUBLELINKINGISACHIEVEDINAFAMILIARWAYBYLETTINGTHELINKINTHEFIRSTWORDPOINTTOTHENEXTFREEBLOCKINTHELISTANDLETTINGTHELINKINTHESECONDWORDPOINTBACKTOTHEPREVIOUSBLOCKTHUSIFPISTHEADDRESSOFANAVAILABLEBLOCKWEALWAYSHAVETOENSUREPROPERBOUNDARYCONDITIONSTHELISTHEADISSETUPASFOLLOWSAFIRSTFITRESERVATIONALGORITHMFORTHISTECHNIQUEMAYBEDESIGNEDVERYMUCHLIKEALGORITHMASOWESHALLNOTCONSIDERITHERESEEEXERCISETHEPRINCIPALNEWFEATUREOFTHISMETHODISTHEWAYTHEBLOCKCANBEFREEDINESSENTIALLYAFIXEDAMOUNTOFTIMEALGORITHMCLIBERATIONWITHBOUNDARYTAGSASSUMETHATBLOCKSOFLOCATIONSHAVETHEFORMSSHOWNINANDASSUMETHATTHEAVAILLISTISDOUBLYLINKEDASDESCRIBEDABOVETHISALGORITHMPUTSTHEBLOCKOFLOCATIONSSTARTINGWITHADDRESSPINTOTHEAVAILLISTIFTHEPOOLOFAVAILABLESTORAGERUNSFROMLOCATIONSTHROUGHINCLUSIVETHEALGORITHMASSUMESFORCONVENIENCETHATCCHECKLOWERBOUNDIFPGOTOCCDELETELOWERAREASETPANDTHENSETPPCCHECKUPPERBOUNDSETIFGOTOCCDELETEUPPERAREASETPPCADDTOAVAILLISTSETPPAVAILPTHESTEPSOFALGORITHMCARESTRAIGHTFORWARDCONSEQUENCESOFTHESTORAGELAYOUTASLIGHTLYLONGERALGORITHMTHATISALITTLEFASTERAPPEARSINEXERCISEINSTEPCAVAILISANABBREVIATIONFORLINKLOCAVAILASSHOWNINBOUNDARYTAGMETHODLIBERATIONCTHEBUDDYSYSTEMWEWILLNOWSTUDYANOTHERBUDDYSYSTEMAPPROACHTODYNAMICSTORAGEALLOCATIONSUITABLEFORUSEWITHBINARYCOMPUTERSTHISMETHODUSESJUSTONEBITOFOVERHEADINEACHBLOCKANDITREQUIRESALLBLOCKSTOBEOFLENGTHORETCIFABLOCKISNOTWORDSLONGFORSOMEINTEGERTHENEXTHIGHERPOWEROFISCHOSENANDEXTRAUNUSEDSPACEISALLOCATEDACCORDINGLYTHEIDEAOFTHISMETHODISTOKEEPSEPARATELISTSOFAVAILABLEBLOCKSOFEACHSIZETHEENTIREPOOLOFMEMORYSPACEUNDERALLOCATIONCONSISTSOFWORDSWHICHCANBEASSUMEDTOHAVETHEADDRESSESTHROUGHORIGINALLYTHEENTIREBLOCKOFWORDSISAVAILABLELATERWHENABLOCKOFWORDSISDESIREDANDIFNOTHINGOFTHISSIZEISAVAILABLEALARGERAVAILABLEBLOCKISSPLITINTOTWOEQUALPARTSULTIMATELYABLOCKOFTHERIGHTSIZEWILLAPPEARWHENONEBLOCKSPLITSINTOTWOEACHOFWHICHISHALFASLARGEASTHEORIGINALTHESETWOBLOCKSARECALLEDBUDDIESLATERWHENBOTHBUDDIESAREAVAILABLEAGAINTHEYCOALESCEBACKINTOASINGLEBLOCKTHUSTHEPROCESSCANBEMAINTAINEDINDEFINITELYUNLESSWERUNOUTOFSPACEATSOMEPOINTTHEKEYFACTUNDERLYINGTHEPRACTICALUSEFULNESSOFTHISMETHODISTHATIFWEKNOWTHEADDRESSOFABLOCKTHEMEMORYLOCATIONOFITSFIRSTWORDANDIFWEALSOKNOWTHESIZEOFTHATBLOCKWEKNOWTHEADDRESSOFITSBUDDYFOREXAMPLETHEBUDDYOFTHEBLOCKOFSIZEBEGINNINGINBINARYLOCATIONISABLOCKSTARTINGINBINARYLOCATIONTOSEEWHYTHISMUSTBETRUEWEFIRSTOBSERVETHATASTHEALGORITHMPROCEEDSTHEADDRESSOFABLOCKOFSIZEISAMULTIPLEOFINOTHERWORDSTHEADDRESSINBINARYNOTATIONHASATLEASTZEROSATTHERIGHTTHISOBSERVATIONISEASILYJUSTIFIEDBYINDUCTIONIFITISTRUEFORALLBLOCKSOFSIZEITISCERTAINLYTRUEWHENSUCHABLOCKISHALVEDTHEREFOREABLOCKOFSIZESAYHASANADDRESSOFTHEFORMWHERETHESREPRESENTEITHERORIFITISSPLITTHENEWLYFORMEDBUDDYBLOCKSHAVETHEADDRESSESANDINGENERALLETBUDDYADDRESSOFTHEBUDDYOFTHEBLOCKOFSIZEWHOSEADDRESSISWEFINDTHATTHISFUNCTIONISREADILYCOMPUTEDWITHTHEEXCLUSIVEORINSTRUCTIONSOMETIMESCALLEDSELECTIVECOMPLEMENTORADDWITHOUTCARRYUSUALLYFOUNDONBINARYCOMPUTERSSEEEXERCISETHEBUDDYSYSTEMMAKESUSEOFAONEBITTAGFIELDINEACHBLOCKTHISTAGFIELDISPRESENTINALLBLOCKSANDITMUSTNOTBETAMPEREDWITHBYTHEUSERSWHORESERVEBLOCKSTHEAVAILABLEBLOCKSALSOHAVETWOLINKFIELDSLINKFANDLINKBWHICHARETHEUSUALFORWARDANDBACKWARDLINKSOFADOUBLYLINKEDLISTANDTHEYALSOHAVEAKVALFIELDTOSPECIFYWHENTHEIRSIZEISTHEALGORITHMSBELOWMAKEUSEOFTHETABLELOCATIONSAVAILAVAILAVAILWHICHSERVERESPECTIVELYASTHEHEADSOFTHELISTSOFAVAILABLESTORAGEOFSIZESTHESELISTSAREDOUBLYLINKEDSOASUSUALTHELISTDOUBLYLINKEDLISTLISTHEADDOUBLYLINKEDHEADSCONTAINTWOPOINTERSSEESECTIONINITIALLYBEFOREANYSTORAGEHASBEENALLOCATEDWEHAVEINDICATINGASINGLEAVAILABLEBLOCKOFLENGTHBEGINNINGINLOCATIONANDINDICATINGEMPTYLISTSFORAVAILABLEBLOCKSOFLENGTHSFORALLFROMTHISDESCRIPTIONOFTHEBUDDYSYSTEMTHEREADERMAYFINDITENJOYABLETODESIGNTHENECESSARYALGORITHMSFORRESERVINGANDFREEINGSTORAGEAREASBEFORELOOKINGATTHEALGORITHMSGIVENBELOWNOTICETHECOMPARATIVEEASEWITHWHICHBLOCKSCANBEHALVEDINTHERESERVATIONALGORITHMRBUDDYRESALGORITHMRBUDDYSYSTEMRESERVATIONTHISALGORITHMFINDSANDRESERVESABLOCKOFLOCATIONSORREPORTSFAILUREUSINGTHEORGANIZATIONOFTHEBUDDYSYSTEMASEXPLAINEDABOVERFINDBLOCKLETBETHESMALLESTINTEGERINTHERANGEFORWHICHJJTHATISFORWHICHTHELISTOFAVAILABLEBLOCKSOFSIZEISNOTEMPTYIFNOSUCHEXISTSTHEALGORITHMTERMINATESUNSUCCESSFULLYSINCETHEREARENOKNOWNAVAILABLEBLOCKSOFSUFFICIENTSIZETOMEETTHEREQUESTRREMOVEFROMLISTSETJJJANDRSPLITREQUIREDIFTHEALGORITHMTERMINATESWEHAVEFOUNDANDRESERVEDANAVAILABLEBLOCKSTARTINGATADDRESSLRSPLITDECREASEBYTHENSETJJJTHISSPLITSALARGEBLOCKANDENTERSTHEUNUSEDHALFINTHEAVAILLISTWHICHWASEMPTYGOBACKTOSTEPRALGORITHMSBUDDYSYSTEMLIBERATIONTHISALGORITHMRETURNSABLOCKLIBERATIONOFLOCATIONSSTARTINGINADDRESSLTOFREESTORAGEUSINGTHEORGANIZATIONOFTHEBUDDYSYSTEMASEXPLAINEDABOVETHEUSERISSUPPOSEDTOKNOWTHEVALUEOFFROMTHECURRENTCONTEXTBECAUSEARESERVEDBLOCKHASNOKVALFIELDSISBUDDYAVAILABLESETBUDDYLSEEEQIFORIFORIFANDGOTOSSCOMBINEWITHBUDDYSETTHISREMOVESBLOCKPFROMTHEAVAILLISTTHENSETANDIFSETRETURNTOSSPUTONLISTSETKKKTHISPUTSBLOCKLONTHEAVAILLISTLIBERATIONBUDDYSYSTEMDCOMPARISONOFTHEMETHODSTHEMATHEMATICALANALYSISOFTHESEDYNAMICSTORAGEALLOCATIONALGORITHMSHASPROVEDTOBEQUITEDIFFICULTBUTTHEREISONEINTERESTINGPHENOMENONTHATISFAIRLYEASYTOANALYZENAMELYTHEFIFTYPERCENTRULEFIFTYPERCENTRULEANALYSISOFALGORITHMSIFALGORITHMSAANDBAREUSEDCONTINUALLYINSUCHAWAYTHATTHESYSTEMTENDSTOANEQUILIBRIUMCONDITIONWHERETHEREARERESERVEDBLOCKSINTHESYSTEMONTHEAVERAGEEACHEQUALLYLIKELYTOBETHENEXTONEFREEDANDWHERETHEQUANTITYKINALGORITHMATAKESONNONZEROVALUESORMOREGENERALLYVALUESASINSTEPAWITHPROBABILITYTHENTHEAVERAGENUMBEROFAVAILABLEBLOCKSTENDSTOBEAPPROXIMATELYTHISRULETELLSUSAPPROXIMATELYHOWLONGTHEAVAILLISTWILLBEWHENAVAILLISTTHEQUANTITYISNEARTHISWILLHAPPENIFISVERYSMALLANDIFTHEBLOCKSIZESAREINFREQUENTLYEQUALTOEACHOTHERWEHAVEABOUTHALFASMANYAVAILABLEBLOCKSASUNAVAILABLEONESHENCETHENAMEFIFTYPERCENTRULEITISNOTHARDTODERIVETHISRULECONSIDERTHEFOLLOWINGMEMORYMAPTHISSHOWSTHERESERVEDBLOCKSDIVIDEDINTOTHREECATEGORIESWHENFREEDTHENUMBEROFAVAILABLEBLOCKSWILLDECREASEBYONEWHENFREEDTHENUMBEROFAVAILABLEBLOCKSWILLNOTCHANGEWHENFREEDTHENUMBEROFAVAILABLEBLOCKSWILLINCREASEBYONENOWLETBETHENUMBEROFRESERVEDBLOCKSANDLETBETHENUMBEROFAVAILABLEONESLETANDBETHENUMBEROFBLOCKSOFTHETYPESIDENTIFIEDABOVEWEHAVEWHEREORDEPENDINGONCONDITIONSATTHELOWERANDUPPERBOUNDARIESLETUSASSUMETHATISESSENTIALLYCONSTANTBUTTHATANDARERANDOMQUANTITIESTHATREACHASTATIONARYDISTRIBUTIONAFTERABLOCKISFREEDANDASLIGHTLYDIFFERENTSTATIONARYDISTRIBUTIONAFTERABLOCKISALLOCATEDTHEAVERAGECHANGEINWHENABLOCKISFREEDISTHEAVERAGEVALUEOFTHEAVERAGECHANGEINWHENABLOCKISALLOCATEDISSOTHEEQUILIBRIUMASSUMPTIONTELLSUSTHATTHEAVERAGEVALUEOFISZEROBUTTHENTHEAVERAGEVALUEOFISPLUSTHEAVERAGEVALUEOFSINCEBYTHEFIFTYPERCENTRULEFOLLOWSOURASSUMPTIONTHATEACHDELETIONAPPLIESTOARANDOMRESERVEDBLOCKWILLBEVALIDIFTHELIFETIMEOFABLOCKISANEXPONENTIALLYDISTRIBUTEDRANDOMVARIABLEONTHEOTHERHANDIFALLBLOCKSHAVEROUGHLYTHESAMELIFETIMETHISASSUMPTIONISFALSEJOHNESHOREHASPOINTEDOUTTHATTYPEABLOCKSTENDTOBEOLDERTHANTYPECBLOCKSWHENALLOCATIONSANDLIBERATIONSTENDTOHAVEASOMEWHATFIRSTINFIRSTOUTCHARACTERSINCEASEQUENCEOFADJACENTRESERVEDBLOCKSTENDSTOBEINORDERFROMYOUNGESTTOOLDESTANDSINCETHEMOSTRECENTLYALLOCATEDBLOCKISALMOSTNEVERTYPEATHISTENDSTOPRODUCEASMALLERNUMBEROFAVAILABLEBLOCKSGIVINGEVENBETTERPERFORMANCETHANTHEFIFTYPERCENTRULEWOULDPREDICTSEECACMFORMOREDETAILEDINFORMATIONABOUTTHEFIFTYPERCENTRULESEEDJMDAVIESBITCMREEVESCOMPJGCHPFLUGCOMPJANALYSISOFALGORITHMSFIFTYPERCENTRULEBESIDESTHISINTERESTINGRULEOURKNOWLEDGEOFTHEPERFORMANCEOFDYNAMICSTORAGEALLOCATIONALGORITHMSISBASEDALMOSTENTIRELYONMONTECARLOEXPERIMENTSREADERSWILLFINDITINSTRUCTIVETOCONDUCTTHEIROWNSIMULATIONEXPERIMENTSWHENTHEYARECHOOSINGBETWEENSTORAGEALLOCATIONALGORITHMSFORAPARTICULARMACHINEANDAPARTICULARAPPLICATIONORCLASSOFAPPLICATIONSTHEAUTHORCARRIEDOUTSEVERALSUCHEXPERIMENTSJUSTBEFOREWRITINGTHISSECTIONANDINDEEDTHEFIFTYPERCENTRULEWASNOTICEDDURINGTHOSEEXPERIMENTSBEFOREAPROOFFORITWASFOUNDLETUSBRIEFLYEXAMINETHEMETHODSANDRESULTSOFTHOSEEXPERIMENTSHERETHEBASICSIMULATIONPROGRAMRANASFOLLOWSWITHTIMEINITIALLYZEROANDWITHTHEMEMORYAREAINITIALLYALLAVAILABLEPPTICKADVANCETIMEBYPSYNCFREEALLBLOCKSINTHESYSTEMTHATARESCHEDULEDTOBEFREEDATTHECURRENTVALUEOFTIMEPGETDATACALCULATETWOQUANTITIESARANDOMSIZEANDARANDOMLIFETIMEBASEDONSOMEPROBABILITYDISTRIBUTIONSUSINGTHEMETHODSOFCHAPTERPUSEDATARESERVEANEWBLOCKOFLENGTHWHICHISDUETOBEFREEDATRETURNTOPWHENEVERTIMEWASAMULTIPLEOFDETAILEDSTATISTICSABOUTTHEPERFORMANCEOFTHERESERVATIONANDLIBERATIONALGORITHMSWEREPRINTEDTHESAMESEQUENCEOFVALUESOFANDWASUSEDFOREACHPAIROFALGORITHMSTESTEDAFTERTIMEADVANCEDPASTTHESYSTEMUSUALLYHADREACHEDAMOREORLESSSTEADYSTATETHATGAVEEVERYINDICATIONOFBEINGMAINTAINEDINDEFINITELYTHEREAFTERHOWEVERDEPENDINGONTHETOTALAMOUNTOFSTORAGEAVAILABLEANDONTHEDISTRIBUTIONSOFANDINSTEPPTHEALLOCATIONALGORITHMSWOULDOCCASIONALLYFAILTOFINDENOUGHSPACEANDTHESIMULATIONEXPERIMENTWASTHENTERMINATEDLETBETHETOTALNUMBEROFMEMORYLOCATIONSAVAILABLEANDLETANDDENOTETHEAVERAGEVALUESOFANDINSTEPPITISEASYTOSEETHATTHEEXPECTEDNUMBEROFUNAVAILABLEWORDSOFMEMORYATANYGIVENTIMEISONCETIMEISSUFFICIENTLYLARGEWHENWASGREATERTHANABOUTINTHEEXPERIMENTSMEMORYOVERFLOWUSUALLYOCCURREDOFTENBEFOREWORDSOFMEMORYWEREACTUALLYNEEDEDTHEMEMORYWASABLETOBECOMEOVERPERCENTFILLEDWHENTHEBLOCKSIZEWASSMALLCOMPAREDTOBUTWHENTHEBLOCKSIZESWEREALLOWEDTOEXCEEDASWELLASTAKINGONMUCHSMALLERVALUESTHEPROGRAMTENDEDTOREGARDTHEMEMORYASFULLWHENFEWERTHANLOCATIONSWEREACTUALLYINUSEEMPIRICALEVIDENCESUGGESTSSTRONGLYTHATBLOCKSIZESLARGERTHANSHOULDNOTBEUSEDWITHDYNAMICSTORAGEALLOCATIONIFEFFECTIVEOPERATIONISEXPECTEDTHEREASONFORTHISBEHAVIORCANBEUNDERSTOODINTERMSOFTHEFIFTYPERCENTRULEIFTHESYSTEMREACHESANEQUILIBRIUMCONDITIONINWHICHTHESIZEOFANAVERAGEFREEBLOCKISLESSTHANTHESIZEOFANAVERAGEBLOCKINUSEWECANEXPECTTOGETANUNFILLABLEREQUESTUNLESSALARGEFREEBLOCKISAVAILABLEFOREMERGENCIESHENCEINASATURATEDSYSTEMTHATDOESNTOVERFLOWANDWEHAVETHETOTALMEMORYINUSEISTHEREFOREWHENWEAREUNABLETOUSEMORETHANABOUTOFTHEMEMORYCELLSTHEEXPERIMENTSWERECONDUCTEDWITHTHREESIZEDISTRIBUTIONSFORUNIFORMDISTRIBUTIONSANINTEGERCHOSENUNIFORMLYBETWEENANDSIZESCHOSENWITHRESPECTIVEPROBABILITIESSIZESSELECTEDWITHEQUALPROBABILITYTHETIMEDISTRIBUTIONWASUSUALLYARANDOMINTEGERCHOSENUNIFORMLYBETWEENANDFORFIXEDOREXPERIMENTSWEREALSOMADEINWHICHWASCHOSENUNIFORMLYBETWEENANDINSTEPPWHEREISTHENUMBEROFTIMEUNITSREMAININGUNTILTHENEXTSCHEDULEDFREEINGOFSOMECURRENTLYRESERVEDBLOCKINTHESYSTEMTHISTIMEDISTRIBUTIONWASMEANTTOSIMULATEANALMOSTLASTINFIRSTOUTBEHAVIORFORIFWEREALWAYSLASTINFIRSTOUTALMOSTCHOSENTHESTORAGEALLOCATIONSYSTEMWOULDDEGENERATEINTOSIMPLYASTACKOPERATIONREQUIRINGNOCOMPLEXALGORITHMSSEEEXERCISETHESTATEDDISTRIBUTIONCAUSESTOBECHOSENGREATERTHANABOUTPERCENTOFTHETIMESOWEHAVEALMOSTBUTNOTQUITEASTACKOPERATIONWHENTHISDISTRIBUTIONWASUSEDALGORITHMSSUCHASABANDCBEHAVEDMUCHBETTERTHANUSUALTHEREWERERARELYIFEVERMORETHANTWOITEMSINTHEENTIREAVAILLISTWHILETHEREWEREABOUTRESERVEDBLOCKSONTHEOTHERHANDTHEBUDDYSYSTEMALGORITHMSRANDSWERESLOWERWHENTHISDISTRIBUTIONWASUSEDBECAUSETHEYTENDTOSPLITANDCOALESCEBLOCKSMOREFREQUENTLYINASTACKLIKEOPERATIONTHETHEORETICALPROPERTIESOFTHISTIMEDISTRIBUTIONAPPEARTOBEQUITEDIFFICULTTODEDUCESEEEXERCISEFIGUREFIGWHICHAPPEAREDNEARTHEBEGINNINGOFTHISSECTIONWASTHECONFIGURATIONOFMEMORYATWITHSIZEDISTRIBUTIONSANDWITHTHETIMESDISTRIBUTEDUNIFORMLYINUSINGTHEFIRSTFITMETHODJUSTASINALGORITHMSAANDBABOVEFORTHISEXPERIMENTTHEPROBABILITYTHATENTERSINTOTHEFIFTYPERCENTRULEWASESSENTIALLYSOWEWOULDEXPECTABOUTHALFASMANYAVAILABLEBLOCKSASRESERVEDBLOCKSACTUALLYFIGFIGSHOWSAVAILABLEANDRESERVEDTHISDOESNOTDISPROVETHEFIFTYPERCENTRULEFOREXAMPLEATTHEREWEREAVAILABLEANDRESERVEDTHECONFIGURATIONINFIGFIGMERELYSHOWSHOWTHEFIFTYPERCENTRULEISSUBJECTTOSTATISTICALVARIATIONSTHENUMBEROFAVAILABLEBLOCKSGENERALLYRANGEDBETWEENANDWHILETHENUMBEROFRESERVEDBLOCKSWASGENERALLYBETWEENANDFIGUREFIGSHOWSTHECONFIGURATIONOFMEMORYOBTAINEDWITHTHESAMEDATAASFIGFIGBUTWITHTHEBESTFITMETHODUSEDINSTEADOFTHEFIRSTFITMETHODTHECONSTANTINSTEPAWASSETTOTOELIMINATESMALLBLOCKSANDASARESULTTHEPROBABILITYDROPPEDTOABOUTANDTHEREWEREFEWERAVAILABLEAREASFIGFIGMEMORYMAPOBTAINEDWITHTHEBESTFITMETHODCOMPARETHISWITHFIGFIGWHICHSHOWSTHEFIRSTFITMETHODANDFIGFIGWHICHSHOWSTHEBUDDYSYSTEMFORTHESAMESEQUENCEOFSTORAGEREQUESTSWHENTHETIMEDISTRIBUTIONWASCHANGEDTOVARYFROMTOINSTEADOFTOSITUATIONSPRECISELYANALOGOUSTOTHOSESHOWNINFIGSFIGANDFIGWEREOBTAINEDWITHALLAPPROPRIATEQUANTITIESAPPROXIMATELYMULTIPLIEDBYFOREXAMPLETHEREWERERESERVEDBLOCKSANDFREEBLOCKSINTHEEQUIVALENTOFFIGFIGFREEBLOCKSINTHEEQUIVALENTOFFIGFIGINALLEXPERIMENTSCOMPARINGTHEBESTFITANDFIRSTFITMETHODSTHELATTERALWAYSAPPEAREDTOBESUPERIORWHENMEMORYSIZEWASEXHAUSTEDTHEFIRSTFITMETHODACTUALLYSTAYEDINACTIONLONGERTHANTHEBESTFITMETHODBEFOREMEMORYOVERFLOWOCCURREDINMOSTINSTANCESTHEBUDDYSYSTEMWASALSOAPPLIEDTOTHESAMEDATATHATLEDTOFIGSFIGBUDDYSYSTEMANDFIGANDFIGFIGWASTHERESULTHEREALLSIZESINTHERANGETOWERETREATEDASTHOSEBETWEENANDWERERAISEDTOETCONTHEAVERAGETHISMEANSTHATMORETHANFOURTHIRDSASMUCHMEMORYWASREQUESTEDSEEEXERCISETHEBUDDYSYSTEMOFCOURSEWORKSBETTERONSIZEDISTRIBUTIONSLIKETHATOFSABOVEINSTEADOFSNOTICETHATTHEREAREAVAILABLEBLOCKSOFSIZESANDINFIGFIGFIGFIGMEMORYMAPOBTAINEDWITHTHEBUDDYSYSTEMTHETREESTRUCTUREINDICATESTHEDIVISIONOFCERTAINLARGEBLOCKSINTOBUDDIESOFHALFTHESIZESQUARESINDICATEAVAILABLEBLOCKSSIMULATIONOFTHEBUDDYSYSTEMSHOWEDTHATITPERFORMSMUCHBETTERTHANMIGHTBEEXPECTEDITISCLEARTHATTHEBUDDYSYSTEMWILLSOMETIMESALLOWTWOADJACENTAREASOFTHESAMESIZETOBEAVAILABLEWITHOUTMERGINGTHEMINTOONEIFTHEYARENOTBUDDIESBUTTHISSITUATIONISNOTPRESENTINFIGFIGANDINFACTITISRAREINPRACTICEINCASESWHEREMEMORYOVERFLOWOCCURREDMEMORYWASPERCENTRESERVEDANDTHISREFLECTSASURPRISINGLYGOODALLOCATIONBALANCEFURTHERMOREITWASVERYSELDOMNECESSARYTOSPLITBLOCKSINALGORITHMRORTOMERGETHEMINALGORITHMSTHETREEREMAINEDMUCHLIKEFIGFIGWITHAVAILABLEBLOCKSONTHEMOSTCOMMONLYUSEDLEVELSSOMEMATHEMATICALRESULTSTHATGIVEINSIGHTINTOTHISBEHAVIORATTHELOWESTLEVELOFTHETREEHAVEBEENOBTAINEDBYPWPURDOMJRANDSMSTIGLERJACMBUDDYSYSTEMANOTHERSURPRISEWASTHEEXCELLENTBEHAVIOROFALGORITHMAAFTERTHENEXTFITMODIFICATIONDESCRIBEDINEXERCISEONLYINSPECTIONSOFAVAILABLEBLOCKSIZESWERENECESSARYONTHEAVERAGEUSINGSIZEDISTRIBUTIONSANDTIMESCHOSENUNIFORMLYBETWEENANDANDMORETHANHALFOFTHETIMEONLYTHEMINIMUMVALUEONEITERATIONWASNECESSARYTHISWASTRUEINSPITEOFTHEFACTTHATABOUTAVAILABLEBLOCKSWEREPRESENTTHESAMEEXPERIMENTWITHALGORITHMAUNMODIFIEDSHOWEDTHATABOUTITERATIONSWERENECESSARYONTHEAVERAGESOABOUTHALFOFTHEAVAILLISTWASBEINGEXAMINEDEACHTIMEORMOREITERATIONSWEREFOUNDTOBENECESSARYABOUTPERCENTOFTHETIMETHISBEHAVIOROFALGORITHMAUNMODIFIEDCANINFACTBEPREDICTEDASACONSEQUENCEOFTHEFIFTYPERCENTRULEATEQUILIBRIUMTHEPORTIONOFMEMORYCONTAININGTHELASTHALFOFTHERESERVEDBLOCKSWILLALSOCONTAINTHELASTHALFOFTHEFREEBLOCKSTHATPORTIONWILLBEINVOLVEDHALFOFTHETIMEWHENABLOCKISFREEDANDSOITMUSTBEINVOLVEDINHALFOFTHEALLOCATIONSINORDERTOMAINTAINEQUILIBRIUMTHESAMEARGUMENTHOLDSWHENONEHALFISREPLACEDBYANYOTHERFRACTIONTHESEOBSERVATIONSAREDUETOJMROBSONTHEEXERCISESBELOWINCLUDEPROGRAMSFORTHETWOPRINCIPALMETHODSTHATARERECOMMENDEDASACONSEQUENCEOFTHEREMARKSABOVEITHEBOUNDARYTAGSYSTEMASMODIFIEDINEXERCISESANDANDIITHEBUDDYSYSTEMHEREAREDYNAMICSTORAGEALLOCATIONRUNNINGTIMETHEAPPROXIMATERESULTSHEREISTHENUMBEROFITERATIONSNECESSARYWHENSEARCHINGFORANAVAILABLEBLOCKTHATISLARGEENOUGHISTHENUMBEROFTIMESABLOCKISSPLITINTWOTHEINITIALDIFFERENCEOFINALGORITHMRANDISTHENUMBEROFTIMESBUDDYBLOCKSAREREUNITEDDURINGALGORITHMSTHESIMULATIONEXPERIMENTSINDICATETHATUNDERTHESTATEDASSUMPTIONSWITHSIZEDISTRIBUTIONSANDTIMECHOSENBETWEENANDWEMAYTAKEONTHEAVERAGETHEAVERAGEVALUESWEREOBSERVEDWHENTHEALMOSTLASTINFIRSTOUTTIMEDISTRIBUTIONWASSUBSTITUTEDLASTINFIRSTOUTALMOSTASEXPLAINEDABOVETHISSHOWSTHATBOTHMETHODSAREQUITEFASTWITHTHEBUDDYSYSTEMSLIGHTLYFASTERINSCASEREMEMBERTHATTHEBUDDYSYSTEMREQUIRESABOUTPERCENTMORESPACEWHENBLOCKSIZESARENOTCONSTRAINEDTOBEPOWERSOFACORRESPONDINGTIMEESTIMATEFORTHEGARBAGECOLLECTIONANDCOMPACTINGALGORITHMOFEXERCISEISABOUTUNITSOFTIMETOLOCATEAFREENODEASSUMINGTHATGARBAGECOLLECTIONOCCURSWHENTHEMEMORYISAPPROXIMATELYHALFFULLANDASSUMINGTHATTHENODESHAVEANAVERAGELENGTHOFWORDSWITHLINKSPERNODETHEPROSANDCONSOFGARBAGECOLLECTIONAREDISCUSSEDINSECTIONWHENTHEMEMORYISNOTHEAVILYLOADEDANDWHENTHEAPPROPRIATERESTRICTIONSAREMETGARBAGECOLLECTIONANDCOMPACTINGISVERYEFFICIENTFOREXAMPLEONTHECOMPUTERTHEGARBAGECOLLECTIONMETHODISFASTERTHANTHEOTHERTWOIFTHEACCESSIBLEITEMSNEVEROCCUPYMORETHANABOUTONETHIRDOFTHETOTALMEMORYSPACEANDIFTHENODESARERELATIVELYSMALLIFTHEASSUMPTIONSUNDERLYINGGARBAGECOLLECTIONAREMETTHEBESTSTRATEGYMAYBETODIVIDETHEPOOLOFMEMORYINTOTWOHALVESANDTODOALLALLOCATIONSEQUENTIALLYWITHINONEHALFINSTEADOFFREEINGBLOCKSASTHEYBECOMEAVAILABLEWESIMPLYWAITUNTILTHECURRENTACTIVEHALFOFMEMORYISFULLTHENWECANCOPYALLACTIVEDATATOTHEOTHERHALFSIMULTANEOUSLYREMOVINGALLHOLESBETWEENBLOCKSWITHAMETHODLIKETHATOFEXERCISETHESIZEOFEACHHALFPOOLMIGHTALSOBEADJUSTEDASWESWITCHFROMONEHALFTOTHEOTHERTHESIMULATIONTECHNIQUESMENTIONEDABOVEWEREAPPLIEDALSOTOSOMEOTHERSTORAGEALLOCATIONALGORITHMSTHEOTHERMETHODSWERESOPOORBYCOMPARISONWITHTHEALGORITHMSOFTHISSECTIONTHATTHEYWILLBEGIVENONLYBRIEFMENTIONHEREASEPARATEAVAILLISTSWEREKEPTFOREACHSIZEASINGLEFREEBLOCKWASOCCASIONALLYSPLITINTOTWOSMALLERBLOCKSWHENNECESSARYBUTNOATTEMPTWASMADETOPUTSUCHBLOCKSTOGETHERAGAINTHEMEMORYMAPBECAMEFRAGMENTEDINTOFINERANDFINERPARTSUNTILITWASINTERRIBLESHAPEASIMPLESCHEMELIKETHISISALMOSTEQUIVALENTTODOINGSEPARATEALLOCATIONINDISJOINTAREASONEAREAFOREACHBLOCKSIZECHECKERBOARDINGFRAGMENTATIONBANATTEMPTWASMADETODOTWOLEVELALLOCATIONTHEMEMORYWASDIVIDEDINTOLARGESECTORSABRUTEFORCEALLOCATIONMETHODWASUSEDTORESERVELARGEBLOCKSOFORRARELYMOREADJACENTSECTORSEACHLARGEBLOCKSUCHASTHISWASSUBDIVIDEDTOMEETSTORAGEREQUESTSUNTILNOMOREROOMWASLEFTWITHINTHECURRENTLARGEBLOCKANDTHENANOTHERLARGEBLOCKWASRESERVEDFORUSEINSUBSEQUENTALLOCATIONSEACHLARGEBLOCKWASRETURNEDTOFREESTORAGEONLYWHENALLSPACEWITHINITBECAMEAVAILABLETHISMETHODALMOSTALWAYSRANOUTOFSTORAGESPACEVERYQUICKLYFRAGMENTATIONALTHOUGHTHISPARTICULARMETHODOFTWOLEVELALLOCATIONWASAFAILUREFORTHEDATACONSIDEREDINTHEAUTHORSSIMULATIONEXPERIMENTSTHEREAREOTHERCIRCUMSTANCESWHICHOCCURNOTINFREQUENTLYINPRACTICEWHENAMULTIPLELEVELALLOCATIONSTRATEGYCANBEBENEFICIALFOREXAMPLEIFARATHERLARGEPROGRAMOPERATESINSEVERALSTAGESWEMIGHTKNOWTHATCERTAINTYPESOFNODESARENEEDEDONLYWITHINACERTAINSUBROUTINESOMEPROGRAMSMIGHTALSOFINDITDESIRABLETOUSEQUITEDIFFERENTALLOCATIONSTRATEGIESFORDIFFERENTCLASSESOFNODESTHEIDEAOFALLOCATINGSTORAGEBYZONESWITHPOSSIBLYDIFFERENTSTRATEGIESEMPLOYEDINEACHZONEANDWITHTHEABILITYTOFREEANENTIREZONEATONCEISDISCUSSEDBYDOUGLASTROSSINCACMFORFURTHEREMPIRICALRESULTSABOUTDYNAMICSTORAGEALLOCATIONSEETHEARTICLESBYBRANDELLCACMPWPURDOMSMSTIGLERANDTOCHEAMBITBHMARGOLINRPPARMELEEANDMSCHATZOFFIBMSYSTEMSJJACAMPBELLCOMPJJOHNESHORECACMNORMANRNIELSENCACMEDISTRIBUTEDFITDISTRIBUTEDFITIFTHEDISTRIBUTIONOFBLOCKSIZESISKNOWNINADVANCEANDIFEACHBLOCKPRESENTISEQUALLYLIKELYTOBETHENEXTONEFREEDREGARDLESSOFWHENITWASALLOCATEDWECANUSEATECHNIQUETHATHASSUBSTANTIALLYBETTERMEMORYUTILIZATIONTHANTHEGENERALPURPOSETECHNIQUESDESCRIBEDSOFARBYFOLLOWINGTHESUGGESTIONSOFEGCOFFMANJRANDFTLEIGHTONJCOMPUTERANDSYSTEMSCICOFFMANLEIGHTONTHEIRDISTRIBUTEDFITMETHODWORKSBYPARTITIONINGMEMORYINTOROUGHLYSLOTSWHEREISTHEDESIREDMAXIMUMNUMBEROFBLOCKSTOBEHANDLEDINSTEADYSTATEEACHSLOTHASAFIXEDSIZEALTHOUGHDIFFERENTSLOTSMAYHAVEDIFFERENTSIZESTHEMAINPOINTISTHATANYGIVENSLOTHASFIXEDBOUNDARIESANDITWILLEITHERBEEMPTYORCONTAINASINGLEALLOCATEDBLOCKTHEFIRSTSLOTSINCOFFMANANDLEIGHTONSSCHEMEARELAIDOUTACCORDINGTOTHEASSUMEDDISTRIBUTIONOFSIZESWHILETHELASTSLOTSALLHAVETHEMAXIMUMSIZEFOREXAMPLEIFWEASSUMETHATTHEBLOCKSIZESWILLBEUNIFORMLYDISTRIBUTEDBETWEENANDANDIFWEEXPECTTOHANDLESUCHBLOCKSWEWOULDDIVIDETHEMEMORYINTOSLOTSOFEACHSIZEFOLLOWEDBYANOVERFLOWAREATHATCONTAINSBLOCKSOFSIZEWHENTHESYSTEMISOPERATINGATFULLCAPACITYWEEXPECTITTOHANDLEBLOCKSOFAVERAGESIZEOCCUPYINGLOCATIONSTHISISTHEAMOUNTOFSPACEWEHAVEALLOCATEDTOTHEFIRSTSLOTSWEHAVEALSOSETASIDEANADDITIONALLOCATIONSTOHANDLETHEEFFECTSOFRANDOMVARIATIONSTHISADDITIONALOVERHEADAMOUNTSTOOFTHETOTALSPACERATHERTHANACONSTANTMULTIPLEOFASINTHEBUDDYSYSTEMSOITBECOMESANEGLIGIBLEFRACTIONWHENINOUREXAMPLEHOWEVERITSTILLAMOUNTSTOABOUTOFTHETOTALALLOCATIONTHESLOTSSHOULDBEARRANGEDINORDERSOTHATTHESMALLERSLOTSPRECEDETHELARGERONESGIVENTHISARRANGEMENTWECANALLOCATEBLOCKSBYUSINGEITHERTHEFIRSTFITORTHEBESTFITTECHNIQUEBOTHMETHODSAREEQUIVALENTINTHISCASEBECAUSETHESLOTSIZESAREORDEREDTHEEFFECTUNDEROURASSUMPTIONSISTOSTARTSEARCHINGATANESSENTIALLYRANDOMPLACEAMONGTHEFIRSTSLOTSWHENEVERANEWALLOCATIONREQUESTCOMESINANDTOCONTINUEUNTILWEFINDANEMPTYSLOTIFTHESTARTINGSLOTFOREACHSEARCHISTRULYRANDOMBETWEENANDWEWILLNOTHAVETOINVADETHEOVERFLOWAREAVERYOFTENINDEEDIFWEINSERTEXACTLYITEMSSTARTINGATRANDOMSLOTSOVERFLOWWILLOCCURONLYTIMESONTHEAVERAGETHEREASONISTHATWECANCOMPARETHISALGORITHMTOHASHINGWITHLINEARPROBINGALGORITHMLPWHICHHASTHESAMEBEHAVIORANALYSISOFALGORITHMSEXCEPTTHATTHESEARCHFORANEMPTYCELLWRAPSAROUNDFROMTOINSTEADOFGOINGINTOANOVERFLOWAREATHEANALYSISOFALGORITHMLPINTHEOREMLPSTATSSHOWSTHATWHENITEMSHAVEBEENINSERTEDTHEAVERAGEDISPLACEMENTOFEACHITEMFROMITSHASHADDRESSISBYCIRCULARSYMMETRYTHISAVERAGEISEASILYSEENTOBETHESAMEASTHEAVERAGENUMBEROFTIMESASEARCHGOESFROMSLOTTOSLOTFOREACHOVERFLOWSINTHEDISTRIBUTEDFITMETHODCORRESPONDTOSEARCHESTHATGOFROMSLOTTOSLOTEXCEPTTHATOURSITUATIONISEVENBETTERBECAUSEWEAVOIDSOMECONGESTIONBYNOTWRAPPINGAROUNDTHEREFOREFEWERTHANOVERFLOWSWILLOCCURONTHEAVERAGETHISANALYSISDOESNOTTAKEACCOUNTOFDELETIONSWHICHPRESERVETHEASSUMPTIONSOFALGORITHMLPONLYIFWEMOVEBLOCKSBACKWHENDELETINGANOTHERBLOCKTHATINTERVENEDBETWEENTHEIRSTARTINGSLOTSANDTHEIRALLOCATEDSLOTSSEEALGORITHMLPDELAGAINHOWEVERMOVINGTHEMBACKWOULDONLYINCREASETHECHANCEOFOVERFLOWOURANALYSISALSOFAILSTOACCOUNTFORTHEEFFECTOFHAVINGMORETHANBLOCKSPRESENTATONCETHISCANHAPPENIFWEASSUMEONLYTHATTHEARRIVALTIMEBETWEENBLOCKSISABOUTONETHOFTHERESIDENCETIMEFORTHECASEOFMORETHANBLOCKSWENEEDTOEXTENDTHEANALYSISOFALGORITHMLPBUTCOFFMANANDLEIGHTONPROVEDTHATTHEOVERFLOWAREAWILLALMOSTNEVERNEEDMORETHANSLOTSTHEPROBABILITYOFRUNNINGOFFTHEENDISLESSTHANFORALLINOUREXAMPLETHESTARTINGSLOTFORTHESEARCHDURINGANALLOCATIONISNOTUNIFORMAMONGSLOTSITISINSTEADUNIFORMAMONGSLOTSBECAUSETHEREARESLOTSOFEACHSIZEBUTTHISDEVIATIONFROMTHERANDOMMODELCONSIDEREDINTHEPREVIOUSPARAGRAPHMAKESOVERFLOWEVENLESSLIKELYTHANPREDICTEDALLBETSAREOFFOFCOURSEIFTHEASSUMPTIONSABOUTBLOCKSIZEDISTRIBUTIONANDOCCUPANCYTIMEAREVIOLATEDLEIGHTONCOFFMANDISTRIBUTEDFITFOVERFLOWWHATDOWEDOWHENNOMOREROOMISAVAILABLESUPPOSETHEREISAREQUESTFORSAYCONSECUTIVEWORDSWHENALLAVAILABLEBLOCKSARETOOSMALLTHEFIRSTTIMETHISHAPPENSTHEREUSUALLYAREMORETHANAVAILABLELOCATIONSPRESENTBUTTHEYARENOTCONSECUTIVECOMPACTINGMEMORYTHATISMOVINGSOMEOFTHELOCATIONSTHATAREINUSESOTHATALLAVAILABLELOCATIONSAREBROUGHTTOGETHERWOULDMEANTHATWECOULDCONTINUEPROCESSINGBUTCOMPACTINGISSLOWANDITREQUIRESADISCIPLINEDUSEOFPOINTERSMOREOVERTHEVASTMAJORITYOFCASESINWHICHTHEFIRSTFITMETHODRUNSOUTOFROOMWILLSOONTHEREAFTERRUNCOMPLETELYOUTOFSPACEANYWAYNOMATTERHOWMUCHCOMPACTINGANDRECOMPACTINGISDONETHEREFOREITISGENERALLYNOTWORTHWHILETOWRITEACOMPACTINGPROGRAMEXCEPTUNDERSPECIALCIRCUMSTANCESINCONNECTIONWITHGARBAGECOLLECTIONASINEXERCISEIFOVERFLOWISEXPECTEDTOOCCURSOMEMETHODFORREMOVINGITEMSFROMMEMORYANDSTORINGTHEMONANEXTERNALMEMORYDEVICECANBEUSEDWITHPROVISIONFORBRINGINGTHEINFORMATIONBACKAGAINWHENITISNEEDEDTHISIMPLIESTHATALLPROGRAMSREFERRINGTOTHEDYNAMICMEMORYAREAMUSTBESEVERELYRESTRICTEDWITHREGARDTOTHEALLOWABLEREFERENCESTHEYMAKETOOTHERBLOCKSANDSPECIALCOMPUTERHARDWAREFOREXAMPLEINTERRUPTONABSENCEOFDATAORAUTOMATICPAGINGISGENERALLYREQUIREDFOREFFICIENTOPERATIONUNDERTHESECONDITIONSSOMEDECISIONPROCEDUREISNECESSARYTODECIDEWHICHBLOCKSARETHEMOSTLIKELYCANDIDATESFORREMOVALONEIDEAISTOMAINTAINADOUBLYLINKEDLISTLEASTRECENTLYUSEDOFTHERESERVEDBLOCKSINWHICHABLOCKISMOVEDUPTOTHEFRONTOFTHELISTEACHTIMEITISACCESSEDTHENTHEBLOCKSAREEFFECTIVELYSORTEDINORDEROFTHEIRLASTACCESSANDTHEBLOCKATTHEREAROFTHELISTISTHEONETOREMOVEFIRSTASIMILAREFFECTCANBEACHIEVEDMORESIMPLYBYPUTTINGTHERESERVEDBLOCKSINTOACIRCULARLISTANDINCLUDINGARECENTLYUSEDBITINEACHBLOCKTHELATTERISSETTOWHENEVERTHEBLOCKISRECENTLYUSEDBITACCESSEDWHENITISTIMETOREMOVEABLOCKAPOINTERMOVESALONGTHECIRCULARLISTRESETTINGALLRECENTLYUSEDBITSTOUNTILFINDINGABLOCKTHATHASNOTBEENUSEDSINCETHELASTTIMETHEPOINTERREACHEDTHISPARTOFTHECIRCLEJMROBSONHASSHOWNJACMTHATDYNAMICSTORAGEALLOCATIONSTRATEGIESTHATNEVERRELOCATERESERVEDBLOCKSCANNOTPOSSIBLYBEGUARANTEEDTOUSEMEMORYEFFICIENTLYTHEREWILLALWAYSBEPATHOLOGICALCIRCUMSTANCESINWHICHTHEMETHODBREAKSDOWNFOREXAMPLEEVENWHENBLOCKSARERESTRICTEDTOBEOFSIZESANDOVERFLOWMIGHTOCCURWITHTHEMEMORYONLYABOUTFULLNOMATTERWHATALLOCATIONALGORITHMISUSEDROBSONSINTERESTINGRESULTSARESURVEYEDINEXERCISESANDINEXERCISESWHEREHEHASSHOWNTHATTHEBESTFITMETHODHASAVERYBADWORSTCASEBYCOMPARISONWITHFIRSTFITGFORFURTHERREADINGACOMPREHENSIVESURVEYANDCRITICALREVIEWOFDYNAMICSTORAGEALLOCATIONTECHNIQUESBASEDONMANYMOREYEARSOFEXPERIENCETHANWEREAVAILABLETOTHEAUTHORWHENTHEMATERIALABOVEWASWRITTENHASBEENCOMPILEDBYPAULRWILSONMARKSJOHNSTONEMICHAELNEELYANDDAVIDBOLESLECTURENOTESINCOMPUTERSCIENCEEXERCISESWHATSIMPLIFICATIONSCANBEMADETOTHERESERVATIONANDRESERVATIONLIBERATIONLIBERATIONALGORITHMSOFTHISSECTIONIFSTORAGEREQUESTSALWAYSAPPEARINALASTINFIRSTOUTMANNERTHATISIFNORESERVEDBLOCKISFREEDUNTILAFTERALLBLOCKSTHATWERERESERVEDSUBSEQUENTLYHAVEALREADYBEENFREEDINSUCHFORTUITOUSCIRCUMSTANCESASTACKLIKEOPERATIONMAYBEUSEDASFOLLOWSLETTHEMEMORYPOOLAREABELOCATIONSTHROUGHANDLETAVAILPOINTTOTHELOWESTFREELOCATIONTORESERVENWORDSREPORTFAILUREIFOTHERWISESETTOFREETHESENWORDSJUSTSETSIMILARLYCYCLICQUEUELIKEOPERATIONISAPPROPRIATEFORAFIRSTINFIRSTOUTDISCIPLINEOPTNODESIZEEWOLMANSUPPOSETHATWEWANTTOCHOOSEAFIXEDNODESIZEFORVARIABLELENGTHITEMSANDSUPPOSEALSOTHATWHENEACHNODEHASLENGTHANDWHENANITEMHASLENGTHITTAKESNODESTOSTORETHISITEMHEREISACONSTANTSIGNIFYINGTHATWORDSOFEACHNODECONTAINCONTROLINFORMATIONSUCHASALINKTOTHENEXTNODEIFTHEAVERAGELENGTHOFANITEMISWHATCHOICEOFMINIMIZESTHEAVERAGEAMOUNTOFSTORAGESPACEREQUIREDASSUMETHATTHEAVERAGEVALUEOFISEQUALTOFORANYFIXEDASVARIESTHEAMOUNTOFSTORAGESPACEFORANITEMOFLENGTHISWHICHHASTHEAVERAGEVALUEWHEREISASSUMEDTOBEINDEPENDENTOFTHISEXPRESSIONISAMINIMUMFORREALVALUESOFWHENSOCHOOSETOBETHEINTEGERJUSTABOVEORJUSTBELOWTHISVALUEWHICHEVERGIVESTHELOWESTVALUEOFFOREXAMPLEIFANDWEWOULDCHOOSEORBOTHAREEQUALLYGOODFORMUCHGREATERDETAILABOUTTHISPROBLEMSEEJACMBYCOMPUTERSIMULATIONCOMPARETHEBESTFITFIRSTFITANDBESTFITFIRSTFITWORSTFITWORSTFITMETHODSOFSTORAGEALLOCATIONINTHELATTERMETHODTHELARGESTAVAILABLEBLOCKISALWAYSCHOSENISTHEREANYSIGNIFICANTDIFFERENCEINTHEMEMORYUSAGEWRITEAPROGRAMFORALGORITHMAPAYINGSPECIALATTENTIONTOMAKINGTHEINNERLOOPFASTASSUMETHATTHESIZEFIELDISTHELINKFIELDISANDSUPPOSEITISKNOWNTHATNISALWAYSORMOREINALGORITHMAWOULDITBEAGOODIDEATOSETINTHEMODIFIEDSTEPAPROBABLYNOTTHEUNAVAILABLESTORAGEAREAJUSTBEFORELOCATIONPWILLSUBSEQUENTLYBECOMEAVAILABLEANDITSLENGTHWILLBEINCREASEDBYTHEAMOUNTKANINCREASEOFWOULDNOTBENEGLIGIBLENEXTFITNEXTFITAFTERALGORITHMAHASBEENUSEDREPEATEDLYTHEREWILLBEASTRONGTENDENCYFORBLOCKSOFSMALLSIZETOREMAINATTHEFRONTOFTHEAVAILLISTSOTHATITWILLOFTENBENECESSARYTOSEARCHQUITEFARINTOTHELISTBEFOREFINDINGABLOCKOFLENGTHNORMOREFOREXAMPLENOTICEHOWTHESIZEOFTHEBLOCKSESSENTIALLYINCREASESINFIGFIGFORBOTHRESERVEDANDFREEBLOCKSFROMTHEBEGINNINGOFMEMORYTOTHEENDTHEAVAILLISTUSEDWHILEFIGFIGWASBEINGPREPAREDWASKEPTSORTEDBYORDEROFLOCATIONASREQUIREDBYALGORITHMBCANYOUSUGGESTAWAYTOMODIFYALGORITHMASOTHATASHORTBLOCKSWONTTENDTOACCUMULATEINAPARTICULARAREAANDBTHEAVAILLISTMAYSTILLBEKEPTINORDEROFINCREASINGMEMORYLOCATIONSFORPURPOSESOFALGORITHMSLIKEALGORITHMBTHEIDEAISTOTRYTOSEARCHINDIFFERENTPARTSOFTHEAVAILLISTEACHTIMEWECANUSEAROVINGPOINTERCALLEDROVERFOREXAMPLEWHICHISTREATEDASFOLLOWSINSTEPASETAFTERSTEPASETIFOTHERWISESETINSTEPAWHENTHEFIRSTTIMEDURINGAPARTICULAREXECUTIONOFALGORITHMASETANDREPEATSTEPAWHENTHESECONDTIMETHEALGORITHMTERMINATESUNSUCCESSFULLYINTHISWAYROVERWILLTENDTOPOINTTOARANDOMSPOTINTHEAVAILLISTANDTHESIZESWILLBEMOREBALANCEDATTHEBEGINNINGOFTHEPROGRAMSETITISALSONECESSARYTOSETROVERTOLOCAVAILEVERYWHEREELSEINTHEPROGRAMWHERETHEBLOCKWHOSEADDRESSEQUALSTHECURRENTSETTINGOFROVERISTAKENOUTOFTHEAVAILLISTSOMETIMESHOWEVERITISUSEFULTOHAVESMALLBLOCKSATTHEBEGINNINGASINTHESTRICTFIRSTFITMETHODFOREXAMPLEWEMIGHTWANTTOKEEPASEQUENTIALSTACKATTHEHIGHENDOFMEMORYINSUCHCASESWECANREDUCETHESEARCHTIMEBYUSINGTREESASSUGGESTEDINEXERCISETREESFORMALLOCTHEEXAMPLESHOWSTHATFIRSTFITCANSOMETIMESBEDEFINITELYSUPERIORTOBESTFITGIVEASIMILAREXAMPLETHATSHOWSACASEWHEREBESTFITISSUPERIORTOFIRSTFITWITHREQUESTSOFSIZESANEXAMPLEWHEREWORSTFITSUCCEEDSWHILEBESTFITFAILSHASBEENCONSTRUCTEDBYRJWEILANDSHOWHOWTOMODIFYALGORITHMAINASIMPLEWAYTOOBTAINANALGORITHMFORTHEBESTFITMETHODINSTEADOFFIRSTFITINSTEPAALSOSETINSTEPAIFGOTOAINSTEPAGOTOAINSTEADOFTOAADDNEWSTEPSASFOLLOWSAABETTERFITIFSETANDTHENSETANDRETURNTOAAANYFOUNDIFTHEALGORITHMTERMINATESUNSUCCESSFULLYOTHERWISESETANDGOTOABESTFITSPEEDUPINWHATWAYSCOULDARESERVATIONALGORITHMBEDESIGNEDTOUSETHEBESTFITMETHODWITHOUTSEARCHINGTHROUGHTHEWHOLEAVAILLISTTRYTOTHINKOFWAYSTHATCUTDOWNTHENECESSARYSEARCHASMUCHASPOSSIBLEOBVIOUSLYIFWEARESOLUCKYASTOFINDWEHAVEABESTFITANDITISNOTNECESSARYTOSEARCHFARTHERWHENTHEREAREONLYVERYFEWDIFFERENTBLOCKSIZESTHISOCCURSRATHEROFTENIFABOUNDARYTAGMETHODLIKEALGORITHMCISBEINGUSEDITISPOSSIBLETOMAINTAINTHEAVAILLISTINSORTEDORDERBYSIZESOTHELENGTHOFSEARCHCOULDBECUTDOWNTOHALFTHELENGTHOFTHELISTORLESSONTHEAVERAGEBUTTHEBESTSOLUTIONISTOMAKETHEAVAILLISTINTOABALANCEDTREESTRUCTUREASDESCRIBEDINSECTIONIFITISEXPECTEDTOBELONGSHOWHOWTOMODIFYALGORITHMBSOTHATTHEBLOCKOFNCONSECUTIVECELLSBEGINNINGATLOCATIONPISMADEAVAILABLEWITHOUTASSUMINGTHATEACHOFTHESENCELLSISCURRENTLYUNAVAILABLEASSUMEINFACTTHATTHEAREABEINGFREEDMAYACTUALLYOVERLAPSEVERALBLOCKSTHATAREALREADYFREEMAKETHEFOLLOWINGCHANGESSTEPBFORREADATTHEBEGINNINGOFSTEPBINSERTIFANDSETANDREPEATSTEPBSTEPBFORREADANDFORREADMSHOWTHATTHEIMPROVEMENTTOALGORITHMASUGGESTEDINTHEANSWERTOEXERCISECANALSOBEUSEDTOLEADTOASLIGHTIMPROVEMENTINALGORITHMBWHICHCUTSTHEAVERAGELENGTHOFSEARCHFROMHALFTHELENGTHOFTHEAVAILLISTTOONETHIRDTHISLENGTHASSUMETHATTHEBLOCKBEINGFREEDWILLBEINSERTEDINTOARANDOMPLACEWITHINTHESORTEDAVAILLISTIFPISGREATERTHANROVERWECANSETINSTEADOFINSTEPBIFTHEREAREENTRIESINTHEAVAILLISTTHEAVERAGENUMBEROFITERATIONSOFSTEPBISFOREXAMPLEIFWEGETEQUALLYPROBABLESITUATIONSWHEREPANDPPOINTTOTHETWOEXISTINGAVAILABLEBLOCKSTHISCHARTSHOWSTHENUMBEROFITERATIONSNEEDEDINEACHCASETHEAVERAGEISMODIFYALGORITHMASOTHATITFOLLOWSTHEBOUNDARYTAGCONVENTIONSOFBOUNDARYTAGMETHODUSESTHEMODIFIEDSTEPADESCRIBEDINTHETEXTANDALSOINCORPORATESTHEIMPROVEMENTOFEXERCISEAASETAIFANDSETANDREPEATSTEPAIFANDTHEALGORITHMTERMINATESUNSUCCESSFULLYAIFGOTOAOTHERWISESETANDRETURNTOAASETIFWHEREISACONSTANTSETOTHERWISESETLFINALLYSETLSIZELWRITEAPROGRAMFORTHEALGORITHMOFEXERCISEWHATDIFFERENCEWOULDITMAKETOALGORITHMCANDTHEALGORITHMOFEXERCISEAIFTHESIZEFIELDWERENOTPRESENTINTHELASTWORDOFAFREEBLOCKORBIFTHESIZEFIELDWERENOTPRESENTINTHEFIRSTWORDOFARESERVEDBLOCKATHISFIELDISNEEDEDTOLOCATETHEBEGINNINGOFTHEBLOCKINSTEPCITCOULDBEREPLACEDPERHAPSTOADVANTAGEBYALINKTOTHEFIRSTWORDOFTHEBLOCKSEEALSOEXERCISEBTHISFIELDISNEEDEDBECAUSEWESOMETIMESNEEDTORESERVEMORETHANNWORDSFOREXAMPLEIFANDTHEAMOUNTRESERVEDMUSTBEKNOWNWHENTHEBLOCKISSUBSEQUENTLYFREEDSHOWHOWTOSPEEDUPALGORITHMCATTHEEXPENSEOFASLIGHTLYLONGERPROGRAMBYNOTCHANGINGANYMORELINKSTHANABSOLUTELYNECESSARYINEACHOFFOURCASESDEPENDINGONWHETHERAREPLUSORMINUSWRITEAPROGRAMFORALGORITHMCINCORPORATINGTHEIDEASOFEXERCISEBOUNDARYTAGMETHODWHATSHOULDTHECONTENTSOFLOCAVAILANDBEINWHENTHEREARENOAVAILABLEBLOCKSPRESENTBOTHLINKFIELDSEQUALTOLOCAVAILFIGURESFIGANDFIGWEREOBTAINEDUSINGTHESAMEDATAANDESSENTIALLYTHESAMEALGORITHMSALGORITHMSAANDBEXCEPTTHATFIGFIGWASPREPAREDBYMODIFYINGALGORITHMATOCHOOSEBESTFITINSTEADOFFIRSTFITWHYDIDTHISCAUSEFIGFIGTOHAVEALARGEAVAILABLEAREAINTHEHIGHERLOCATIONSOFMEMORYWHILEINFIGFIGTHEREISALARGEAVAILABLEAREAINTHELOWERLOCATIONSALGORITHMARESERVESTHEUPPERENDOFALARGEBLOCKWHENSTORAGEISCOMPLETELYAVAILABLETHEFIRSTFITMETHODACTUALLYBEGINSBYRESERVINGTHEHIGHORDERLOCATIONSBUTONCETHESEBECOMEAVAILABLEAGAINTHEYARENOTRERESERVEDSINCEAFITISUSUALLYFOUNDALREADYINTHELOWERLOCATIONSTHUSTHEINITIALLARGEBLOCKATTHELOWERENDOFMEMORYQUICKLYDISAPPEARSWITHFIRSTFITALARGEBLOCKRARELYISTHEBESTFITHOWEVERSOTHEBESTFITMETHODLEAVESALARGEBLOCKATTHEBEGINNINGOFMEMORYSUPPOSETHATBLOCKSOFMEMORYHAVETHEFORMOFBUTWITHOUTTHETAGORSIZEFIELDSREQUIREDINTHELASTWORDOFTHEBLOCKSUPPOSEFURTHERTHATTHEFOLLOWINGSIMPLEALGORITHMISBEINGUSEDTOMAKEARESERVEDBLOCKFREEAGAINTHISALGORITHMDOESNOTHINGABOUTCOLLAPSINGADJACENTAREASTOGETHERDESIGNARESERVATIONALGORITHMSIMILARTOALGORITHMATHATDOESTHENECESSARYCOLLAPSINGOFADJACENTFREEBLOCKSWHILESEARCHINGTHEAVAILLISTANDATTHESAMETIMEAVOIDSANYUNNECESSARYFRAGMENTATIONOFMEMORYASINANDUSETHEALGORITHMOFEXERCISEEXCEPTDELETETHEREFERENCESTOANDFROMSTEPAALSOINSERTTHEFOLLOWINGNEWSTEPBETWEENSTEPSAANDAAASETIFPROCEEDTOSTEPAOTHERWISESETIFSETREPEATSTEPACLEARLYTHESITUATIONOFCANTOCCURHERETHEONLYREALEFFECTONSTORAGEALLOCATIONISTHATTHESEARCHHEREWILLTENDTOBELONGERTHANINEXERCISEANDSOMETIMESKWILLBELESSTHANALTHOUGHTHEREISREALLYANOTHERAVAILABLEBLOCKPRECEDINGTHISONETHATWEDONOTKNOWABOUTANALTERNATIVEISTOTAKETHECOLLAPSINGOUTOFTHEINNERLOOPAANDTODOTHECOLLAPSINGONLYINSTEPABEFORETHEFINALALLOCATIONORINTHEINNERLOOPWHENTHEALGORITHMWOULDOTHERWISEHAVETERMINATEDUNSUCCESSFULLYTHISALTERNATIVEREQUIRESASIMULATIONSTUDYTOSEEIFITISANIMPROVEMENTORNOTTHISMETHODWITHAFEWREFINEMENTSHASPROVEDTOBEQUITESATISFACTORYINTHEIMPLEMENTATIONSOFANDTEXMETAFONTSEETHEPROGRAMADDISONWESLEYWHYISITDESIRABLETOHAVETHEAVAILLISTSINTHEBUDDYSYSTEMDOUBLYLINKEDINSTEADOFSIMPLYHAVINGSTRAIGHTLINEARLISTSBUDDYSYSTEMWHENABUDDYISFOUNDTOBEAVAILABLEDURINGTHECOLLAPSINGLOOPWEWANTTOREMOVETHATBLOCKFROMITSAVAILLISTBUTWEDONOTKNOWWHICHLINKSTOUPDATEUNLESSIWEDOAPOSSIBLYLONGSEARCHORIITHELISTISDOUBLYLINKEDEXAMINETHERATIOWHEREISTHESUMOFTHEFIRSTTERMSOFANDISTHESUMOFTHEFIRSTTERMSOFASGOESTOINFINITYIFWHEREISANDISTHERATIOFORLARGEISESSENTIALLYWHICHTAKESITSMINIMUMVALUEWHENANDANDITSMAXIMUMVALUEWHENSOAPPROACHESNOLIMITITOSCILLATESBETWEENTHESETWOEXTREMESTHEAVERAGINGMETHODSOFSECTIONDOHOWEVERYIELDANAVERAGERATIOOFTHETEXTREPEATEDLYSTATESTHATTHEBUDDYSYSTEMALLOWSONLYBLOCKSOFSIZETOBEUSEDANDEXERCISESHOWSTHISCANLEADTOASUBSTANTIALINCREASEINTHESTORAGEREQUIREDBUTIFANWORDBLOCKISNEEDEDINCONNECTIONWITHTHEBUDDYSYSTEMWHYCOULDNTWEFINDAWORDBLOCKANDDIVIDEITINTOANWORDPIECETOGETHERWITHTWOFREEBLOCKSOFSIZESANDTHISIDEAREQUIRESATAGFIELDINSEVERALWORDSOFTHEWORDBLOCKNOTONLYINTHEFIRSTWORDITISAWORKABLEIDEAIFTHOSEEXTRATAGBITSCANBESPAREDANDITWOULDAPPEARTOBEESPECIALLYSUITABLEFORUSEINCOMPUTERHARDWAREHARDWAREORIENTEDALGORITHMWHATISTHEBINARYADDRESSOFTHEBUDDYOFTHEBLOCKOFSIZEWHOSEBINARYADDRESSISWHATWOULDITBEIFTHEBLOCKWEREOFSIZEINSTEADOFACCORDINGTOTHEALGORITHMINTHETEXTTHELARGESTBLOCKOFSIZEHASNOBUDDYSINCEITREPRESENTSALLOFSTORAGEWOULDITBECORRECTTODEFINENAMELYTOMAKETHISBLOCKITSOWNBUDDYANDTHENTOAVOIDTESTINGINSTEPSTHISWOULDINTRODUCEABUGINTHEPROGRAMWEMAYGETTOSTEPSWHENSINCESMAYRETURNTOSTOMAKEITWORKADDAFTERINSTEPSITISEASIERTOASSUMEINSTEADTHATMCRITICIZETHEFOLLOWINGIDEADYNAMICSTORAGEALLOCATIONUSINGTHEBUDDYSYSTEMWILLNEVERRESERVEABLOCKOFSIZEINPRACTICALSITUATIONSSINCETHISWOULDFILLTHEWHOLEMEMORYANDINGENERALTHEREISAMAXIMUMSIZEFORWHICHNOBLOCKSOFGREATERSIZEWILLEVERBERESERVEDTHEREFOREITISAWASTEOFTIMETOSTARTWITHSUCHLARGEBLOCKSAVAILABLEANDTOCOMBINEBUDDIESINALGORITHMSWHENTHECOMBINEDBLOCKHASASIZELARGERTHANTHEIDEAISABSOLUTELYCORRECTCRITICISMNEEDNOTBENEGATIVETHELISTHEADSAVAILMAYBEELIMINATEDFORTHEALGORITHMSOFTHETEXTMAYBEUSEDIFISCHANGEDTOINSTEPSRSTHEINITIALCONDITIONSANDSHOULDBECHANGEDTOINDICATEBLOCKSOFSIZEINSTEADOFONEBLOCKOFSIZEEXPLAINHOWTHEBUDDYSYSTEMCOULDBEUSEDFORDYNAMICSTORAGEALLOCATIONINMEMORYLOCATIONSTHROUGHEVENWHENMDOESNOTHAVETHEFORMASREQUIREDINTHETEXTUSINGTHEBINARYREPRESENTATIONOFMWECANEASILYMODIFYTHEINITIALCONDITIONSSOTHATALLMEMORYLOCATIONSAREDIVIDEDINTOBLOCKSWHOSESIZEISAPOWEROFTWOWITHBLOCKSINDECREASINGORDEROFSIZEINALGORITHMSTAGPSHOULDBEREGARDEDASWHENEVERWRITEAPROGRAMFORALGORITHMRANDDETERMINEITSRUNNINGTIMEJASSUMETHATTHEREISANAUXILIARYTABLEJSTOREDINLOCATIONFORASSUMEFURTHERTHATANDREPRESENTTAGSOFANDANDTHATJBUTMISASENTINELMIXXORASSUMETHATISABINARYCOMPUTERWITHANEWOPERATIONCODEXORDEFINEDASFOLLOWSUSINGTHENOTATIONOFSECTIONMIXEXTENSIONSXOREXCLUSIVEORFULLWORDLOGICALOPERATORFOREACHBITPOSITIONINLOCATIONMTHATEQUALSTHECORRESPONDINGBITPOSITIONINREGISTERAISCOMPLEMENTEDCHANGEDFROMTOORTOTHESIGNOFRAISUNAFFECTEDTHEEXECUTIONTIMEISWRITEAPROGRAMFORALGORITHMSANDDETERMINEITSRUNNINGTIMEASSUMEMCOULDTHEBUDDYSYSTEMDOWITHOUTTHETAGBITINEACHRESERVEDBLOCKYESBUTONLYATTHEEXPENSEOFSOMESEARCHINGORBETTERANADDITIONALTABLEOFTAGBITSPACKEDSOMEHOWITISTEMPTINGTOSUGGESTTHATBUDDIESNOTBEJOINEDTOGETHERDURINGALGORITHMSBUTONLYINALGORITHMRIFTHEREISNOBLOCKLARGEENOUGHTOMEETTHEREQUESTBUTTHATWOULDPROBABLYLEADTOABADLYFRAGMENTEDMEMORYMANALYZETHEAVERAGEBEHAVIOROFALGORITHMSRANDSGIVENREASONABLEDISTRIBUTIONSFORTHESEQUENCEOFSTORAGEREQUESTSMCANASTORAGEALLOCATIONSYSTEMANALOGOUSTOTHEBUDDYSYSTEMBEDESIGNEDUSINGTHEFIBONACCISEQUENCEINSTEADOFPOWERSOFTWOTHUSWEFIBONACCIBUDDYSYSTEMMIGHTSTARTWITHAVAILABLEWORDSANDSPLITANAVAILABLEBLOCKOFWORDSINTOTWOBUDDIESOFRESPECTIVELENGTHSANDSEEDAVIDLRUSSELLSICOMPDETERMINEIFITEXISTSWHEREISTHEMEANVALUEOFINARANDOMSEQUENCEDEFINEDASFOLLOWSLASTINFIRSTOUTALMOSTGIVENTHEVALUESOFFORLETBECHOSENUNIFORMLYFROMWHEREANDIFIFNOTESOMELIMITEDEMPIRICALTESTSINDICATETHATMIGHTBEAPPROXIMATELYBUTTHISISPROBABLYNOTVERYACCURATESTEVENCRAINPOINTSOUTTHATTHEMETHODALWAYSFREESALLBLOCKSANDSTARTSAFRESHBEFOREUNITSOFTIMEHAVEELAPSEDHENCETHESTATEDLIMITCERTAINLYEXISTSPROOFLETSOTHATLETANDANDFORIFTHENTHEREFOREANDWEMUSTHAVEBEFOREREACHINGTIMEGCANDCOMPACTGARBAGECOLLECTIONANDCOMPACTINGASSUMETHATMEMORYLOCATIONSAREBEINGUSEDASASTORAGEPOOLFORNODESOFVARYINGSIZESHAVINGTHEFOLLOWINGFORMTHEFIRSTWORDOFNODEPCONTAINSTHEFIELDSTHENODEIMMEDIATELYFOLLOWINGNODEPINMEMORYISNODEASSUMETHATTHEONLYFIELDSINNODEPTHATAREUSEDASLINKSTOOTHERNODESARELINKLINKLINKANDEACHOFTHESELINKFIELDSISEITHERORTHEADDRESSOFTHEFIRSTWORDOFANOTHERNODEFINALLYASSUMETHATTHEREISONEFURTHERLINKVARIABLEINTHEPROGRAMCALLEDUSEANDITPOINTSTOONEOFTHENODESDESIGNANALGORITHMTHATIDETERMINESALLNODESACCESSIBLEDIRECTLYORINDIRECTLYFROMTHEVARIABLEUSEIIMOVESTHESENODESINTOMEMORYLOCATIONSTHROUGHFORSOMEKCHANGINGALLLINKSSOTHATSTRUCTURALRELATIONSHIPSAREPRESERVEDANDIIISETSFOREXAMPLECONSIDERTHEFOLLOWINGCONTENTSOFMEMORYWHEREINFOLDENOTESTHECONTENTSOFLOCATIONLEXCLUDINGLINKLGGCLEARLINKSSETANDREPEATTHEOPERATIONUNTILTHISMERELYSETSTHELINKFIELDINTHEFIRSTWORDOFEACHNODETOWEMAYASSUMEINMOSTCASESTHATTHISSTEPISUNNECESSARYSINCELINKPISSETTOINSTEPGBELOWANDITCANBESETTOBYTHESTORAGEALLOCATORGINITIALIZEMARKINGPHASESETTOPPOINTSTOTHETOPOFASTACKASINALGORITHMHEADMARKGPOPUPSTACKSETIFGOTOGGPUTNEWLINKSONSTACKFORDOTHEFOLLOWINGOPERATIONSSETPKTHENIFANDSETTHENGOBACKTOGGINITIALIZENEXTPHASENOWANDTHEMARKINGPHASEHASBEENCOMPLETEDSOTHATTHEFIRSTWORDOFEACHACCESSIBLENODEHASANONNULLLINKOURNEXTGOALISTOCOMBINEADJACENTINACCESSIBLENODESFORSPEEDINLATERSTEPSANDTOASSIGNNEWADDRESSESTOTHEACCESSIBLENODESSETLOCATIONAVAILISBEINGUSEDASASENTINELTOSIGNIFYTHEENDOFALOOPINSUBSEQUENTPHASESGASSIGNNEWADDRESSESIFGOTOGOTHERWISEIFGOTOGOTHERWISESETANDREPEATTHISSTEPGCOLLAPSEAVAILABLEAREASIFPSIZEPINCREASESIZEPBYSIZEANDREPEATTHISSTEPOTHERWISESETANDRETURNTOGGTRANSLATEALLLINKSNOWTHELINKFIELDINTHEFIRSTWORDOFEACHACCESSIBLENODECONTAINSTHEADDRESSTOWHICHTHENODEWILLBEMOVEDSETANDTHENSETANDREPEATTHEFOLLOWINGOPERATIONUNTILIFSETFORALLQSUCHTHATANDTHENREGARDLESSOFTHEVALUEOFLINKPSETGMOVESETANDREPEATTHEFOLLOWINGOPERATIONUNTILSETANDIFSETANDTHENWHETHERORNOTSETTHEOPERATIONIMPLIESTHEMOVEMENTOFSIZEPWORDSWEALWAYSHAVESOITISSAFETOMOVETHEWORDSINORDERFROMSMALLESTLOCATIONTOLARGESTTHISMETHODISCALLEDTHELISPGARBAGECOLLECTORANINTERESTINGLISPGARBAGECOLLECTORALTERNATIVEWHICHDOESNOTREQUIRETHELINKFIELDATTHEBEGINNINGOFANODECANBEBASEDONTHEIDEAOFLINKINGTOGETHERALLPOINTERSTHATPOINTTOEACHNODESEELARSERIKTHORELLIBITRBKDEWARANDAPMCCANNSOFTWAREPRACTICEEXPFLOCKWOODMORRISCACMHBMJONKERSINFPROCLETTERSJJMARTINCACMFLOCKWOODMORRISINFPROCLETTERSOTHERMETHODSHAVEBEENPUBLISHEDBYBKHADDONANDWMWAITECOMPJBWEGBREITCOMPJDAZAVEINFPROCLETTERSJCOHENANDANICOLAUHAVEANALYZEDFOUROFTHESEAPPROACHESINACMTRANSPROGLANGUAGESANDSYSTEMSWRITEAPROGRAMFORTHEALGORITHMOFEXERCISEANDDETERMINEITSRUNNINGTIMELETASSUMEFURTHERTHATANDTOSIMPLIFYSTEPGSTEPGISOMITTEDINLINEWEAREASSUMINGTHATTHESIZEOFEACHNODEISSUFFICIENTLYSMALLTHATITCANBEMOVEDWITHASINGLEMOVEINSTRUCTIONTHISSEEMSAFAIRASSUMPTIONFORMOSTCASESWHENTHISKINDOFGARBAGECOLLECTIONISAPPLICABLETHETOTALRUNNINGTIMEFORTHISPROGRAMISWHEREISTHENUMBEROFACCESSIBLENODESISTHENUMBEROFLINKFIELDSTHEREINISTHENUMBEROFINACCESSIBLENODESTHATARENOTPRECEDEDBYANINACCESSIBLENODEISTHENUMBEROFINACCESSIBLENODESTHATAREPRECEDEDBYANINACCESSIBLENODEANDISTHETOTALNUMBEROFWORDSINTHEACCESSIBLENODESIFTHEMEMORYCONTAINSNODESWITHOFTHEMINACCESSIBLETHENWEMAYESTIMATEEXAMPLEFIVEWORDNODESONTHEAVERAGEWITHTWOLINKFIELDSPERNODEONTHEAVERAGEANDAMEMORYOFNODESTHENWHENITTAKESPERAVAILABLENODERECOVEREDWHENITTAKESANDWHENITTAKESONLYCONTRASTTHEDYNAMICSTORAGEALLOCATIONMETHODSOFTHISSECTIONWITHTHETECHNIQUESFORVARIABLESIZESEQUENTIALLISTSDISCUSSEDATTHEENDOFSECTIONACERTAINLUNCHCOUNTERINHOLLYWOODCALIFORNIACONTAINSLUNCHCOUNTERPROBLEMFRAGMENTATIONSEATSINAROWDINERSENTERTHESHOPINGROUPSOFONEORTWOANDAGLAMOROUSHOSTESSSHOWSTHEMWHERETOSITPROVETHATSHEWILLALWAYSBEABLETOSEATPEOPLEIMMEDIATELYWITHOUTSPLITTINGUPANYPAIRSIFNOCUSTOMERWHOCOMESALONEISASSIGNEDTOANYOFTHESEATSNUMBEREDPROVIDEDTHATTHERENEVERAREMORETHANCUSTOMERSPRESENTATATIMEPAIRSLEAVETOGETHERASINGLECUSTOMERWILLBEABLETOSITINONEOFTHESIXTEENSEATSIFAPAIRENTERSTHEREMUSTBEROOMFORTHEMOTHERWISETHEREAREATLEASTTWOPEOPLEINSEATSATLEASTTWOINATLEASTTWOINANDATLEASTONEINORSOATLEASTFIFTEENPEOPLEAREALREADYSEATEDCONTINUINGEXERCISEPROVETHATTHEHOSTESSCANTALWAYSDOSUCHAGOODJOBWHENTHEREAREONLYSEATSATTHECOUNTERNOMATTERWHATSTRATEGYSHEUSESITWILLBEPOSSIBLETOREACHASITUATIONWHERETWOFRIENDSENTERANDONLYPEOPLEARESEATEDBUTNOTWOADJACENTSEATSAREVACANTFIRSTSIXTEENSINGLEMALESENTERANDSHESEATSTHEMTHEREAREGAPSOFEMPTYSEATSBETWEENTHEOCCUPIEDSEATSCOUNTINGONEGAPATEACHENDWITHAGAPOFLENGTHZEROASSUMEDBETWEENADJACENTOCCUPIEDSEATSTHETOTALNUMBEROFEMPTYSEATSNAMELYTHESUMOFALLSEVENTEENGAPSISSUPPOSEOFTHEGAPSAREOFODDLENGTHTHENSPACESAREAVAILABLETOSEATPAIRSNOTETHATISEVENANDNOWEACHOFTHECUSTOMERSFROMLEFTTORIGHTWHOHASANEVENGAPONBOTHSIDESFINISHESHISLUNCHANDWALKSOUTEACHODDGAPPREVENTSATMOSTONEOFTHESEEIGHTDINERSFROMLEAVINGHENCEATLEASTPEOPLELEAVETHERESTILLAREONLYSPACESAVAILABLETOSEATPAIRSBUTNOWPAIRSENTERMJMROBSONTHELUNCHCOUNTERPROBLEMINEXERCISESANDCANBEGENERALIZEDTOESTABLISHTHEWORSTCASEPERFORMANCEOFANYDYNAMICSTORAGEALLOCATIONALGORITHMTHATNEVERRELOCATESRESERVEDBLOCKSLETBETHESMALLESTAMOUNTOFMEMORYSUCHTHATANYSERIESOFREQUESTSFORALLOCATIONANDLIBERATIONCANBEHANDLEDWITHOUTOVERFLOWPROVIDEDTHATALLBLOCKSIZESAREANDTHETOTALAMOUNTOFSPACEREQUESTEDNEVEREXCEEDSEXERCISESANDPROVETHATDETERMINETHEEXACTVALUEOFFORALLTHEARGUMENTSGENERALIZEREADILYFORWHENTHEHOSTESSUSESAFIRSTFITSTRATEGYINSTEADOFANOPTIMALONEROBSONHASPROVEDTHATTHENECESSARYANDSUFFICIENTNUMBEROFSEATSISSUBADDITIVEJMROBSONINTHENOTATIONOFEXERCISESHOWTHATHENCEFORFIXEDEXISTSDIVIDEMEMORYINTOTHREEINDEPENDENTREGIONSOFSIZESANDTOPROCESSAREQUESTFORSPACEPUTEACHBLOCKINTOTHEFIRSTREGIONFORWHICHTHESTATEDCAPACITYISNOTEXCEEDEDUSINGTHERELEVANTOPTIMUMSTRATEGYFORTHATREGIONTHISCANNOTFAILFORIFWEWEREUNABLETOFILLAREQUESTFORLOCATIONSWEMUSTHAVEATLEASTLOCATIONSALREADYOCCUPIEDNOWIFWEHAVETHESUBADDITIVELAWHENCEEXISTSPROOFHENCEFORALLHENCETHEREFOREEXISTSFROMEXERCISEWEKNOWTHATTHEVALUEISNOTKNOWNFORANYITISNOTDIFFICULTTOSHOWTHATTHEMULTIPLICATIVEFACTORFORJUSTTWOBLOCKSIZESANDISHENCEROBSONSMETHODSIMPLYTHATANDCONTINUINGEXERCISEDETERMINEANDIFITEXISTSROBSONHASPROVEDTHATBYUSINGTHEFOLLOWINGSTRATEGYALLOCATETOEACHBLOCKOFSIZEWHERETHEFIRSTAVAILABLEBLOCKOFLOCATIONSSTARTINGATAMULTIPLEOFLETDENOTETHEMULTIPLICATIVEFACTORWHENALLBLOCKSIZESARECONSTRAINEDTOLIEINTHESETSOTHATROBSONANDSKROGDAHLHAVEDISCOVEREDTHATWHENEVERISAMULTIPLEOFFORINDEEDROBSONHASESTABLISHEDTHEEXACTFORMULATHUSINPARTICULARHEALSOHASDERIVEDTHEUPPERBOUNDANDHECONJECTURESTENTATIVELYTHATTHISCONJECTUREWOULDFOLLOWIFWEREEQUALTOINGENERALBUTTHISISUNFORTUNATELYNOTTHECASESINCEROBSONHASPROVEDTHATSEEINFPROCLETTERSJACMMTHEPURPOSEOFTHISEXERCISEISTOCONSIDERTHEWORSTCASEMEMORYUSAGEOFTHEBUDDYSYSTEMAPARTICULARLYBADCASEOCCURSFOREXAMPLEIFWESTARTWITHANEMPTYMEMORYANDPROCEEDASFOLLOWSFIRSTRESERVEBLOCKSOFLENGTHWHICHGOINTOLOCATIONSTHROUGHTHENFORLIBERATEALLBLOCKSWHOSESTARTINGLOCATIONISNOTDIVISIBLEBYANDRESERVEBLOCKSOFLENGTHWHICHGOINTOLOCATIONSTHROUGHTHISPROCEDUREUSESTIMESASMUCHMEMORYASISEVEROCCUPIEDPROVETHATTHEWORSTCASECANNOTBESUBSTANTIALLYWORSETHANTHISWHENALLREQUESTSAREFORBLOCKSIZESANDIFTHETOTALSPACEREQUESTEDATANYTIMENEVEREXCEEDSWHEREISAMULTIPLEOFTHEBUDDYSYSTEMWILLNEVEROVERFLOWAMEMORYAREAOFSIZEBUDDYSYSTEMCONSIDERMAINTAININGTHEBLOCKSOFSIZETHEREQUESTSFORSIZESWILLPERIODICALLYCALLFORANEWBLOCKOFSIZETOBESPLITORABLOCKOFTHATSIZEWILLBERETURNEDWECANPROVEBYINDUCTIONONTHATTHETOTALSTORAGECONSUMEDBYSUCHSPLITBLOCKSNEVEREXCEEDSFORAFTEREVERYREQUESTTOSPLITABLOCKOFSIZEWEAREUSINGATMOSTLOCATIONSINSPLITBLOCKSANDATMOSTLOCATIONSINUNSPLITONESTHISARGUMENTCANBESTRENGTHENEDTOSHOWTHATCELLSSUFFICEWHEREANDWEHAVECONVERSELYFORITCANBESHOWNTHATABUDDYSYSTEMSOMETIMESREQUIRESASMANYASCELLSIFTHEMECHANISMOFSTEPSRANDRISMODIFIEDTOCHOOSETHEWORSTPOSSIBLEAVAILABLEBLOCKTOSPLITINSTEADOFTHEFIRSTSUCHBLOCKROBSONSPROOFTHATSEEEXERCISEISEASILYMODIFIEDTOSHOWTHATSUCHALEFTMOSTSTRATEGYWILLNEVERNEEDMORETHANCELLSTOALLOCATESPACEFORBLOCKSOFSIZESSINCEBLOCKSOFSIZEWILLNEVERBEPLACEDINLOCATIONSALTHOUGHHISALGORITHMSEEMSVERYMUCHLIKETHEBUDDYSYSTEMITTURNSOUTTHATNOBUDDYSYSTEMWILLBETHISGOODEVENIFWEMODIFYSTEPSRANDRTOCHOOSETHEBESTPOSSIBLEAVAILABLEBLOCKTOSPLITFOREXAMPLECONSIDERTHEFOLLOWINGSEQUENCEOFSNAPSHOTSOFTHEMEMORYFORANDHEREDENOTESANAVAILABLELOCATIONANDDENOTESTHEBEGINNINGOFABLOCKINASIMILARWAYTHEREISASEQUENCEOFOPERATIONSWHENEVERISAMULTIPLEOFTHATFORCESBLOCKSOFSIZETOBEFULLANDANOTHERTOBEFULLIFISAMULTIPLEOFASUBSEQUENTREQUESTFORBLOCKSOFSIZEWILLREQUIREMORETHANMEMORYCELLSTHEBUDDYSYSTEMALLOWSUNWANTEDSTOCREEPINTOOFTHEBLOCKSSINCETHEREARENOOTHERAVAILABLESTOBESPLITATACRUCIALTIMETHELEFTMOSTALGORITHMKEEPSALLSCONFINEDWORSTBESTFITMJMROBSONLETBETHEAMOUNTOFMEMORYNEEDEDTOGUARANTEENONOVERFLOWWHENTHEBESTFITMETHODISUSEDFORALLOCATIONASINEXERCISEFINDANATTACKINGSTRATEGYTOSHOWTHATBESTFITWECANASSUMETHATTHEMAINIDEAISTOESTABLISHTHEOCCUPANCYPATTERNATTHEBEGINNINGOFTHEMEMORYFORWHEREANDDENOTERESERVEDANDFREEBLOCKSOFSIZETHETRANSITIONFROMTOBEGINSWITHTHENTHECOMMUTATIONSEQUENCEISUSEDTIMESUNTILWEGETFINALLYWHENGETSLARGEENOUGHTHEREISANENDGAMETHATFORCESOVERFLOWUNLESSTHEMEMORYSIZEISATLEASTDETAILSAPPEARINCOMPJNOTICETHATTHEWORSTCONCEIVABLEWORSTCASEWHICHBEGINSWITHTHEPATTERNISONLYSLIGHTLYWORSETHANTHISTHENEXTFITSTRATEGYOFEXERCISECANPRODUCETHISPESSIMALPATTERNCONTINUINGEXERCISEWORSTBESTFITLETBETHEMEMORYNEEDEDWHENTHEFIRSTFITMETHODISUSEDFINDADEFENSIVESTRATEGYTOSHOWTHATHENCETHEWORSTCASEOFFIRSTFITISNOTFARFROMTHEBESTPOSSIBLEWORSTCASEFIRSTFITWEWILLSHOWTHATIFISANYSEQUENCEOFNUMBERSSUCHTHATFORALLANDIFTHENINPARTICULARSINCETHECONSTANTSEQUENCESATISFIESTHENECESSARYCONDITIONSTHEPROOFISBYINDUCTIONONLETFORANDSUPPOSETHATSOMEREQUESTFORABLOCKOFSIZECANNOTBEALLOCATEDINTHELEFTMOSTCELLSOFMEMORYTHENFORWELETDENOTETHERIGHTMOSTPOSITIONALLOCATEDTOBLOCKSOFSIZESORIFALLRESERVEDBLOCKSARELARGERTHANBYINDUCTIONWEHAVEFURTHERMOREWELETBETHERIGHTMOSTOCCUPIEDPOSITIONSOTHATTHENTHEINTERVALCONTAINSATLEASTOCCUPIEDCELLSSINCEITSFREEBLOCKSAREOFSIZEANDITSRESERVEDBLOCKSAREOFSIZEITFOLLOWSTHATOFOCCUPIEDACONTRADICTIONTHISPROOFESTABLISHESSLIGHTLYMORETHANWASASKEDIFWEDEFINETHESBYTHENTHESEQUENCEISANDTHERESULTCANBEIMPROVEDFURTHEREVENINTHECASEASINEXERCISEMSUPPOSETHEDISTRIBUTIONFUNCTIONPROBABILITYTHATABLOCKHASSIZEISCONTINUOUSFOREXAMPLEISFORIFTHESIZESAREUNIFORMLYDISTRIBUTEDBETWEENANDGIVEAFORMULATHATEXPRESSESTHESIZESOFTHEFIRSTSLOTSTHATSHOULDBESETUPWHENWEUSETHEDISTRIBUTEDFITMETHODDYNAMICSTORAGEALLOCATIONVARIABLESIZENODESLIBERATIONRESERVATIONHISTORYANDBIBLIOGRAPHYLINEARLISTSANDRECTANGULARARRAYSOFINFORMATIONKEPTINLINEARLISTSSEQUENTIALCONSECUTIVEMEMORYLOCATIONSWEREWIDELYUSEDFROMTHEEARLIESTDAYSOFSTOREDPROGRAMCOMPUTERSANDTHEEARLIESTTREATISESONPROGRAMMINGGAVETHEBASICALGORITHMSFORTRAVERSINGTHESESTRUCTURESFOREXAMPLESEEJVONNEUMANNCOLLECTEDWORKSWRITTENMVWILKESDJWHEELERSGILLTHEPREPARATIONOFPROGRAMSFORANELECTRONICDIGITALCOMPUTERREADINGMASSADDISONWESLEYSUBROUTINEVANDSEEESPECIALLYALSOTHEWORKOFKONRADZUSEBERICHTEDERGESELLSCHAFTFURMATHEMATIKUNDDATENVERARBEITUNGBONNWRITTENINZUSEWASTHEFIRSTTODEVELOPNONTRIVIALALGORITHMSTHATWORKEDWITHLISTSOFDYNAMICALLYVARYINGLENGTHSBEFORETHEDAYSOFINDEXREGISTERSOPERATIONSONSEQUENTIALLINEARLISTSWEREDONEBYPERFORMINGARITHMETICONTHEMACHINELANGUAGEINSTRUCTIONSTHEMSELVESANDTHENEEDTODOSUCHARITHMETICWASONEOFTHEEARLYMOTIVATIONSFORHAVINGACOMPUTERWHOSEPROGRAMSSHAREMEMORYSPACEWITHTHEDATATHEYMANIPULATETECHNIQUESTHATPERMITVARIABLELENGTHLINEARLISTSTOSHARESEQUENTIALLOCATIONSINSUCHAWAYTHATTHEYSHIFTBACKANDFORTHWHENNECESSARYASREALLOCATIONDYNAMICSTORAGEALLOCATIONHISTORYDESCRIBEDINSECTIONWEREAPPARENTLYAMUCHLATERINVENTIONJDUNLAPOFDIGITEKCORPORATIONDEVELOPEDSUCHTECHNIQUESBEFOREINCONNECTIONWITHTHEDESIGNOFASERIESOFCOMPILERPROGRAMSABOUTTHESAMETIMETHEIDEAAPPEAREDINDEPENDENTLYINTHEDESIGNOFACOMPILERATCOBOLIBMCORPORATIONANDACOLLECTIONOFRELATEDSUBROUTINESCALLEDCITRUSWASSUBSEQUENTLYUSEDATVARIOUSINSTALLATIONSTHETECHNIQUESREMAINEDUNPUBLISHEDUNTILAFTERTHEYHADBEENDEVELOPEDINDEPENDENTLYBYJANGARWICKOFNORWAYSEEBITTHEIDEAOFHAVINGLINEARLISTSINNONSEQUENTIALLOCATIONSSEEMSTOHAVEORIGINATEDINCONNECTIONWITHTHEDESIGNOFCOMPUTERSWITHROTATINGDRUMMEMORIESAFTERROTATINGMEMORYLINEARLISTSLINKEDEXECUTINGTHEINSTRUCTIONINLOCATIONSUCHACOMPUTERWASUSUALLYNOTREADYTOGETITSNEXTINSTRUCTIONFROMLOCATIONBECAUSETHEDRUMHADALREADYROTATEDPASTTHATPOINTDEPENDINGONTHEINSTRUCTIONBEINGPERFORMEDTHEMOSTFAVORABLEPOSITIONFORTHENEXTINSTRUCTIONMIGHTBEORSAYANDTHEMACHINECOULDOPERATEUPTOSIXORSEVENTIMESFASTERIFITSINSTRUCTIONSWERELOCATEDOPTIMALLYRATHERTHANCONSECUTIVELYFORADISCUSSIONOFTHEINTERESTINGPROBLEMSCONCERNINGTHEBESTPLACEMENTOFINSTRUCTIONSSEETHEAUTHORSARTICLEINJACMKNUTHLATENCYTHEREFOREANEXTRAADDRESSFIELDWASPROVIDEDINEACHMACHINELANGUAGEINSTRUCTIONTOSERVEASALINKTOTHENEXTCOMMANDTHISIDEACALLEDONEPLUSONEADDRESSINGWASDISCUSSEDBYJOHNMAUCHLYINTHEORYANDTECHNIQUESFORTHEDESIGNOFELECTRONICCOMPUTERSUOFPENNSYLVANIALECTUREITCONTAINEDTHENOTIONOFLINKEDLISTSINEMBRYONICFORMALTHOUGHTHEDYNAMICINSERTIONANDDELETIONOPERATIONSTHATWEHAVEUSEDSOFREQUENTLYINTHISCHAPTERWERESTILLUNKNOWNANOTHEREARLYAPPEARANCEOFLINKSINPROGRAMSWASINHPLUHNSMEMORANDUMSUGGESTINGTHEUSEOFCHAININGFOREXTERNALSEARCHINGSEESECTIONLINKEDMEMORYTECHNIQUESWEREREALLYBORNWHENANEWELLJCSHAWLINKEDALLOCATIONHISTORYNEWELLSHAWSIMONANDHASIMONBEGANTHEIRINVESTIGATIONSOFHEURISTICPROBLEMSOLVINGBYMACHINEASANAIDTOWRITINGPROGRAMSTHATSEARCHEDFORPROOFSINMATHEMATICALLOGICTHEYDESIGNEDTHEFIRSTLISTPROCESSINGLANGUAGEIPLIIINTHESPRINGOFIPLWASANACRONYMFORINFORMATIONPROCESSINGIPLLANGUAGETHISWASASYSTEMTHATMADEUSEOFPOINTERSANDINCLUDEDIMPORTANTCONCEPTSLIKETHELISTOFAVAILABLESPACEBUTTHECONCEPTOFAVAILLISTHISTORYSTACKSTACKSWASNOTYETWELLDEVELOPEDIPLIIIDESIGNEDAYEARLATERINCLUDEDPUSHDOWNANDPOPUPFORSTACKSASIMPORTANTBASICOPERATIONSFORREFERENCESTOIPLIISEEIRETRANSACTIONSITSEPTEMBERPROCWESTERNJOINTCOMPCONFMATERIALONIPLIIIFIRSTAPPEAREDINCOURSENOTESGIVENATTHEUNIVERSITYOFMICHIGANINTHESUMMEROFDYNAMICSTORAGEALLOCATIONHISTORYTHEWORKOFNEWELLSHAWANDSIMONINSPIREDMANYOTHERPEOPLETOUSELINKEDMEMORYWHICHWASOFTENREFERREDTOASNSSMEMORYATTHETIMEBUTMOSTLYSIMONSHAWNEWELLFORPROBLEMSDEALINGWITHSIMULATIONOFHUMANTHOUGHTPROCESSESGRADUALLYTHETECHNIQUESBECAMERECOGNIZEDASBASICCOMPUTERPROGRAMMINGTOOLSTHEFIRSTARTICLEDESCRIBINGTHEUSEFULNESSOFLINKEDMEMORYFORDOWNTOEARTHPROBLEMSWASPUBLISHEDBYJWCARRIIIINCACMFEBRUARYCARRPOINTEDOUTINTHISARTICLETHATLINKEDLISTSCANREADILYBEMANIPULATEDINORDINARYPROGRAMMINGLANGUAGESWITHOUTREQUIRINGSOPHISTICATEDSUBROUTINESORINTERPRETIVESYSTEMSSEEALSOGABLAAUWINDEXINGANDCONTROLWORDTECHNIQUESIBMJRESANDDEVATFIRSTONEWORDNODESWEREUSEDFORLINKEDTABLESBUTABOUTTHEUSEFULNESSOFSEVERALCONSECUTIVEWORDSPERNODEANDMULTILINKEDLISTSWASGRADUALLYBEINGDISCOVEREDBYSEVERALDIFFERENTGROUPSOFPEOPLETHEFIRSTARTICLEDEALINGSPECIFICALLYWITHTHISIDEAWASPUBLISHEDBYDTROSSCACMATTHATTIMEHEUSEDTHETERMPLEXFORWHATHASBEENCALLEDANODEINTHISCHAPTERBUTHESUBSEQUENTLYUSEDTHEWORDPLEXINADIFFERENTSENSETODENOTEACLASSOFNODESCOMBINEDWITHASSOCIATEDALGORITHMSFORTHEIRTRAVERSALNOTATIONSFORREFERRINGTOFIELDSWITHINNODESAREGENERALLYOFTWOKINDSFIELDSNOTATIONFORTHENAMEOFTHEFIELDEITHERPRECEDESORFOLLOWSTHEPOINTERDESIGNATIONTHUSWHILEWEHAVEWRITTENINFOPINTHISCHAPTERSOMEOTHERAUTHORSWRITEFOREXAMPLEPINFOATTHETIMETHISCHAPTERWASPREPAREDTHETWONOTATIONSSEEMEDTOBEEQUALLYPROMINENTTHENOTATIONADOPTEDHEREHASTHEGREATADVANTAGETHATITTRANSLATESIMMEDIATELYINTOORSIMILARLANGUAGESIFWEDEFINEINFOANDLINKARRAYSFORTRANCOBOLANDUSEPASTHEINDEXFURTHERMOREITSEEMSNATURALTOUSEMATHEMATICALFUNCTIONALNOTATIONTODESCRIBEATTRIBUTESOFANODENOTETHATINFOPISPRONOUNCEDINFOOFPINCONVENTIONALMATHEMATICALVERBALIZATIONJUSTASISRENDEREDOFTHEALTERNATIVENOTATIONPINFOHASLESSOFANATURALFLAVORSINCEITTENDSTOPUTTHEEMPHASISONPALTHOUGHITCANBEREADPSINFOTHEREASONSEEMSPREFERABLEISAPPARENTLYTHEFACTTHATPISVARIABLEBUTINFOHASAFIXEDSIGNIFICANCEWHENTHENOTATIONISEMPLOYEDBYANALOGYWECOULDCONSIDERAVECTORTOBEANODEHAVINGFIELDSNAMEDNOWTHESECONDFIELDWOULDBEREFERREDTOASPINOURNOTATIONWHEREPPOINTSTOTHEVECTORBUTIFWEAREREFERRINGTOTHETHELEMENTOFTHEVECTORWEFINDITMORENATURALTOWRITEPUTTINGTHEVARIABLEQUANTITYSECONDSIMILARLYITSEEMSMOSTAPPROPRIATETOPUTTHEVARIABLEQUANTITYPSECONDINTHENOTATIONINFOPPERHAPSTHEFIRSTPEOPLETORECOGNIZETHATTHECONCEPTSSTACKSTACKLASTINFIRSTOUTANDQUEUEFIRSTINFIRSTOUTAREIMPORTANTOBJECTSOFSTUDYWERECOSTACCOUNTANTSINTERESTEDINREDUCINGINCOMETAXASSESSMENTSFORADISCUSSIONOFTHELIFOANDFIFOMETHODSOFPRICINGINVENTORIESSEEANYINTERMEDIATEACCOUNTINGTEXTBOOKEGCFANDWJSCHLATTERCOSTACCOUNTINGNEWYORKWILEYCHAPTERINTHEMIDSAMTURINGDEVELOPEDASTACKMECHANISMCALLEDREVERSIONSTORAGEFORSUBROUTINELINKAGELOCALVARIABLESANDPARAMETERSHISNAMESFORPUSHANDPOPWEREBURYANDDISINTERUNBURYSEETHEREFERENCESINSECTIONNODOUBTSIMPLEUSESOFSTACKSKEPTINSEQUENTIALMEMORYLOCATIONSWERECOMMONINCOMPUTERPROGRAMMINGFROMTHEEARLIESTDAYSSINCEASTACKISSUCHANINTUITIVECONCEPTTHEPROGRAMMINGOFSTACKSINLINKEDFORMAPPEAREDFIRSTINIPLASSTATEDABOVETHENAMESTACKSTEMSFROMIPLIPLTERMINOLOGYALTHOUGHPUSHDOWNLISTWASTHEMOREOFFICIALIPLWORDINGANDITWASALSOINDEPENDENTLYINTRODUCEDBYEWDIJKSTRANUMERMATHDEQUEISATERMCOINEDBYEJSCHWEPPEINTHEORIGINOFCIRCULARANDDOUBLYLINKEDLISTSISOBSCUREPRESUMABLYTHESECIRCULARLISTSKNOTTEDLISTSIDEASOCCURREDNATURALLYTOMANYPEOPLEASTRONGFACTORINTHEPOPULARIZATIONOFSUCHTECHNIQUESWASTHEEXISTENCEOFGENERALLISTPROCESSINGSYSTEMSBASEDONTHEMPRINCIPALLYTHEKNOTTEDLISTSTRUCTURESCACMANDSYMMETRICLISTPROCESSORCACMOFJWEIZENBAUMWEIZENBAUMIVANSUTHERLANDINTRODUCEDTHEUSEOFINDEPENDENTDOUBLYLINKEDLISTSWITHINLARGERNODESINHISSKETCHPADSYSTEMPHDTHESISMASSINSTOFTECHNOLOGYVARIOUSMETHODSFORADDRESSINGANDTRAVERSINGMULTIDIMENSIONALARRAYSOFINFORMATIONWEREDEVELOPEDINDEPENDENTLYBYCLEVERPROGRAMMERSSINCETHEEARLIESTDAYSOFCOMPUTERSANDTHUSANOTHERPARTOFTHEUNPUBLISHEDCOMPUTERFOLKLOREWASBORNTHISSUBJECTWASFIRSTSURVEYEDINPRINTBYHHELLERMANCACMSEEALSOJCGOWERCOMPJLINEARLISTSLINKEDTREESTRUCTURESREPRESENTEDEXPLICITLYINCOMPUTERMEMORYWEREORIGINALLYUSEDFORAPPLICATIONSTOALGEBRAICFORMULAMANIPULATIONALGEBRAICFORMULAMANIPULATIONTHEMACHINELANGUAGEFORSEVERALEARLYCOMPUTERSUSEDATHREEADDRESSCODETOREPRESENTTHECOMPUTATIONOFARITHMETICEXPRESSIONSTHELATTERISEQUIVALENTTOTHEINFOLLINKLLINKINBINARYTREERLINKINBINARYTREEBINARYTREEDIFFERENTIATIONANDRLINKOFABINARYTREEREPRESENTATIONINHGKAHRIMANIANDEVELOPEDALGORITHMSFORDIFFERENTIATINGALGEBRAICFORMULASREPRESENTEDINANEXTENDEDTHREEADDRESSCODESEESYMPOSIUMONAUTOMATICPROGRAMMINGWASHINGTONDCOFFICEOFNAVALRESEARCHMAYSINCETHENTREESTRUCTURESINVARIOUSGUISESHAVEBEENSTUDIEDINDEPENDENTLYBYMANYPEOPLEINCONNECTIONWITHNUMEROUSCOMPUTERAPPLICATIONSBUTTHEBASICTECHNIQUESFORTREEMANIPULATIONNOTGENERALLISTMANIPULATIONHAVESELDOMAPPEAREDINPRINTEXCEPTINDETAILEDDESCRIPTIONOFPARTICULARALGORITHMSTHEFIRSTGENERALSURVEYWASMADEINCONNECTIONWITHAMOREGENERALSTUDYOFALLDATASTRUCTURESBYKEIVERSONANDLRJOHNSONIBMIVERSONJOHNSONCORPRESEARCHREPORTSRCRCSEEIVERSONAPROGRAMMINGLANGUAGENEWYORKWILEYCHAPTERSEEALSOGSALTONCACMTHECONCEPTOFTHREADEDTREESISDUETOAJPERLISANDCTHORNTONTHREADEDTREEPERLISTHORNTONTRAVERSALREPRESENTATIONOFTREESCACMTHEIRPAPERALSOINTRODUCEDTHEIMPORTANTIDEAOFTRAVERSINGTREESINVARIOUSORDERSANDGAVENUMEROUSEXAMPLESOFALGEBRAICMANIPULATIONALGORITHMSUNFORTUNATELYTHISIMPORTANTPAPERWASPREPAREDHASTILYANDITCONTAINSMANYMISPRINTSTHETHREADEDLISTSOFPERLISANDTHORNTONWEREONLYRIGHTTHREADEDTREESINOURTERMINOLOGYBINARYTREESTHATARETHREADEDINBOTHDIRECTIONSWEREINDEPENDENTLYREPRESENTATIONOFTREESTRAVERSALTHORNTONPERLISTHREADEDTREEPOSTORDERFORTREESPREORDERFORTREESDISCOVEREDBYAWHOLTAMATHEMATICALANDAPPLIEDINVESTIGATIONOFTREESTRUCTURESTHESISUOFPENNSYLVANIAPOSTORDERANDPREORDERFORTHENODESOFTREESWERECALLEDNORMALALONGORDERANDDUALALONGORDERBYZPAWLAKCOLLOQUIUMONTHEFOUNDATIONOFMATHEMATICSTIHANYBUDAPESTAKADEMIAIKIADOPREORDERWASCALLEDSUBTREEORDERBYIVERSONANDJOHNSONJOHNSONIVERSONINTHEREFERENCESCITEDABOVEGRAPHICALWAYSTOREPRESENTTHECONNECTIONBETWEENTREESTRUCTURESANDCORRESPONDINGLINEARNOTATIONSWEREDESCRIBEDDIAGRAMSOFTREESBYAGOETTINGERPROCHARVARDSYMPONDIGITALCOMPUTERSANDTHEIRAPPLICATIONSAPRILTHEREPRESENTATIONOFTREESINPREORDERBYDEGREESWITHASSOCIATEDALGORITHMSRELATINGTHISREPRESENTATIONPREORDERWITHDEGREESTODEWEYDECIMALNOTATIONANDOTHERPROPERTIESOFTREESWASPRESENTEDBYSGORNPROCSYMPMATHTHEORYOFAUTOMATABROOKLYNPOLYINSTTHEHISTORYOFTREESTRUCTURESASMATHEMATICALENTITIESTOGETHERWITHABIBLIOGRAPHYOFTHESUBJECTISREVIEWEDINSECTIONATTHETIMETHISSECTIONWASFIRSTWRITTENINTHEMOSTWIDESPREADKNOWLEDGEABOUTLISTCAPITALLISTSTRUCTURESINFORMATIONSTRUCTURESWASDUETOPROGRAMMERSEXPOSURETOLISTPROCESSINGSYSTEMSWHICHPLAYEDAVERYIMPORTANTPARTINTHISHISTORYTHEFIRSTWIDELYIPLUSEDSYSTEMWASIPLVADESCENDANTOFIPLIIIDEVELOPEDLATEINIPLVWASANINTERPRETIVESYSTEMINWHICHAPROGRAMMERLEARNEDAMACHINELIKELANGUAGEFORLISTOPERATIONSATABOUTTHESAMETIMEFLPLASETOFFLPLFORTRANSUBROUTINESFORLISTMANIPULATIONALSOINSPIREDBYIPLBUTUSINGSUBROUTINECALLSINSTEADOFINTERPRETIVELANGUAGEWASDEVELOPEDBYHGELERNTERANDLISPMCCARTHYOTHERSATHIRDSYSTEMLISPWASDESIGNEDBYJMCCARTHYALSOINLISPWASQUITEDIFFERENTFROMITSPREDECESSORSITSPROGRAMSWEREANDSTILLAREEXPRESSEDINMATHEMATICALFUNCTIONALNOTATIONCOMBINEDWITHCONDITIONALEXPRESSIONSTHENCONVERTEDINTOALISTREPRESENTATIONMANYLISTPROCESSINGSYSTEMSCAMEINTOEXISTENCEDURINGTHESTHEMOSTPROMINENTAMONGTHESEFROMAHISTORICALSTANDPOINTWASJWEIZENBAUMSSLIPASETOFSLIPSUBROUTINESTHATIMPLEMENTEDDOUBLYLINKEDLISTSINANARTICLEBYBOBROWANDRAPHAELCACMMAYBEREADASABRIEFINTRODUCTIONTOIPLVLISPANDSLIPITGIVESACOMPARISONOFTHESESYSTEMSANEXCELLENTEARLYINTRODUCTIONTOLISPWASPUBLISHEDBYPMWOODWARDANDDPJENKINSCOMPJSEEALSOTHEAUTHORSDISCUSSIONSOFTHEIROWNSYSTEMSWHICHAREARTICLESOFCONSIDERABLEHISTORICALIMPORTANCEANINTRODUCTIONTOIPLVBYANEWELLANDFMTONGECACMACOMPILEDLISTPROCESSINGLANGUAGEBYHGELERNTERJRHANSENANDCLGERBERICHJACMRECURSIVEFUNCTIONSOFSYMBOLICEXPRESSIONSANDTHEIRCOMPUTATIONBYMACHINEIBYJOHNMCCARTHYCACMSYMMETRICLISTPROCESSORBYJWEIZENBAUMCACMWEIZENBAUMSARTICLEINCLUDEDACOMPLETEDESCRIPTIONOFALLOFTHEALGORITHMSUSEDINSLIPOFALLTHESEEARLYSYSTEMSONLYLISPHADTHENECESSARYINGREDIENTSTOSURVIVETHEENSUINGDECADESOFFURTHERPROGRESSMCCARTHYHASDESCRIBEDLISPSEARLYHISTORYINHISTORYOFPROGRAMMINGLANGUAGESACADEMICPRESSLISPSLIPSEVERALSTRINGMANIPULATIONSYSTEMSALSOAPPEAREDDURINGTHESTHEYWEREPRIMARILYCONCERNEDWITHOPERATIONSONVARIABLELENGTHSTRINGSOFALPHABETICINFORMATIONLOOKINGFOROCCURRENCESOFCERTAINSUBSTRINGSANDREPLACINGTHEMBYOTHERSETCTHEMOSTIMPORTANTOFTHESEFROMAHISTORICALPERSPECTIVEWERECOMITVHYNGVECACMANDSNOBOLDJFARBERREGRISWOLDANDIPPOLONSKYJACMSTRINGMANIPULATIONSYSTEMSWEREUSEDWIDELYANDTHEYWERECOMPOSEDPRIMARILYOFALGORITHMSLIKETHEONESWEHAVESEENINTHISCHAPTERBUTTHEYPLAYEDACOMPARATIVELYSMALLROLEINTHEHISTORYOFTHETECHNIQUESOFINFORMATIONSTRUCTUREREPRESENTATIONUSERSOFSUCHSYSTEMSWEREISOLATEDFROMTHEDETAILSOFTHEACTUALINTERNALPROCESSESCARRIEDONBYTHECOMPUTERFORASURVEYOFEARLYSTRINGMANIPULATIONTECHNIQUESSEESEMADNICKCACMTHEIPLVANDFLPLSYSTEMSFORLISTPROCESSINGDIDNOTUSEEITHERAGARBAGEIPLFLPLCOLLECTIONORAREFERENCECOUNTTECHNIQUEFORTHEPROBLEMOFSHAREDLISTSINSTEADEACHLISTWASOWNEDBYONELISTANDBORROWEDBYALLOTHERLISTSTHATREFERREDTOITANDALISTWASERASEDWHENITSOWNERALLOWEDITTODISAPPEARHENCETHEPROGRAMMERWASENJOINEDTOMAKESURETHATNOLISTWASSTILLBORROWINGANYLISTSTHATWEREBEINGERASEDTHEREFERENCECOUNTERTECHNIQUEFORLISTSWASINTRODUCEDBYGECOLLINSCACMANDEXPLAINEDFURTHERINCACMGARBAGECOLLECTIONWASFIRSTDESCRIBEDINMCCARTHYSARTICLEOFSEEALSOWEIZENBAUMSREMARKSINCACMANDANARTICLEBYCOHENANDTRILLINGBITMCCARTHYWEIZENBAUMANINCREASINGREALIZATIONOFTHEIMPORTANCEOFLINKMANIPULATIONSLEDNATURALLYTOTHEIRINCLUSIONINALGEBRAICPROGRAMMINGLANGUAGESDESIGNEDAFTERTHENEWLANGUAGESALLOWEDPROGRAMMERSTOCHOOSESUITABLEFORMSOFDATAREPRESENTATIONWITHOUTRESORTINGTOASSEMBLYLANGUAGEORPAYINGTHEOVERHEADOFCOMPLETELYGENERALLISTSTRUCTURESSOMEOFTHEFUNDAMENTALSTEPSINTHISDEVELOPMENTWERETHEWORKOFNWIRTHANDHWEBERCACMHWLAWSONCACMCARHOARESYMBOLMANIPULATIONLANGUAGESANDTECHNIQUESEDBYDGBOBROWAMSTERDAMNORTHHOLLANDOJDAHLANDKNYGAARDCACMAVANWIJNGAARDENBJMAILLOUXJELPECKANDCHAKOSTERNUMERISCHEMATHDENNISMRITCHIEHISTORYOFPROGRAMMINGLANGUAGESIIACMPRESSLINKEDALLOCATIONHISTORYDYNAMICSTORAGEALLOCATIONALGORITHMSWEREINUSESEVERALYEARSBEFORETHEYDYNAMICSTORAGEALLOCATIONHISTORYWEREEVERDESCRIBEDINPRINTAVERYREADABLEDISCUSSIONWASPREPAREDBYWTCOMFORTINANDPUBLISHEDINCACMTHEBOUNDARYTAGMETHODINTRODUCEDINSECTIONWASDESIGNEDBYKNUTHTHEAUTHORINFORUSEINANOPERATINGSYSTEMFORTHEBURROUGHSBCOMPUTERTHEBUDDYSYSTEMWASFIRSTUSEDBYHMARKOWITZINCONNECTIONWITHTHESIMSCRIPTPROGRAMMINGSYSTEMINANDITWASINDEPENDENTLYDISCOVEREDANDPUBLISHEDBYKKNOWLTONCACMSEEALSOCACMFORADDITIONALEARLYDISCUSSIONSOFDYNAMICSTORAGEALLOCATIONSEETHEARTICLESBYILIFFEANDJODEITCOMPJBAILEYBARNETTANDBURLESONCACMATBERZTISSCACMANDDTROSSCACMDYNAMICSTORAGEALLOCATIONHISTORYAGENERALDISCUSSIONOFINFORMATIONSTRUCTURESANDTHEIRRELATIONTOPROGRAMMINGWASPREPAREDBYMARYDIMPERIODATASTRUCTURESANDTHEIRREPRESENTATIONINSTORAGEANNUALREVIEWINAUTOMATICPROGRAMMINGOXFORDPERGAMONPRESSHERPAPERISAVALUABLEGUIDETOTHEHISTORYOFTHETOPICSINCEITINCLUDESADETAILEDANALYSISOFTHESTRUCTURESUSEDINCONNECTIONWITHTWELVELISTPROCESSINGANDSTRINGMANIPULATIONSYSTEMSSEEALSOTHEPROCEEDINGSOFTWOSYMPOSIACACMANDCACMFORFURTHERHISTORICALDETAILSSEVERALOFTHEINDIVIDUALPAPERSFROMTHOSEPROCEEDINGSHAVEALREADYBEENCITEDABOVEANEXCELLENTANNOTATEDBIBLIOGRAPHYOFEARLYWORKONSYMBOLMANIPULATIONANDALGEBRAICFORMULAMANIPULATIONHAVINGNUMEROUSCONNECTIONSWITHTHEMATERIALOFTHISCHAPTERWASCOMPILEDBYJEANESAMMETSEECOMPUTINGREVIEWSJULYAUGUSTBBALGEBRAICFORMULAMANIPULATIONLISTCAPITALLISTSTRUCTURESINTHISCHAPTERWEHAVELOOKEDATPARTICULARTYPESOFINFORMATIONSTRUCTURESINGREATDETAILANDLESTWEFAILTOSEETHEFORESTFORTHETREESITISPERHAPSWISETOTAKESTOCKOFWHATWEHAVELEARNEDANDTOSUMMARIZEBRIEFLYTHEGENERALSUBJECTOFINFORMATIONSTRUCTURESFROMABROADERPERSPECTIVESTARTINGWITHTHEBASICIDEAOFANODEASANELEMENTOFDATAWEHAVENODESLINKFIELDPURPOSESTRUCTUREHOWTOREPRESENTSEENMANYEXAMPLESTHATILLUSTRATECONVENIENTWAYSTOREPRESENTSTRUCTURALRELATIONSHIPSEITHERIMPLICITLYBASEDONTHERELATIVEORDERINWHICHNODESARESTOREDINCOMPUTERMEMORYOREXPLICITLYBYMEANSOFLINKSINTHENODESWHICHPOINTTOOTHERNODESTHEAMOUNTOFSTRUCTURALINFORMATIONTHATOUGHTTOBEREPRESENTEDWITHINTHETABLESOFACOMPUTERPROGRAMDEPENDSONTHEOPERATIONSTHATARETOBEPERFORMEDONTHENODESFORPEDAGOGICREASONSWEHAVELARGELYCONCENTRATEDONTHECONNECTIONSBETWEENINFORMATIONSTRUCTURESANDTHEIRMACHINEREPRESENTATIONSINSTEADOFDISCUSSINGTHOSEISSUESSEPARATELYHOWEVERTOGAINADEEPERUNDERSTANDINGITISHELPFULTOCONSIDERTHESUBJECTFROMAMOREABSTRACTPOINTOFVIEWDISTILLINGOFFSEVERALLAYERSOFIDEASTHATCANBESTUDIEDBYTHEMSELVESSEVERALNOTEWORTHYAPPROACHESOFTHISKINDHAVEBEENDEVELOPEDANDTHEFOLLOWINGTHOUGHTPROVOKINGPAPERSAREESPECIALLYRECOMMENDEDFROMTHEEARLYLITERATUREGHMEALYANOTHERLOOKATDATAPROCAFIPSFALLJOINTCOMPUTERCONFJEARLEYTOWARDANUNDERSTANDINGOFDATASTRUCTURESCACMCARHOARENOTESONDATASTRUCTURINGINSTRUCTUREDPROGRAMMINGBYOJDAHLEWDIJKSTRAANDCARHOAREACADEMICPRESSROBERTWENGLESATUTORIALONDATABASEORGANIZATIONANNUALREVIEWINAUTOMATICPROGRAMMINGTHEDISCUSSIONINTHISCHAPTERDOESNOTCOVERTHEENTIRESUBJECTOFINFORMATIONSTRUCTURESINFULLGENERALITYATLEASTTHREEIMPORTANTASPECTSOFTHESUBJECTHAVENOTBEENTREATEDHEREAWEOFTENWANTTOSEARCHTHROUGHATABLETOFINDANODEORSETOFNODESPOSSESSINGACERTAINVALUEANDTHENEEDFORSUCHANOPERATIONOFTENHASAPROFOUNDEFFECTONTHESTRUCTUREOFTHETABLETHISSITUATIONISEXPLOREDINDETAILINCHAPTERBWEHAVEPRIMARILYBEENCONCERNEDWITHTHEINTERNALREPRESENTATIONOFSTRUCTUREWITHINACOMPUTERBUTTHATISOBVIOUSLYONLYPARTOFTHESTORYSINCESTRUCTUREMUSTALSOBEREPRESENTEDINTHEEXTERNALINPUTANDOUTPUTDATAINSIMPLECASESEXTERNALSTRUCTURECANBETREATEDBYESSENTIALLYTHESAMETECHNIQUESTHATWEHAVEBEENCONSIDERINGBUTTHEPROCESSESOFCONVERTINGBETWEENSTRINGSOFCHARACTERSANDMORECOMPLEXSTRUCTURESAREALSOVERYIMPORTANTTHOSEPROCESSESAREANALYZEDINCHAPTERSANDCWEHAVEPRIMARILYDISCUSSEDREPRESENTATIONSOFSTRUCTURESWITHINAHIGHSPEEDRANDOMACCESSMEMORYWHENSLOWERMEMORYDEVICESSUCHASDISKSMEMORYHIERARCHYORTAPESAREBEINGUSEDWEFINDTHATALLOFTHESTRUCTURALPROBLEMSAREINTENSIFIEDITBECOMESMUCHMORECRUCIALTOHAVEEFFICIENTALGORITHMSANDEFFICIENTSCHEMESFORDATAREPRESENTATIONNODESTHATLINKTOEACHOTHERINSUCHCASESOUGHTTOGOINTONEARBYAREASOFTHEMEMORYUSUALLYTHEPROBLEMSAREHIGHLYDEPENDENTONTHECHARACTERISTICSOFINDIVIDUALMACHINESSOITISDIFFICULTTODISCUSSTHEMINGENERALTHESIMPLEREXAMPLESTREATEDINTHISCHAPTERSHOULDHELPTOPREPARETHEREADERFORSOLVINGTHEMOREDIFFICULTPROBLEMSTHATARISEINCONNECTIONWITHLESSIDEALMEMORYDEVICESCHAPTERSANDDISCUSSSOMEOFTHESEPROBLEMSINDETAILWHATARETHEMAINIMPLICATIONSOFTHESUBJECTSTREATEDINTHISCHAPTERPERHAPSTHEMOSTIMPORTANTCONCLUSIONWECANREACHISTHATTHEIDEASWEHAVEENCOUNTEREDARENOTLIMITEDTOCOMPUTERPROGRAMMINGALONETHEYAPPLYMOREGENERALLYTOEVERYDAYLIFEACOLLECTIONOFNODESCONTAININGFIELDSSOMEOFWHICHPOINTTOOTHERNODESAPPEARSTOBEAVERYGOODABSTRACTMODELFORSTRUCTURALRELATIONSHIPSOFALLKINDSTHISMODELSHOWSHOWWECANBUILDUPCOMPLICATEDSTRUCTURESFROMSIMPLEONESANDWEHAVESEENTHATCORRESPONDINGALGORITHMSFORMANIPULATINGTHESTRUCTURECANBEDESIGNEDINANATURALMANNERTHEREFOREITSEEMSAPPROPRIATETODEVELOPMUCHMORETHEORYABOUTLINKEDSETSOFNODESTHANWEKNOWATTHISTIMEPERHAPSTHEMOSTOBVIOUSWAYTOSTARTSUCHATHEORYISTODEFINEANEWKINDOFABSTRACTMACHINEORAUTOMATONTHATAUTOMATATHEORYLINKINGAUTOMATONDEALSWITHLINKEDSTRUCTURESFOREXAMPLESUCHADEVICEMIGHTBEDEFINEDINFORMALLYASFOLLOWSTHEREARENUMBERSANDSUCHTHATTHEAUTOMATONPROCESSESNODESCONTAININGLINKFIELDSANDINFORMATIONFIELDSITHASLINKREGISTERSANDINFORMATIONREGISTERSWHICHENABLEITTOCONTROLTHEPROCESSESITISPERFORMINGTHEINFORMATIONFIELDSANDREGISTERSMAYCONTAINANYSYMBOLSFROMSOMEGIVENSETOFINFORMATIONSYMBOLSEACHOFTHELINKFIELDSANDLINKREGISTERSEITHERCONTAINSORPOINTSTOANODETHEMACHINECANICREATENEWNODESPUTTINGALINKTOTHENODEINTOAREGISTERIICOMPAREINFORMATIONSYMBOLSORLINKVALUESFOREQUALITYANDIIITRANSFERINFORMATIONSYMBOLSORLINKVALUESBETWEENREGISTERSANDNODESONLYNODESPOINTEDTOBYLINKREGISTERSAREIMMEDIATELYACCESSIBLESUITABLERESTRICTIONSONTHEMACHINESBEHAVIORWILLMAKEITEQUIVALENTTOSEVERALOTHERSPECIESOFAUTOMATAARELATEDMODELOFCOMPUTATIONWASPROPOSEDBYANKOLMOGOROVASEARLYASHISMACHINEESSENTIALLYOPERATESONGRAPHSHAVINGASPECIALLYDESIGNATEDSTARTINGVERTEXTHEACTIONATEACHSTEPDEPENDSONLYONTHESUBGRAPHCONSISTINGOFALLVERTICESATDISTANCEFROMINREPLACINGINBYANOTHERGRAPHWHEREINCLUDESANDTHEVERTICESATDISTANCEEXACTLYFROMANDPOSSIBLYOTHERVERTICESWHICHARENEWLYCREATEDTHEREMAINDEROFGRAPHISLEFTUNALTEREDHEREISAFIXEDNUMBERSPECIFIEDINADVANCEFORANYPARTICULARALGORITHMBUTITCANBEARBITRARILYLARGEASYMBOLFROMAFINITEALPHABETISATTACHEDTOEACHVERTEXANDRESTRICTIONSAREMADESOTHATNOTWOVERTICESWITHTHESAMESYMBOLCANBEADJACENTTOACOMMONVERTEXSEEANKOLMOGOROVUSPEKHIMATNAUKKOLMOGOROVANDUSPENSKYUSPEKHIMATNAUKAMERMATHSOCEMTRANSLATIONSSERIESLINKINGAUTOMATACANEASILYSIMULATEGRAPHMACHINESTAKINGATMOSTABOUNDEDNUMBEROFSTEPSPERGRAPHSTEPCONVERSELYHOWEVERITISUNLIKELYTHATGRAPHMACHINESCANSIMULATEARBITRARYLINKINGAUTOMATAWITHOUTUNBOUNDEDLYINCREASINGTHERUNNINGTIMEUNLESSTHEDEFINITIONISCHANGEDFROMUNDIRECTEDTODIRECTEDGRAPHSINVIEWOFTHERESTRICTIONTOVERTICESOFBOUNDEDDEGREETHELINKINGMODELISOFCOURSEQUITECLOSETOTHEOPERATIONSAVAILABLETOPROGRAMMERSONREALMACHINESWHILETHEGRAPHMODELISNOTSOMEOFTHEMOSTINTERESTINGPROBLEMSTOSOLVEFORSUCHDEVICESWOULDBETODETERMINEHOWFASTTHEYCANSOLVECERTAINPROBLEMSORHOWMANYNODESTHEYNEEDTOSOLVECERTAINPROBLEMSFOREXAMPLETOTRANSLATECERTAINFORMALLANGUAGESATTHETIMETHISCHAPTERWASFIRSTWRITTENSEVERALINTERESTINGRESULTSOFTHISKINDHADBEENOBTAINEDNOTABLYBYJHARTMANISANDRESTEARNSBUTONLYFORSPECIALCLASSESOFTURINGMACHINESHAVINGMULTIPLETAPESANDREADWRITEHEADSTHETURINGMACHINEMODELISCOMPARATIVELYUNREALISTICSOTHESERESULTSTENDEDTOHAVELITTLETODOWITHPRACTICALPROBLEMSWEMUSTADMITTHATASTHENUMBEROFNODESCREATEDBYALINKINGAUTOMATONAPPROACHESINFINITYWEDONTKNOWHOWTOBUILDSUCHADEVICEPHYSICALLYSINCEWEWANTTHEMACHINEOPERATIONSTOTAKETHESAMEAMOUNTOFTIMEREGARDLESSOFTHESIZEOFIFLINKINGISREPRESENTEDBYUSINGADDRESSESASINACOMPUTERMEMORYITISNECESSARYTOPUTABOUNDONTHENUMBEROFNODESSINCETHELINKFIELDSHAVEAFIXEDSIZEAMULTITAPETURINGMACHINEISTHEREFOREAMOREREALISTICMODELWHENAPPROACHESINFINITYYETITSEEMSREASONABLETOBELIEVETHATALINKINGAUTOMATONASDESCRIBEDABOVELEADSTOAMOREAPPROPRIATETHEORYOFTHECOMPLEXITYOFALGORITHMSTHANTURINGMACHINESDOEVENWHENASYMPTOTICFORMULASFORLARGEARECONSIDEREDBECAUSETHETHEORYISMORELIKELYTOBERELEVANTFORPRACTICALVALUESOFFURTHERMOREWHENGETSBIGGERTHANORSONOTEVENAONETAPETURINGMACHINEISREALISTICITCOULDNEVERBEBUILTRELEVANCEISMOREIMPORTANTTHANREALISMMANYYEARSHAVEPASSEDSINCETHEAUTHORWROTEMOSTOFTHECOMMENTSABOVEANDEVERYBODYCANBEGLADTHATSUBSTANTIALPROGRESSHASINDEEDBEENMADEONTHETHEORYOFLINKINGAUTOMATANOWCALLEDPOINTERMACHINESBUTOFCOURSEMUCHSTILLREMAINSTOBEDONENODESLINKINGAUTOMATONAUTOMATATHEORYGENERALRULESFORPROGRAMMINGHAVEBEENDISCOVEREDMOSTOFTHEMHAVEBEENUSEDINTHEKANSASCITYFREIGHTYARDSFORALONGTIMEDERRICKLEHMERIMUSTEXPLAINTOBEGINWITHTHATALLTHETREESINTHISSYSTEMGROWHEADDOWNWARDSTHEROOTISATTHETOPANDTHEBRANCHESAREBELOWIFITBEOBJECTEDTHATTHENAMETREEISAMISNOMERMYANSWERISTHATIAMONLYFOLLOWINGTHEEXAMPLEOFALLWRITERSONGENEALOGYAGENEALOGICALTREEALWAYSGROWSDOWNWARDSTHENWHYMAYNOTALOGICALTREEDOLIKEWISELEWISCARROLLINSYMBOLICLOGICYOUWILLIAMSUREAGREEWITHMETHATIFPAGEFINDSUSONLYINTHESECONDCHAPTERTHELENGTHOFFALLACIOUSREASONINGTHEFIRSTONEMUSTHAVEBEENREALLYINTOLERABLESHERLOCKHOLMESINTHEVALLEYOFFEARDOYLEDATASTRUCTURE