Salut,
Je suis de retour.. et les questions aussi :)
je dois manipuler des structures du type
typedef struct cotation
{
char nom[50];
int valeur_titre;
char date[10];
int nombre_titres;
struct cotation *precedent;
struct cotation *suivant;
} COTATION;
en utillisant les listes chainées et il faut que je puisse les trier selon le nom, date, etc.
Je voulais utiliser un arbre binaire au début avec un classement par nom mais après il me sera difficile d'effectuer le tri suivant une autre variable.
Si j'utilises des listes chainées doubles "simples", il faut également un premier critère de tri...
Exemple si je veux trier par date (indépendamment du reste), mes listes chainées classées par nom ne servent plus à grand chose...
ami du c, si tu es dans le coin!
# Séparer données et organisation
Posté par netsurfeur . Évalué à 3.
# tri avec un comparateur en argument
Posté par Krunch (site web personnel) . Évalué à 4.
En fait j'ai écrit cett e fonction il y a quelques jours. C'est du C++ qui marche sans doute pas (finalement j'ai utilisé la STL) mais l'idée y est: http://krunch.servebeer.com/~krunch/vrac/cours/05-06-1linf/c(...) (la méthode StringNode::qsort()). Tu trouvera sans doute un exemple plus propre (et fonctionnel) en lisant le code du qsort() de la glibc mais qui lui s'applique aux tableaux.
Rien à voir mais il y a aussi moyen de gagner de la place en ne stockant qu'un seul pointeur par noeud: tu xor les deux pointeurs et tu utilises l'adresse d'où tu viens pour "décoder" l'adresse suivante. En plus avec ce truc ta liste est inversible en temps constant. http://www.chiark.greenend.org.uk/~sgtatham/algorithms/revli(...)
(c'était la minute hors sujet mais c'est toujours bon à savoir)
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
# Les questions à se poser
Posté par Christophe Fergeau . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.