Nwlapcug.com


Come impostare una struttura di ricerca binaria in Python

Alberi di ricerca binaria sono uno dei tipi di dati astratto base concepiti in programmazione informatica. Attraverso un albero binario di ricerca, è possibile definire una struttura di base attraverso algoritmi di input e di ricerca che rende individuazione e recupero di informazioni facile e sistematici. Poiché è un tipo di dati "astratto", è possibile implementare in qualche forma in più ogni linguaggio di programmazione, tra cui Python. Creazione di una classe per rappresentare l'albero, si può facilmente costruire un albero binario di ricerca semplice.

Istruzioni

1

Creare una classe per rappresentare l'albero. Tutto il codice rientrano in questa classe e controllo come le funzioni di albero:

Classe BinaryTree:

2

Definire i dati della struttura nella classe. In questa classe particolare, si definisce la struttura ad albero come un elenco di Python. L'elenco nell'albero binario inizia con una dimensione iniziale di 50:

... Tree = [-1] * 50

3

Creare la funzione di inserimento. Questa funzione utilizza la matematica semplice per determinare i punti di inserimento. Lo verificherà ogni spot. Se lo spot contiene un numero negativo (-1) il posto è vuoto e verrà inserito. In caso contrario, passa al punto successivo. Inserimento in un albero binario significa che valori minori si muovono al nodo "a sinistra" (2i + 1, dove "i" è l'indice di elenco corrente) e valori più elevati si spostano al nodo "destro" (2i + 2):

... def inserimento (self, valore):
... indice = 0
... mentre self._tree [Indice] > = 0:
... Se valore > self._tree [Indice]:
... indice = (indice di 2) + 1
... altro:
... indice = (2
indice) + 2
... self._tree [Indice] = valore

4

Creare una funzione di ricerca. La funzione di ricerca per la funzione insert si comporterà allo stesso modo, ma verificherà solo se il valore presente nell'albero:

... cerca di def (valore di auto,):
... indice = 0
... mentre self._tree [Indice] > = 0:
... se self._tree [Indice] = = valore:
... restituire True
... restituire False

Consigli & Avvertenze

  • Questa implementazione è solo uno scheletro di base di un albero binario. Esso non preforme più complicate operazioni quali la rimozione di controllo o un elemento di contorno.