arbre naire en arbre binaire - Algo - Programmation
Marsh Posté le 12-01-2003 à 20:18:05
corvincent a écrit : je cherche un algo recursif permettant de transformer un arbre N-aire en arbre binaire. |
contexte?
Marsh Posté le 12-01-2003 à 20:37:02
simple algo qui a partir d'un arbre n aire le transforme en binaire
Marsh Posté le 12-01-2003 à 20:54:48
ben ça se fait pas comme ça, t'as bien des règles de transformation nan ?
Marsh Posté le 12-01-2003 à 22:08:47
corvincent a écrit : simple algo qui a partir d'un arbre n aire le transforme en binaire |
type 'a narytree =
| Nnode of 'a * 'a narytree list
| Nleaf;;
type 'a binarytree =
| Bnode of 'a * 'a binarytree * 'a binarytree
| Bleaf;;
let n2b n =
let rec n2b' = function
| Nleaf -> Bleaf
| Nnode(e, l) ->
let rec listToB = function
| [] -> Bleaf
| Nleaf::xs -> listToB xs
| Nnode(v, l)::xs -> Bnode( v, (listToB l), (listToB xs))
in Bnode(e, Bleaf, (listToB l))
in n2b' n;;
let v1 =
Nnode(10, [
Nnode(11, [
Nnode(21, [Nleaf]);
Nnode(22, [Nleaf]);
Nnode(23, [Nleaf])
]);
Nnode(12, [Nleaf]);
Nnode(13, [
Nnode(31, [Nleaf]);
Nnode(32, [Nleaf]);
Nnode(33, [Nleaf])
])
]);;
tiens,en O'caml style curryfié, j'ai choisi mes règles vu que tu te décides pas
Marsh Posté le 12-01-2003 à 22:46:03
Tu dois bien avoir une propriété à conserver dans la transformation, non ? Sinon ta question n'a aucun sens : tu prends tes éléments n'importe comments, et tu créé ton arbre binaire n'importe comment.
Bref, explique ce que tu veux.
Marsh Posté le 12-01-2003 à 23:17:40
Matafan a écrit : Tu dois bien avoir une propriété à conserver dans la transformation, non ? Sinon ta question n'a aucun sens : tu prends tes éléments n'importe comments, et tu créé ton arbre binaire n'importe comment. |
surtout que ça dépend de l'usage, en faisant le truc, je me suis dit que j'allais conserver la transitivité mais en réfléchissant, sur un arbre binaire, on a :
filgauche < noeudcourant < filsdroit
Mais sur un arbre Naire, à part:
premierfils < deuxièmefils < troisièmefils ...
je vois pas comment placer placer le noeud courant là-dedans.
Marsh Posté le 15-01-2003 à 12:55:42
Il y a bijection entre les arbres binaires et les arbres n-aires.
La relation de transformation est simple :
Marsh Posté le 12-01-2003 à 18:04:25
je cherche un algo recursif permettant de transformer un arbre N-aire en arbre binaire.
Merci