Wat zijn de voordelen van het opslaan van alle elementen in het blad nodes?

stemmen
13

Ik lees Advanced Data Structures door Peter Brass.

In het begin van het hoofdstuk over de zoektocht bomen, stelde hij dat er twee modellen van search bomen - een waar knooppunten bevatten de eigenlijke object (de waarde als de boom wordt gebruikt als een woordenboek), en een andere, waar alle objecten in zijn opgeslagen bladeren en interne knopen zijn alleen voor vergelijkingen.

Wat zijn de voordelen van het tweede model over de eerste?

De vraag is gesteld op 14/10/2010 om 18:57
bron van user
In andere talen...                            


4 antwoorden

stemmen
0

en het opslaan van informatie-objecten in de knooppunten, we praten in dit geval over een trie, is handig voor het snel Retrival van informatie (sneller dan het opslaan van spullen in een array / hash, waar de ergste geval auf acces is O (n), in de trie dit is O (m) [m de lengte van n])

kijk hier: https://en.wikipedia.org/wiki/Trie

In een zoekboom kan dit oerations veel ingewikkelder (kijk AVL Tree O (log n)) en kan dus langzamer en is meer compley te implementeren.

Welke gegevens structuur te kiezen ?? Nou, dit is afhankelijk van wat u wilt doen

antwoordde op 14/10/2010 om 19:15
bron van user

stemmen
9

Een van de grote voordelen van een binaire boom waar de gegevens alleen in het blad nodes is dat je kunt partitie op basis van elementen die niet in uw dataset.

Bijvoorbeeld, als ik een mogelijke dataset 0-1 miljoen, maar de overgrote meerderheid van de items zijn ofwel aan de high-end of low-end, maar niet in het midden, kan ik wil nog steeds mijn eerste te vergelijken met 500.000 - ook al is dat getal is niet in mijn dataset . Als elk knooppunt had gegevens, kon ik dit niet doen. Terwijl normaal gesproken niet nodig is in theorie, heb ik lopen in vele malen dat partitionering op basis van een waarde buiten mijn data eenvoudiger implementatie.

antwoordde op 14/10/2010 om 19:15
bron van user

stemmen
3

B + bomen zijn een voorbeeld van een geval waarbij alle belangrijke / waarden bladknooppunten worden opgeslagen. Het belangrijkste voordeel hier is dat aangezien alle items zijn in het blad nodes, het blad nodes kunnen worden met elkaar verbonden met een gekoppelde lijst die een snelle in-order traversal kunt vormen. Als u toegang tot een bepaald element, kunt u altijd het volgende element in de reeks zonder een bezoek aan enige ouders, omdat het blad knooppunten met elkaar verbonden zijn. Bestandssystemen en database storage systemen kunnen profiteren van deze structuren voor de reeks zoekopdrachten en dat soort dingen.

antwoordde op 29/11/2011 om 12:07
bron van user

stemmen
1

Laten we zeggen dat u het bouwen boom over een aantal objecten op sommige complexe criteria. Op bijvoorbeeld berekend uit meerdere eigenschappen. Soms kan je niet dit object op te slaan berekende waarde te veranderen en het berekenen van deze criteria is expansief. Dus u berekenen deze criteria slechts één keer, en op te slaan objecten in bladeren op basis van criteria die het gevolg zijn. Dan wanneer uw boom is voltooid, kunt u gewenste object veel sneller te vinden, omdat je niet hoeft te criteria te berekenen voor elke boom knooppunt in je pad.

antwoordde op 29/11/2011 om 17:55
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more