Differenza tra albero binario e albero binario di ricerca

voti
282

Qualcuno può spiegare la differenza tra albero binario e albero binario di ricerca con un esempio ?

È pubblicato 17/06/2011 alle 01:42
fonte dall'utente
In altre lingue...                            


12 risposte

voti
498

albero binario: albero in cui ogni nodo ha fino a due foglie

  1
 / \
2   3

Binary albero di ricerca: Usato per la ricerca . Un albero binario in cui il bambino di sinistra contiene solo i nodi con valori inferiori il nodo padre, e dove il figlio destro solo contiene i nodi con valori maggiori o uguali al genitore.

  2
 / \
1   3
Risposto il 17/06/2011 a 01:55
fonte dall'utente

voti
30

Un albero binario è fatta di nodi, in cui ogni nodo contiene un puntatore "sinistra", un puntatore "destra", e un elemento di dati. "Root" punta il puntatore al nodo più alto nella struttura. I puntatori a destra ea sinistra in modo ricorsivo indicano minori "sottostrutture" su entrambi i lati. Un puntatore nullo rappresenta un albero binario senza elementi - l'albero vuoto. La definizione ricorsiva formale è: un albero binario è vuota (rappresentato da un puntatore nullo), o è costituito da un singolo nodo, dove i puntatori sinistro e destro (ricorsivo definizione avanti) ogni punto di un albero binario.

Un albero binario di ricerca (BST) o "ordinata albero binario" è un tipo di albero binario in cui i nodi sono disposti in ordine: per ogni nodo, tutti gli elementi in suo sottoalbero sinistro sono meno al nodo (<), e tutti gli elementi nel suo sottoalbero destro sono superiori al nodo (>).

    5
   / \
  3   6 
 / \   \
1   4   9    

L'albero raffigurato è un albero binario di ricerca - il nodo "radice" è un 5, e suoi nodi sottoalbero sinistro (1, 3, 4) sono <5, e suoi nodi sottoalbero destro (6, 9) sono> 5. ricorsivamente, ciascuna delle sottostrutture deve anche obbedire binario vincolo ricerca dell'albero: in (1, 3, 4) sottostruttura, il 3 è la radice, il 1 <3 e 4> 3.

Attenzione per l'esatta formulazione dei problemi - un "albero binario di ricerca" è diverso da un "albero binario".

Risposto il 05/07/2012 a 16:32
fonte dall'utente

voti
9

Un albero binario di ricerca è un particolare tipo di albero binario che espone la seguente proprietà: per ogni nodo n, il valore di ogni nodo discendente nel sottoalbero sinistro di n è inferiore al valore di n, e il valore di ogni nodo discendente nel sottoalbero destro è maggiore del valore di n.

Risposto il 27/02/2013 a 14:20
fonte dall'utente

voti
12

Come tutti sopra ha spiegato la differenza tra albero binario e albero binario di ricerca, sto solo aggiungendo come verificare se il dato albero binario è albero binario di ricerca.

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);

}

Spero che vi aiuterà. Scusate se sto deviando dal tema come ho sentito vale la pena ricordare in questa sede.

Risposto il 28/02/2013 a 07:18
fonte dall'utente

voti
51

Albero binario è una forma specializzata di albero con due bambini (Child Left e figlio destro). E 'semplicemente la rappresentazione di dati in struttura ad albero

Binary Search Albero (BST) è un particolare tipo di albero binario che segue seguente condizione:

  1. nodo figlio sinistro è più piccolo rispetto al suo nodo padre
  2. destra nodo figlio è più grande rispetto al suo nodo padre
Risposto il 01/04/2013 a 14:19
fonte dall'utente

voti
3

Un albero binario è un albero i cui figli non sono mai più di due. Un albero binario di ricerca segue l'invariante che il figlio sinistro dovrebbe avere un valore inferiore chiave del nodo principale, mentre il bambino destra dovrebbe avere un valore superiore a chiave del nodo principale.

Risposto il 06/06/2013 a 06:21
fonte dall'utente

voti
3

La ricerca binaria albero: quando ordine simmetrico è fatto su albero binario, si ottiene valori ordinati di elementi inseriti albero binario: nessun ordine ordinata viene trovato in qualsiasi tipo di attraversamento

Risposto il 19/02/2014 a 02:18
fonte dall'utente

voti
1

Per controllare wheather o meno di un determinato albero binario è Binary Search Albero ecco è un approccio alternativo.

Traverse Albero In Inorder moda (cioè Child Left -> Parent -> figlio destro), Negozio attraversato dei dati di nodo in una variabile temporanea diciamo temperatura , poco prima della conservazione in temperatura , Controllare wheather Dati attuali nodo è superiore quindi precedente o no . Poi basta rompere fuori, albero non è Binary Search Albero altro attraversare end fino.

Di seguito è riportato un esempio con 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;
}

Mantenere variabile temp

Risposto il 04/01/2015 a 17:59
fonte dall'utente

voti
9

Albero binario rappresenta una struttura di dati che si compone di nodi che possono solo avere due bambini riferimenti.

Binary Search Albero ( BST ) d'altra parte, è una forma speciale di albero binario struttura dati in cui ogni nodo ha un valore comparabile, e più piccoli i bambini valutati collegati a sinistra e bambini valutati più grandi attaccato alla destra.

Così, tutti i BST 's sono Albero binario ma solo un po' di albero binario ' s può essere anche BST . Notifica che BST è un sottoinsieme di albero binario .

Così, Albero binario è più di un generale di dati-struttura di Binary Search Albero . E inoltre si deve avvisare che Binary Search Albero è un allineati albero, mentre non esiste una serie di regole per generici albero binario .

Albero binario

Una Binary Treeche è non una BST;

         5
       /   \
      /     \
     9       2
    / \     / \
  15   17  19  21

Binary Search Albero (ordinate Albero)

Un Binary Search albero che è anche un albero binario ;

         50
       /    \
      /      \
     25      75
    /  \    /  \
  20    30 70   80

Ricerca binaria immobili Albero Nodo

Anche comunicare che per ogni nodo padre nel BST ;

  • Tutti i nodi di sinistra hanno valore inferiore al valore del nodo padre. Nell'esempio superiore, i nodi con valori {20, 25, 30} che sono tutti situati a sinistra ( discendenti di sinistra ) di 50, sono più piccole di 50.

  • Tutti i nodi di destra hanno una maggiore valore rispetto al valore del nodo padre. Nell'esempio superiore, i nodi con valori {70, 75, 80} che sono tutti situati sulla destra ( discendenti destro ) di 50, sono superiori 50.

Non c'è una tale regola per albero binario Node. L'unica regola per albero binario nodo sta avendo due bambini in modo che si auto-spiega che il motivo chiamato binario .

Risposto il 18/03/2016 a 17:41
fonte dall'utente

voti
4

albero binario

Albero binario può essere qualsiasi cosa che ha 2 bambini e 1 genitore. Può essere implementato come lista o array legato, o con la tua API personalizzata. Una volta che si inizia a aggiungere regole più specifiche in esso, diventa più albero specializzata . Più comune implementazione noto è che, aggiungere nodi più piccoli su quelli di sinistra e più grandi su destra.

Ad esempio, un albero binario etichetta di dimensione 9 ed altezza 3, con un nodo radice il cui valore è 2. Albero è sbilanciato e non filtrate . https://en.wikipedia.org/wiki/Binary_tree

entrare descrizione dell'immagine qui

Ad esempio, nella struttura a sinistra, A ha i 6 figli {B, C, D, E, F, G}. Esso può essere convertito in l'albero binario sulla destra.

entrare descrizione dell'immagine qui

Ricerca binaria

La ricerca binaria è la tecnica / algoritmo che viene utilizzato per trovare elemento specifico sulla catena nodo. La ricerca binaria funziona su array ordinati .

La ricerca binaria confronta il valore di destinazione per l' elemento centrale della matrice; se sono disuguali, metà in cui il bersaglio non può giacere viene eliminata e la ricerca continua sulla restante metà finché è successo o l'altra metà è vuoto. https://en.wikipedia.org/wiki/Binary_search_algorithm

entrare descrizione dell'immagine qui

Un albero che rappresenta la ricerca binaria . La matrice essendo ricercato ecco [20, 30, 40, 50, 90, 100], e il valore obiettivo è 40.

entrare descrizione dell'immagine qui

albero binario di ricerca

Questa è una delle implementazioni di albero binario. Questa è specializzato per la ricerca .

Strutture di dati di ricerca binaria albero e B-tree si basano sulla ricerca binaria .

Alberi binari di ricerca (BST), a volte chiamato ordinati o ordinati alberi binari, sono un particolare tipo di contenitore : strutture di dati che memorizzano "voci" (come i numeri, nomi, ecc) in memoria. https://en.wikipedia.org/wiki/Binary_search_tree

Un albero binario di ricerca di dimensioni e profondità 9 3, con 8 alla radice. Le foglie non sono disegnate.

entrare descrizione dell'immagine qui

E infine grande schema per il confronto delle prestazioni di ben noti data-strutture e algoritmi applicati:

entrare descrizione dell'immagine qui

Immagine tratta da algoritmi (4 ° edizione)

Risposto il 26/05/2017 a 18:45
fonte dall'utente

voti
0

In un albero binario di ricerca, tutti i nodi sono disposti in un ordine specifico - i nodi a sinistra di un nodo radice avere un valore più piccolo di quello che è radice, e tutti i nodi a destra di un nodo avere valori superiori al valore della radice.

Risposto il 28/07/2017 a 21:32
fonte dall'utente

voti
0

Un albero può essere definito come un albero binario se e solo se il numero massimo di bambini di qualsiasi dei nodi è due.

Un albero può essere definito come un albero binario di ricerca se e solo se il numero massimo di bambini di qualsiasi dei nodi è due e il figlio sinistro è sempre più piccolo del figlio destro.

Risposto il 27/05/2019 a 17:09
fonte dall'utente

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