Partage
  • Partager sur Facebook
  • Partager sur Twitter

Les TDA (Types de Données Abstraits)

    2 novembre 2006 à 23:43:31

    Bonjour ! (enfin bonsoir)

    J'aurais voulu savoir si l'un ou plusieurs d'entre vous maitrîsent les TDA en C.
    (TDA ELEMENT, LISTE, PILE, FILE, ARBRE, etc.)

    Je galère pas mal notamment avec les trois premiers que j'ai cités.

    Visiblement je ne maitrîse pas encore assez le C pour réussir ce que j'essaie de faire (un interpreteur d'expressions arithmetiques).

    Si quelqu'un possédant des connaissances dans ce domaine pouvait m'aider, j'en serai vraiment ravi.

    Je peux egalement à votre demande expliquer quelques principes de ces TDA (pour ceux qui connaissent moins par exemple), même si c'est super dur à expliquer je peux néanmoins vous renvoyer vers un cours (un peu pourri) de mon prof (ici-même).

    Merci d'avance à tous les courageux.

    Anthony.
    • Partager sur Facebook
    • Partager sur Twitter
      3 novembre 2006 à 0:04:10

      En ce qui concerne les listes, ya de très bons tutos sur developpez.com, mais aussi sur le site du zéro...

      http://c.developpez.com/cours/
      http://www.siteduzero.com/tuto-3-9440-1-les-listes-chainees.html

      Si jamais les différents codes sur ces deux sites ne te suffisent pas, je te donne un lien vers une de mes bibliothèque de fonction pour les listes doublement chaînées. Elle est peut-être un peu plus complète (et peut-être un peu plus bugué?).

      http://www.siteduzero.com/forum-83-81100-p1-c-listes-doublement-chainees.html

      En ce qui concerne les arbres, je suis certains que google reste ton meilleur ami !! Mais un conseil, commence d'abord par bien assimiler le principe de liste chaînée avant de te lancer dans les arbres.. Les arbres te sembleront plus simple après avoir vu les listes.
      • Partager sur Facebook
      • Partager sur Twitter
      Inkamath on GitHub - Interpréteur d'expressions mathématiques. Reprise du développement en cours.
        3 novembre 2006 à 0:47:38

        Citation : PurpleSkunk

        Je peux egalement à votre demande expliquer quelques principes de ces TDA (pour ceux qui connaissent moins par exemple), même si c'est super dur à expliquer


        Euh, pas vraiment, non...

        http://mapage.noos.fr/emdel/tad.htm

        J'ai regardé le PDF de ton prof, c'est vrai qu'il est pas terrible (il manque des bouts en fin de ligne...)

        Exercice N° 2 (je passe sur les non conformités au langage C...)

        donne

        On a trouve 9.31323e-010 comme valeur finale
        FLT_EPSILON vaut 1.19209e-007

        Press ENTER to continue.

        une fois réécrit comme ceci :

        #include <stdio.h>
        #include <float.h>

        int main (void)
        {
           float eps;
           float min = 0, max = 1;
           const int N = 30;
           int i = 0;
           while (i < N)
           {
              eps = (min + max) / 2;
              if (1 + eps > 1)
        /* eps est trop grand */
                 max = eps;
              else
        /* eps est trop petit */
                 min = eps;
              i++;
           }
           printf ("On a trouve %g comme valeur finale\n", eps);
           printf ("FLT_EPSILON vaut %g\n", FLT_EPSILON);
           return 0;
        }

        J'ai donc quelques doutes sur la méthode de calcul...
        En double, ça donne :

        On a trouve 9.31323e-010 comme valeur finale
        DBL_EPSILON vaut 2.22045e-016

        Press ENTER to continue.

        ce qui n'est guère mieux...
        • Partager sur Facebook
        • Partager sur Twitter
        Music only !
          3 novembre 2006 à 1:40:20

          Tout d'abord merci iNaKol pour tes liens, mais c'est justement ce qu'utilisent les TDA pour leurs représentations, chose que j'ai déjà (plus ou moins) apprise.

          Mais ça rejoint le post très intéressant de -ed-, surtout concernant le passage sur la qualité du cours de mon prof (vraiment pas terrible).

          Car je me suis battu toute la soirée sur la représentation du TDA ELEMENT par chaîne de caractères, je croyais que mon TDA avait des problèmes, et finalement c'est ses TDA à lui qui sont nazes.

          Genre dans mon TDA j'ai une primitive ElementCreer (); :

          ELEMENT ElementCreer ()
          {
                  ELEMENT elt;
                  elt = malloc (sizeof (char) * LONGMAX_ELEMENT);
                  strcpy (elt, ELEMENT_VIDE);
                  return elt;
          }


          et lui ne s'embête même pas à faire des ElementCreer dans son code, il fait directement des :

          ELEMENT x;


          dans ses declarations. Forcément ça marchait pas très bien.

          Bien donc j'ai envie de dire que mon problème (s'il y en avait un) est résolu, mais je risque de revenir sur le sujet d'ici demain or ce week-end, donc je me permets de ne pas passer ce topic en [RESOLU], si vous n'y voyez pas d'inconvénients.

          Merci et bonne soirée.

          Anthony.


          EDIT : -ed-, tes deux sites contenus dans ta signature sont super intéressants, félicitations.
          • Partager sur Facebook
          • Partager sur Twitter

          Les TDA (Types de Données Abstraits)

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown