2013-04-29 3 views
1

Dois-je toujours utiliser des données comme valeur clé pour les arborescences de recherche binaire? Je demande ceci parce que j'aurais besoin de la clé à un certain moment si je veux rechercher un élément dans l'arbre. Y a-t-il une autre alternative?Traitement des "clés" dans les arbres de recherche binaire

Par exemple, s'il vous plaît considérez le code suivant:

class Node { 

int iData; // data used as key value 
double fData; // other data 

Node leftChild; // this node's left child 

Node rightChild; // this node's right child 

} 

Ma deuxième question:

Est-il possible que je peux trouver des éléments dans un arbre binaire comme Binary Tree n'a pas seulement la propriété comme l'arbre de recherche binaire où le noeud gauche du parent doit être inférieur au parent et le noeud droit doit être plus grand.

Répondre

2
  1. Je ne vois pas pourquoi vous avez toujours besoin d'une clé. Vous pouvez simplement utiliser double fData comme valeur que vous utilisez pour déterminer quel nœud est plus grand/plus petit (si votre exigence convient).
  2. Je crois que Binary Seach Tree est un arbre binaire où les éléments sont classés. Par conséquent, les nœuds d'un arbre binaire ne sont pas nécessairement ordonnés. Alors oui, vous pouvez toujours trouver des éléments sur un arbre binaire - mais vous devez analyser le nœud entier. Vous perdez l'avantage de performance d'un BST
+0

Merci pour votre réponse! – Tan

Questions connexes