Discussione:Albero binario di ricerca

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

Pagina riscritta[modifica wikitesto]

Appena riscritta la pagina. Spero vada bene, nel caso aspetto miglioramenti o commenti. Caretaker 16:04, 19 gen 2006 (CET)[rispondi]

Complimenti! Mi pare un ottimo lavoro, anche se per ora ho rivisto soltanto al volo la parte stilistica; intanto ho aggiunto gli interlink, che è buona norma inserire sempre. Lp (16:16, 19 gen 2006 (CET))[rispondi]
Ciao, veramente il codice è in Pascal? Potrei modificarlo liberamente in pseudocodice? JulesMiddle (15:47 20 giu 2013 (CET))
Sono 13 anni in ritardo, ma suggerirei di usare un linguaggio un po' più chiaro per il codice di implementazione: Wikipedia inglese ad esempio usa Python... Si potrebbe tradurre in Italiano il codice della pagina inglese... Steffo99 (msg) 15:15, 17 mag 2019 (CEST)[rispondi]

Pseudocodice[modifica wikitesto]

Smettetela di usare pseudo codice non aiuta nessuno e solitamente ha il brutto vizio di essere impreciso e tralasciare dettagli implementativi.

Costruzione di un albero binario a partire da un array ordinato con valori crescenti

Linguaggio C:

#include <stdio.h>
#include <stdlib.h>

typdef	char	DATA;

struct node {
	DATA	d;
	struct	node left;
	struct	node right
};

typdef	struct node NODE;
typdef	NODE	*BTREE;

BTREE init_node(DATA d1, BTREE p1, BTREE p2){
	BTREE t;
	
	t = malloc(sizeof(NODE))
	t->d	= d1;
	t->left = p1;
	t->right= p2;
	return t;
}

/* Costruzione di un albero binario da un array */

BTREE create_tree(DATA a[], int i, int size){
	if (i>= size)
		return NULL:
	else
		return (init_node(a[i], 
			create_tree(a, 2 * i + 1, size), 
			create_tree(a, 2 * i + 2, size)));
}

Complessità computazionale create_tree O(n).

La prima chiamata di create_tree i deve essere 0.

Se vi sembra che sia utile spostate pure questo codice nella pagina principale. 84.223.33.76 (msg) 20:33, 24 giu 2014 (CEST)[rispondi]