Convertir liste ch en arbre binaire ordonné

Fermé
chevalier_25 - 29 oct. 2009 à 00:03
 pacorabanix - 29 oct. 2009 à 22:13
salut,

salut j'ai vraiment des prob a créer un algo pour conversion liste chainé -> arbre binaire ordonné, est c que quelqu'un peut m donner une idée , et merci d'avance
A voir également:

3 réponses

pacorabanix
29 oct. 2009 à 00:08
Tu dois juste créer un algorithme ou le coder ? si tu codes, en quel langage; et as-tu tes structures d'arbre et de liste déjà faites ?

Sinon, en supposant que l'arbre et la liste sont déjà faits, tu n'as qu'à faire :

Tant que La liste n'est pas vide
  Ajouter le premier élément de la liste à l'arbre
  supprimer le premier élément de la liste
Fin tant que


ou alors ton problème est : comment ajouter un élément à un arbre de sorte qu'il reste ordonné ?
1
chevalier_25
29 oct. 2009 à 21:40
normalement je vais le coder avec c mais j'ai pas vraiment des idées pratique pour faire cette conversion

c'est pas si simple que tu pense pacorabanix ton algo ne donne que la démarche
en tous cas merci pour ton aide
0
pacorabanix
29 oct. 2009 à 21:51
c'est pour ça que je t'ai dit :

et as-tu tes structures d'arbre et de liste déjà faites ?

Sinon, en supposant que l'arbre et la liste sont déjà faits, tu n'as qu'à faire : (...)


Donc le problème est de créer une structure d'arbre et une structure de liste.

Je dois t'avouer que dans les détails je ne sais plus trop comment faire en C, car c'est tellement simple avec la conception objet :) en C++ ou en Java par exemple.

La liste, c'est plutot facile, tu peux faire un tableau.

Ensuite, tu parles d'arbre binaire ordonné. Je suppose donc que tu sais ce que c'est. Il y a plusieurs manières d'ordonner un arbre, et il faudrait déjà savoir laquelle.

En fait toute l'idée est de programmer l'algorithme d'une fonction qui ajoute une donnée à un arbre de sorte qu'il reste ordonné.

Mais sans conception objet je ne suis, comme je l'ai dit juste avant, pas compétent pour créer la *structure* de l'arbre (sous quelle forme tu va l'implémenter : un tableau de struct par exemple ? ça j'en sais rien).

Par contre si tu me dis comment est ordonné ton arbre je peux t'aider pour l'algorithme d'ajout d'un élément pour qu'il reste trié (c-à-d la chose principal algorithmiquement parlant de ton problème)
0
chevalier_25
29 oct. 2009 à 22:06
je sais pas pourquoi cette matiere de strcuture de donnée se pratique avec c pourquoi pas utiliser c++ ou java ca serra plus interesant
avec c c'est vraiment de la merde
0
pacorabanix
29 oct. 2009 à 22:13
oui c'est un choix pédagogique probablement, c'est surtout un prétexte pour vaus faire apprendre comment on programmait avant les objets, mais je suis d'accord, c'est pas facile ;)...

Ceci dit : puisque tu me dis que c'est un cours de structures de donnée, on a bien dû t'expliquer comment on voulait que tu fasses le squelette de ta liste et de ton arbre, non ? (pas ordonné) Un tableau de struct ?
0