Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Programmation > C > Les listes chaînées > Lecture des commentaires

Les listes chaînées

Vous devez être inscrit pour pouvoir poster des messages

Page : 1  2  Suivante
Pseudo Commentaire
Page : 1  2  Suivante
Hors ligne iNaKoll # Posté le 22/09/2006 à 15:45:30 - Ce membre a mis la note : 18
Grosso merdo
Avatar
Groupe : Membres
Un tuto de qualité !! Les listes chaînées sont un excellent exercice sur les pointeurs et sont souvent mieux appropriées que les tableaux !

"La constante de couplage est fonction d'une certaine valeur constante que prend le champ scalaire des dilatations dans le vide quantique."
 
Hors ligne mleg # Posté le 24/09/2006 à 16:50:39 - Ce membre a mis la note : 18
None
Groupe : Membres
Yop !

Je t'en prie pour le bêta test, c'est normal. ;)

++.
 
Hors ligne Anonyme # Posté le 01/10/2006 à 21:42:18 - Ce membre n'a pas mis de note
Groupe :
dommage que t'abordes pas l'insertion en milieu de liste qui ma foi est bien plus interessant. comment garder une liste triée, listes doublement chainée, listes circulaires,...

m'enfin, bonne introduction aux listes.
Hors ligne pebg # Posté le 02/10/2006 à 22:56:15 - Ce membre a mis la note : 15
Vive les frites
Avatar
Groupe : Membres
Très bonne introduction au problème des listes chainées ... Bravo

mon premier site : Vignobles Ducourt
 
Hors ligne lexou # Posté le 02/10/2006 à 23:28:44 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Merci à tous pour vos encouragements. N'hésitez pas à me contacter par mp où même ici si vous avez des idées. Je ferais une mise à jour en fonction des questions qui m'auront étés posées, des problèmes que vous n'avez pas réussis à résoudre.
J'ajouterais surement quelques paragraphes pour approfondir un peu sur le sujet et vous donner la possibilité d'aller un peu plus loin dans vos implémentations.

Lexou pour vous servir...
 
Hors ligne Duael # Posté le 06/10/2006 à 11:04:00 - Ce membre a mis la note : 17
Y a un Balrog dans le pâté !
Avatar
Groupe : Membres
Vraiment pas mal du tout.
J'aime beaucoup ton approche du problème.
Tu as fait quelque chose de simple d'un truc très compliqué.

Bravo !

Je t'aime mon Léon !
Citation : Ohohoho
Alexbad: bluestorm: t'es occupé ?
bluestorm: je lis un article d'un dev Linux
Alexbad: tu pues t'es pas libre :D

 
Hors ligne HanLee # Posté le 09/10/2006 à 21:40:18 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Salut,

Bah globalement ton tutorial j'lai trouvé bien fait.

Sinon, il y a quelques fois où tu as dis que l'implémentation récursive était beaucoup plus gourmante en mémoire et en temps d'exécution. Ca dépend de la manière dont tu implémentes ton algorithme.
Il y avait des fois où tes algorithmes étaient mis en oeuvre sous forme de récursivité terminale (exemple : effacerListe dans tes exercices), et donc là le compilateur l'optimise pour le rendre aussi performant qu'une boucle (pas d'appel mais un saut, et on modifie directement les paramètres plutôt que de faire grossir la pile inutilement), ce que tout compilateur C qui se respecte devrait savoir faire (parce que dans les langages fonctionnels c'est quelque chose de systématique).

A+
Hors ligne lexou # Posté le 09/10/2006 à 22:21:57 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Tu m'apprends quelques chose à propos de ces optimisations du compilateur. Mais en tout cas le C n'est pas un language fonctionnel mais un language procédural, et c'est assez différent en fait. Ceci dit tes remarques peuvent rester valides, si quelqu'un peu les confirmer ce serait parfait !

Lexou pour vous servir...
 
Hors ligne nax # Posté le 21/12/2006 à 17:21:26 - Ce membre a mis la note : 16
Avatar
Groupe : Membres
L'insertion à n'importe quelle position, et la suppression du nieme element.

Et ensuite le même en C++ vec une classe ^^

16 ;)
 
Hors ligne Apobis # Posté le 22/03/2007 à 19:52:23 - Ce membre n'a pas mis de note
Groupe : Membres
Excellent tuto ! je me demandais justement comment marchaient les listes en C++ ^^
Hors ligne Cygal # Posté le 30/03/2007 à 14:07:07 - Ce membre n'a pas mis de note
Enfin Libre
Avatar
Groupe : Membres
Citation
Tu m'apprends quelques chose à propos de ces optimisations du compilateur. Mais en tout cas le C n'est pas un language fonctionnel mais un language procédural, et c'est assez différent en fait. Ceci dit tes remarques peuvent rester valides, si quelqu'un peu les confirmer ce serait parfait !


Et oui, il dit vrai !

Et quand tu fais ça :
Code : C
typedef element* llist;

Sur que c'est une bonne idée ? Ça risque de perturber les débutants qui ont du mal avec la notion de pointeur, et surtout la notion de pointeur de structure. Tu ne crois pas ?


Le Blog de l'Homme Moderne
« Un peu de curiosité, voyons. »
 
Hors ligne lexou # Posté le 30/03/2007 à 16:28:41 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Il y a des gens pour et des gens contre cette notation. Je trouve qu'elle est ici justifiée dans le sens ou elle permet de faire la distinction entre le passage d'une liste et d'un élément. Ce n'est en tout cas qu'une façon d'écrire les choses, la mécaniques sur les pointeurs n'en est pas modifié.

Cette notation peut, je te l'accorde, perturber les débutants au premier coup d'oeil mais il est bon je pense de se pencher sur la question car c'est quelque chose qu'il n'est pas rare de rencontrer.

Lexou pour vous servir...
 
Hors ligne -ed- # Posté le 04/04/2007 à 07:10:25 - Ce membre a mis la note : 16
C is a sharp tool
Avatar
Groupe : Membres
Bon tutoriel dans l'ensemble.

Je souhaiterais :
- Que l'on évite de 'cacher les pointeurs'. C'est confusant.
- Que l'on aborde le problème de la récursion qui simplifie les algorithmes et qui peut être optimisée par le compilateur si elle est 'terminale'.
- Que l'on traite le problème de la libération des ressources. (détruire une liste chainée).
- Que l'on envisage l'utilisation d'une structure 'liste' qui contient les pointeurs de début et de fin, ce qui permet d'accélérer les ajout en tête et en queue.
Code : C

struct node
{
   /* data */
   T data;

   /* link */
   struct node *p_next;
};

struct list
{
   struct node *p_head;
   struct node *p_tail;
};

Emmanuel Delahaye.
Non à la pub sur l'alcool sur Internet.

Des infos sur la programmation et le langage C:
http://bien-programmer.blogspot.com/
http://mapage.noos.fr/emdel/


Image utilisateur
 
Hors ligne FoxNounours # Posté le 13/04/2007 à 17:44:03 - Ce membre a mis la note : 18
Seul la follie me raisonne
Avatar
Groupe : Membres
Bonjours,

je fais un tuto sur un jeu en C. Je redirige les zéros vers ton tutoriel car j'utilise des listes chainée. Donc, je voulais t'en informer et te remercier.
Hors ligne GuGus963 # Posté le 22/04/2007 à 14:29:26 - Ce membre a mis la note : 20
Pour la connaissance libre !
Avatar
Groupe : Membres
Je te mets 20, ce tuto est excellent ! :)

Code : C

    /* Si l'élément est NULL c'est que la liste contient moins de i éléments */
    if(liste == NULL)
    {
        return NULL;
    }
    else
    {
        /* Sinon on renvois l'adresse de l'élément i */
        return liste;
    }


=> Autant mettre "return liste", non ? ^^
 
Hors ligne lexou # Posté le 22/04/2007 à 20:31:06 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Citation : GuGus963
=> Autant mettre "return liste", non ? ^^


Tout à fait correct et justifié, simplement un peu moins pédagogique selon moi : on pourrait penser qu'autre chose que null ai pu être retourné (exemple si on retournais directement la valeur associée à l'élément au lieu de son adresse) comme par exemple une macro d'erreur OUT_OF_BOUNDS (hors limites) ou autre.
Merci à toi !

Lexou pour vous servir...
 
Hors ligne BZH_Pietr0 # Posté le 03/06/2007 à 20:39:49 - Ce membre a mis la note : 19
Groupe : Membres
Génial ! Y'a pas d'autre mot ça m'a évité des heures de galère !
 
Hors ligne mykeys # Posté le 03/07/2007 à 17:04:00 - Ce membre a mis la note : 17
Unfaithful destiny
Avatar
Validateurs
Code : C
return (liste == NULL)? 1 : 0;


Il me semble que ce serait plus court de marquer:
Code : C
return liste == NULL;


Enfin, c'est mon avis :)

Excellent tuto par contre, il m'a aidé à créer mes listes variables et c'est très pratique (bien que ça consomme un peu plus de mémoire). 17/20.

Image utilisateur
Pas mal, hein?

Dites-vous que ces résultats sont les minimums, les serveurs de speedtest.net semblent surchargés :D .
 
Hors ligne lexou # Posté le 03/07/2007 à 17:27:54 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
@mykeys : Remarque encore une fois justifié et solution tout à fait correcte. Mais le plus court n'est pas forcement le plus pédagogique, enfin je crois... Et encore merci à tous !

Lexou pour vous servir...
 
Hors ligne Dagrut # Posté le 10/10/2007 à 17:05:44 - Ce membre a mis la note : 18
Be API! ^_^
Avatar
Groupe : Membres
Super tuto!
Et dire que j'ai récemment fait les mêmes fonctions avec des chaînes de char simples ^^ .

38/40 ^^

Racketiciel - Langage SMS
Lien cassé >> MP!
Mes programmes et mes circuits TMN/TMNF << Donnez votre avis! :)
Le pédalo c'est du passé. ^^
État jabber : Image utilisateur
















Adresse de test (Pour les spams). Ne pas envoyer de message!
ofguiauzomxumwcaysqx@yahoo.fr
 
Hors ligne DrFisher # Posté le 09/11/2007 à 22:17:28 - Ce membre a mis la note : 20
Vive mgs
Avatar
Groupe : Membres
Tuto extra, et ça réspècte le them du site, aborder de zéro! j'attends avec impatience des tuto sur les piles, les files, les arbres, les grpahs, les cartes, si c'est possible bien entendu!
merci pour le tuto, vraiment exellent! 20/20.

<citation nom="F-fisher">MGS n'est pas un loisir, c'est un savoir vivre.
Notre site web. (visitez, vous êtes les bienvenus :) )</taille><taille valeur="gros">
 
Hors ligne moutonkipete # Posté le 04/02/2008 à 22:18:40 - Ce membre a mis la note : 20
Groupe : Membres
Chapeau comme on dis chez moi ! :p
Trés bon tuto, c'est vrai que les listes doublement chaînées ne sont pas abordées... Mais je ne penses pas que c'était le but de ton tuto !
Il frole néamoins la perfection; ça sera donc un 20 pour un auteur du Zéro :D (paradoxal)

Merci Encore !
Hors ligne amine2610 # Posté le 23/02/2008 à 10:47:28 - Ce membre n'a pas mis de note
Groupe : Bannis
Vrm C'est un tuto très bien écrit, :) merci bien pour ce tutoriel ^^
Hors ligne Ikki_2504 # Posté le 25/02/2008 à 21:33:27 - Ce membre a mis la note : 20
Groupe : Membres
Superbe tuto : Le cours de ma prof était incompréhensible, ce tuto m'a grandement éclairé :)
Merci de faire des tutos clairs, avec pleins d'exemples écrits de manières différentes (ternaires ; récursifs...)
Bravo !
Hors ligne larnoult # Posté le 06/03/2008 à 18:25:14 - Ce membre a mis la note : 19
Groupe : Membres
Merci pour ce tuto super clair ! C'est un bon test pour un débutant (comme moi..) : il faut bien avoir intégré la logique des pointeurs pour capter ton tuto !
Hors ligne lexou # Posté le 12/03/2008 à 00:46:08 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Merci encore pour ces encouragements.
Je ferai peut être une révision de ce tuto, voir peu être un nouveau pour ne pas rendre celui ci trop complexe.

Lexou pour vous servir...
 
Hors ligne amine2610 # Posté le 28/03/2008 à 15:58:47 - Ce membre n'a pas mis de note
Groupe : Bannis
Un très bon tuto, c'est vraiment plus mieu que le cours de mon proféseur.
Merci bcp!!
Hors ligne miky-mike01 # Posté le 03/04/2008 à 16:40:51 - Ce membre a mis la note : 20
Avatar
Groupe : Membres
Franchement je le trouve vraiment bien expliqué et c'est pour cela que je met 20/20

.:: miky-mike ::.
Image utilisateur















Image utilisateur
 
Hors ligne yoch # Posté le 23/05/2008 à 10:03:25 - Ce membre a mis la note : 20
Avatar
Groupe : Membres
J'ai trouve ce tuto très clair et bien expliqué. Bravo pour tout !

Il va falloir que je m'y mette...
 
Hors ligne casper # Posté le 12/06/2008 à 23:15:32 - Ce membre n'a pas mis de note
Groupe : Membres
Salut,

Tout d'abord un grand merci pour ton tutoriel de bonne qualité ;-). Mais j'aimerais bien avoir quelques précisions sur ces fameux pointeurs ^^.

Par exemple dans ton tutoriel tu les déclares tous sous cette forme element* nomdevariable et non pas element *nomdevariable. Ce qui m'ammène à la question quelle est la différence entre les deux ? Car tu utilises un malloc directement sur element* truc = malloc... Alors que dans le cours de matéo, il est marqué un exemple dans le style de :

Code : C
1
2
element *mavariable = NULL;
mavariable = malloc...

Donc juste quelques précisions là-dessus histoire que tout soit bien clair dans ma tête ^^.

Et j'oubliais, pourquoi quand tu ajoutes un élément en fin de liste, tu renvoies quand même un élément de type liste ? Alors qu'il reste le même du début à la fin ? J'entends par là qu'on pourrait juste renvoyer un code d'erreur au cas où.

Merci à toi ;-).

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 214 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0406s (0.029s)