Arbre Objective-c
Ceetix
Membre
Bonsoir bonsoir !
Ma question est simple, je suis en train de voir en cours le principe des arbres (binaire, n-aire) en langage C.
Je voulais savoir s'il était posssible d'implémenter ce principe à l'obj-c et si oui, de quelle maniere?
Merci ^^
Ma question est simple, je suis en train de voir en cours le principe des arbres (binaire, n-aire) en langage C.
Je voulais savoir s'il était posssible d'implémenter ce principe à l'obj-c et si oui, de quelle maniere?
Merci ^^
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
NSMutableArray * children;
Node * parent;
.........
}
Un noe“ud retient ses fils par le mécanisme automatique du retain lors d'un [children addObject:...]
Il ne retient pas son père pour éviter le cyclage lors de la destruction de l'arbre.
c'est le nombre de fils ? genre pour 5 fils j'aurai 5 case dans mon array ?
Je comprend pas par contre le Parent ...
En C pour un arbre binaire je fais ca :
typedef struc sNoeud {
int iInfo;
struct sNoeud *pFilsG;
struct sNoeud *pFilsD;
}Noeud;
Tout comme pour les listes chaà®nées par exemple où parfois on n'a qu'une référence au suivant (listes simplement chaà®nées) et parfois on a une référence au suivant mais aussi au précédent (liste doublement chaà®née), ça dépend de ce dont tu as besoin.
Là si dans ton arbre en C tu veux descendre vers le fils de gauche ou de droit pas de souci, mais si tu veux remonter vers le parent d'un fils (tu as un noeud et tu veux savoir quel est son parent autrement dit de qui il est le fils) tu ne peux pas à moins de reparcourir tout l'arbre pour le retrouver.
Maintenant pour mimer le comportement que tu décris avec ton code C mais en Objective-C, c'est simple, il suffit de transformer ta structure en classe. Si tu n'as que deux fils, filsG et filsD, donc un arbre binaire, tu peux avoir une variable pour chacun comme c'est le cas dans ton code C : C'est exactement pareil sauf qu'en plus dans ton code Objective-C tu as une classe et non juste une structure C donc tu peux ajouter des méthodes à cette classe, des accesseurs bien sûr, mais aussi des méthodes qui te disent si ton noeud est une feuille (aucun filsGauche ni filsDroit) ou d'autres trucs, qu'en C tu es obligé d'implémenter sous forme de fonctions indépendantes de ta struct (qui prennent la struct en paramètre de la fonction typiquement) donc c'est moins "objet".
Si tu commences à avoir N fils, plutôt que d'avoir N variables, tu peux avoir un tableau, en C ça sera des tableaux C (avec la nécessité d'indiquer en plus le nombre d'éléments par exemple), en Objective-C ça se fera avec un NSMutableArray comme indiqué par Philippe.
Je vais m'y mettre ^^
(éventuellement, les noe“uds de ton arbre C peuvent contenir des objets Objective-C si c'est le but...)
Bien sûr, tout C est dans Objective-C!!
Vais pouvoir appliquer mes cours