Il m'arrive d'avoir une base de données avec une table qui contient toutes les combinaisons possibles de sujets, de verbes et de compléments possibles.Structure de données d'arbre et données
Cette table ressemble à une table de jonction avec les colonnes Id correspondance à mes autres tables (table sujet, table verbes, complète le tableau).
Dans mon programme, j'utiliser une structure arborescente pour représenter la table de jonction et chaque noeud est donc simplement un objet avec une propriété ID (subjectId ou verbId ...).
Ce que je ne comprends pas bien est de savoir où mettre les données réelles Id cartes pour. Je croyais que j'avais deux options:
- rendre les données une propriété de chaque nœud
- rendre les données un nœud
Dans le premier cas, le seul traitement que je fais est de charger le table de combinaison et créer l'arbre. Et quand j'ai besoin des données qui vont avec, je le charge à la demande. Mais pour garder une trace de la position des données dans l'arbre, les données ont une propriété qui pointe vers le nœud auquel elles appartiennent (un hack évidemment pour éviter d'avoir à chercher dans tout l'arbre (même si ce n'est qu'un O (log (n)) opération.) En outre, je ne traiterai avec un nœud dans le programme entier, car il est un moyen pratique d'accéder aux enfants du nœud alors.
Dans le second cas, si je devais faire les données réelles un nœud, je devrais charger toutes les données à la fois avant de le consommer.En outre, j'ai encore besoin de créer une copie des données si les «parents parentaux de noeud» utilisent les mêmes données
Y a-t-il un moyen propre de réaliser ce que j'essaie de faire? Énumérés ci-dessous est ce que J'ai actuellement
public class Node<Word>{
public Word Data { get; set; }
public Guid ID { get; set; }
..... // other necessary tree like stuff
}
public class Word
{
public Node NodeItem { get; set; }
}
Ou
public class Word : Node{}
J'espère que la question est assez claire. laissez-moi savoir si vous avez besoin de plus de détails et je vais mettre à jour la question avec elle. Merci.
oups! en effet ce n'est pas un arbre binaire ..! :-) – ak3nat0n