Kan iemand het verschil tussen verklaren binaire boom en binaire zoekboom met een voorbeeld ?
Verschil tussen binaire boom en binaire zoekboom
Binary boom: de boom, waar elk knooppunt heeft tot twee bladeren
1
/ \
2 3
Binaire zoekboom: wordt gebruikt voor het zoeken . Een binaire boom, waar de linker kind bevat alleen nodes met waarden lager dan de bovenliggende knooppunt, en waarbij de rechterkind enige bevat nodes met waarden groter dan of gelijk aan de ouder.
2
/ \
1 3
Een binaire boom bestaat uit knopen, waarbij elke knoop bevat een "linker" pointer, een "recht" pointer en een gegevenselement. De "root" pointer verwijst naar het bovenste knooppunt in de boom. De links en rechts pointers recursief wijzen op kleinere "substructuren" aan beide zijden. Een null pointer vertegenwoordigt een binaire boom zonder elementen - de lege boom. De formele recursieve definitie: een binaire boom pad is leeg (weergegeven door een null pointer) of bestaat uit één knooppunt, waarbij de linker en rechter pointers (recursieve definitie voren) elk punt van een binaire boom.
Een binaire zoekboom (BST) of "geordende binaire boom" is een soort binaire boom, waar de knooppunten zijn gerangschikt: voor elk knooppunt, alle elementen in de linker deelboom minder met het knooppunt (<), en alle elementen in de rechter deelboom hoger zijn dan het knooppunt (>).
5
/ \
3 6
/ \ \
1 4 9
De bovenstaande structuur is een binaire zoekboom - de "root" knooppunt 5 en de linker deelboom knooppunten (1, 3, 4) <5, en de rechter deelboom knooppunten (6, 9)> 5. recursief, elk van de substructuren moet ook gehoorzamen aan de binaire zoekboom beperking: de (1, 3, 4) substructuur 3 is de wortel, de 1 <3 en 4> 3.
Kijk uit voor de exacte formulering in de problemen - een "binary search tree" is iets anders dan een "binaire boom".
Een binaire zoekboom is een speciaal soort van binaire boom, die de volgende eigenschap vertoont: voor ieder knooppunt n, waarde elke afstammeling knooppunt in de linker deelboom van n kleiner is dan de waarde van n, en de waarde elke afstammeling knooppunt in de rechter deelboom is groter dan de waarde van n.
Zoals iedereen hierboven heeft uitgelegd over het verschil tussen binaire boom en binaire zoekboom, ik ben alleen het toevoegen van hoe om te testen of de gegeven binaire boom binaire zoekboom.
boolean b = new Sample().isBinarySearchTree(n1, Integer.MIN_VALUE, Integer.MAX_VALUE);
.......
.......
.......
public boolean isBinarySearchTree(TreeNode node, int min, int max)
{
if(node == null)
{
return true;
}
boolean left = isBinarySearchTree(node.getLeft(), min, node.getValue());
boolean right = isBinarySearchTree(node.getRight(), node.getValue(), max);
return left && right && (node.getValue()<max) && (node.getValue()>=min);
}
Hoop dat het zal je helpen. Sorry als ik ben het omleiden van het onderwerp als ik voelde dat het vermelden waard dat hier.
Binary Tree is een gespecialiseerde vorm van de boom met twee kinderen (links kind en rechts Kind). Het is gewoon voorstelling van gegevens in boomstructuur
Binary Search Tree (BST) is een speciaal type van Binary Tree die volgende voorwaarde volgt:
- linkerkind knooppunt iets kleiner Node
- rechterkind knooppunt groter is dan de bovenliggende knooppunt
Een binaire boom is een boom van wie de kinderen zijn nooit meer dan twee. Een binaire zoekboom volgt de invariante dat het linker kind een kleinere waarde dan de sleutel van de root-node moeten hebben, terwijl de rechter kind een grotere waarde dan de sleutel van de root-knooppunt zou moeten hebben.
Binaire zoekboom: wanneer inorder traversal wordt gemaakt op binaire boom, krijg je gesorteerde waarden van ingevoegde items Binary boom: geen gesorteerde volgorde is te vinden in elke vorm van traversal
Om te controleren wheather of niet een bepaalde Binary Tree is Binary Search Tree hier is een alternatieve benadering.
Traverse Boom In Inorder Fashion (dwz Left Child -> Parent -> Right Kind), Store doorkruist Knooppunt Gegevens in een tijdelijke variabele laat zeggen temp , net voor het opslaan in temp , controleren wheather huidige knooppunt met de gegevens is hoger dan vorige of niet . Dan gewoon break it out, Boom is niet Binary Search Tree anders doorlopen tot eind.
Hieronder staat een voorbeeld met Java:
public static boolean isBinarySearchTree(Tree root)
{
if(root==null)
return false;
isBinarySearchTree(root.left);
if(tree.data<temp)
return false;
else
temp=tree.data;
isBinarySearchTree(root.right);
return true;
}
Onderhouden temp variabele buiten
Binary Tree staat voor een datastructuur die is opgebouwd uit knooppunten die kunnen alleen hebben twee kinderen gevonden.
Binaire zoekboom ( BST ) anderzijds, is een bijzondere vorm van binaire boom gegevensstructuur waarbij elk knooppunt een vergelijkbare waarde en kleine kinderen gewaardeerd bevestigd aan linker en grotere waarde kinderen aan de rechterkant.
Dus alle BST 's zijn Binary Tree echter slechts een deel van Binary Tree ' s kunnen ook BST . Houd dat BST is een subset van Binary Tree .
Dus, Binary Tree is meer een algemene gegevens-structuur dan Binary Search Tree . En heb je ook te melden dat Binary Search Tree is een gesorteerde boom, terwijl er geen set van regels voor generieke Binary Tree .
Binary Tree
Een Binary Treewat niet een BST;
5
/ \
/ \
9 2
/ \ / \
15 17 19 21
Binary Search Tree (naargelang Boom)
Een Binary Search Boom die ook een Binary Tree ;
50
/ \
/ \
25 75
/ \ / \
20 30 70 80
Binary Search Tree Node woning
In kennis dat voor elk ouderknoop het BST ;
Alle links nodes kleinere waarde dan de waarde van het bovenliggende knooppunt. In het bovenste voorbeeld de knooppunten met waarden {20, 25, 30} die allemaal op de linker ( linker afstammelingen ) 50, kleiner dan 50.
De juiste nodes hebben een grotere waarde dan de waarde van het bovenliggende knooppunt. In het bovenste voorbeeld de knooppunten met waarden {70, 75, 80} die allemaal op de juiste ( rechts afstammelingen ) 50, groter dan 50.
Er is geen een dergelijke regel voor Binary Tree Node. De enige regel voor Binary Tree Node is het hebben van twee kinderen, zodat het zelf-verklaart zelf dat de reden waarom de naam binary .
binaire boom
Binaire boom kan zijn om het even wat die 2 kinderen en 1 ouder heeft. Het kan worden geïmplementeerd als verbonden lijst of array of met uw aangepaste API. Zodra u begint om meer specifieke regels in te voegen, wordt het meer gespecialiseerde boom . De meest voorkomende bekende implementatie is dat kleinere nodes toe te voegen aan de linkerkant en grotere degenen aan de rechterkant.
Bijvoorbeeld een gemerkte binaire boom van maat 9 en hoogte 3, met root node waarvan de waarde 2. boom is onevenwichtig en niet gesorteerd . https://en.wikipedia.org/wiki/Binary_tree
Bijvoorbeeld in de aan de linkerzijde, A de 6 kinderen {B, C, D, E, F, G}. Het kan worden omgezet in het binaire boom aan de rechterkant.
Binaire zoekopdracht
Binary Search is techniek / algoritme dat wordt gebruikt om specifiek item op het knooppunt keten. Binary search werkt op gesorteerde arrays .
Binary search vergelijkt de streefwaarde voor de middelste element van de array; indien zij ongelijk wordt helft waarin de doelstelling niet kan liggen geëlimineerd en het zoeken gaat op de resterende helft totdat deze succesvol is of de andere helft leeg. https://en.wikipedia.org/wiki/Binary_search_algorithm
Een boom die binary search . De array wordt hier gezocht is [20, 30, 40, 50, 90, 100], en de doelwaarde 40.
Binaire zoekboom
Dit is een van de implementaties van binaire boom. Dit is gespecialiseerd voor het zoeken .
Binaire zoekboom en B-tree datastructuren zijn gebaseerd op de binary search .
Binaire zoekboom (BST), ook wel besteld of naargelang binaire bomen, zijn een bepaald type container : datastructuren dat "items" (zoals getallen, namen enz.) In het geheugen op te slaan. https://en.wikipedia.org/wiki/Binary_search_tree
Een binaire zoekboom van maat 9 en diepte 3, 8 bij de wortel. De bladeren worden niet getekend.
En tenslotte grote schema voor prestatievergelijking bekende datastructuren en algoritmen toegepast:
Beeld uit Algorithms (4e editie)
In een binaire zoekboom, worden alle knooppunten die in een specifieke volgorde - nodes links van een wortelknooppunt een kleinere waarde dan zijn wortel, en alle knooppunten rechts van een node waarden groter dan de waarde van de wortel.
Een boom kan worden genoemd als een binaire boom als en slechts als het maximum aantal kinderen van elke van de knooppunten beide.
Een boom kan worden genoemd als een binaire zoekboom als en alleen als het maximum aantal kinderen van een van de knooppunten is twee en de linker kind is altijd kleiner dan de rechter kind.



















