Verschil tussen binaire boom en binaire zoekboom

stemmen
282

Kan iemand het verschil tussen verklaren binaire boom en binaire zoekboom met een voorbeeld ?

De vraag is gesteld op 17/06/2011 om 01:42
bron van user
In andere talen...                            


12 antwoorden

stemmen
498

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
antwoordde op 17/06/2011 om 01:55
bron van user

stemmen
30

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".

antwoordde op 05/07/2012 om 16:32
bron van user

stemmen
9

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.

antwoordde op 27/02/2013 om 14:20
bron van user

stemmen
12

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.

antwoordde op 28/02/2013 om 07:18
bron van user

stemmen
51

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:

  1. linkerkind knooppunt iets kleiner Node
  2. rechterkind knooppunt groter is dan de bovenliggende knooppunt
antwoordde op 01/04/2013 om 14:19
bron van user

stemmen
3

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.

antwoordde op 06/06/2013 om 06:21
bron van user

stemmen
3

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

antwoordde op 19/02/2014 om 02:18
bron van user

stemmen
1

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

antwoordde op 04/01/2015 om 17:59
bron van user

stemmen
9

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 .

antwoordde op 18/03/2016 om 17:41
bron van user

stemmen
4

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

voer image beschrijving hier

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.

voer image beschrijving hier

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

voer image beschrijving hier

Een boom die binary search . De array wordt hier gezocht is [20, 30, 40, 50, 90, 100], en de doelwaarde 40.

voer image beschrijving hier

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.

voer image beschrijving hier

En tenslotte grote schema voor prestatievergelijking bekende datastructuren en algoritmen toegepast:

voer image beschrijving hier

Beeld uit Algorithms (4e editie)

antwoordde op 26/05/2017 om 18:45
bron van user

stemmen
0

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.

antwoordde op 28/07/2017 om 21:32
bron van user

stemmen
0

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.

antwoordde op 27/05/2019 om 17:09
bron van user

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