begin process at 2012 05 30 03:48:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Divers

 > 

liste circulaire contigue


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

liste circulaire contigue

mercredi 9 avril 2008 à 18:21:36 | liste circulaire contigue

bidouza

bonjour a tous,
voila je suis sur un projet de "liste circulaire contigue" en langage c , mais là je coince sur la fonction supprimer, en fait je n'arrive à supprimer que la tete ou la queue de la liste . donc si quelqu'un a une astuce? et merci d'avance.
    ci-dessous le code:

 int supprimer(LISTE L, int pos){
   int i,j;
   ELEMENT e1,e2;
  e1=elementCreer();
   e2=elementCreer();
   /* vérifier si la liste est vide  */
   if (listeVide(L)) {
      printf("\nErreur de suppression: liste vide.");
      return 0;
   }
   /* vérifier si la position est valide */
   if(pos < 1 || pos >(L->lg)) {
      printf("\nErreur de suppression: position %d invalide.",pos);
      return 0;
   }
   /* suppression d'un élément */
   elementDetruire(L->element[(L->tete +pos-1)%LongMax]);
   /* décalage à gauche de tableau */
    if(pos==1)
    L->tete=(L->tete+1%LongMax);
 else if(pos==L->lg)
  L->queue=((L->queue)-1)%LongMax;
 else if(pos>(L->lg)/2)
 {
  j=pos;
  for (i= L->tete+pos-1; i<L->tete+L->lg -1; i ++)
  {
   
   printf("**********\nje suis laaaa\n*******");
   printf("**********\npos=%d\n*******",pos);
   e1=elementCopier(recuperer(L,j));
   printf("\ne1=");
   elementAfficher(e1);
   e2=elementCopier(recuperer(L,j+1));
   printf("\ne2=");
   elementAfficher(e2);
      elementAffecter(&e1, e2);
   j++;
   //free(e2);
  }
  L->queue=((L->queue)-1)%LongMax;

 }
 else{
  j=pos-1;  
  for(i =L->tete+pos-1;i>L->tete;i--)
  {
   
   printf("**********\npos=%d\n*******",pos);
    e1=elementCopier(recuperer(L,j));
    printf("\ne1=");
   elementAfficher(e1);
    e2=elementCopier(recuperer(L,j+1));
    printf("\ne2=");
   elementAfficher(e2);
      
   elementAffecter(&e2, e1);
    j--;
    //free(e1);
  }
   /* décrémentation de taille de liste */

  L->tete=(L->tete+1%LongMax);
    }
 (L->lg)--;
   return 1;
}



Cette discussion est classée dans : tete, printf, pos, e1, e2


Répondre à ce message

Sujets en rapport avec ce message

Problème avec vector<char> [ par gargourifahmi ] Salut, J'ai un pb dont je n'ai pas pu résoudre. En fait j'utilise un vecteur de caractère pour stocker des variables sous forme de caractères. Lors de probleme en listes chainées. [ par ryuzaki ] slt t le monde je suis un débutant en programmation, j"ai un problème d'accomplir mon mini projet en langage c.je veux justement supprimer le premier Fusion de deux fichiers structurés [ par morayma ] J'ai écris un programme en C qui fusionne deux fichiers avec la même structure d'employés et ordonnés par ordre alphabétique croissant des noms. J'ai jeux mode console en c [ par fifiprog ] Bonsoir a tous je dois creer un jeux sur un damier 10x10 ou tout d'abord deux joueurs pourrons s'affronter c'est le jeux des loups et agneau le but es probléme de déplacement d'une case a une autre dans un tableaux de type char* [ par mlikos ] Bonjour, est ce qq1 peut m'aider a résoudre ce problème : #include #include #include struct coordonnees { int x; int y; }; typedef struc traitement des ensemble sous cpp [ par samissam ] je cherche un algorithme qui divise un ensemble donné en deux soit E (il contient des sous ensembles comme présenter en bas par exemple en E1 et E2 av algoritme de traitement des ensemble sous c [ par samissam ] je cherche un algorithme qui divise un ensemble donné en deux soit E (il contient des sous ensembles comme présenter en bas par exemple en E1 et E2 a un peut d'aide svp. (pointeur?) [ par mana ] int *tab[10]; int *pos; int create(int val){ if (val>=0 && val=0 && val<10) pos=tab[val]; // ligne OK } dans la fo CalculatriceC [ par florent175 ] Bonjour, Je voudrais avoir un avis sur mon... tous premier programme qui marche.[^^happy13] Il est programmer en C et il est très simple.[^^happy17]


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales