|
|
|
|
Bonjour!
Pourrais tu mettre le code déjà écrit qu'on puisse partir d'une base s'il te plait? Comme ça, on ira plus vite pour t'aider! ;-) Maily :-)))) Boumj'chtattrape |
voila le code ki me permet d'inserer des valeur en queue de chaine, et de les afficherdu debut à la fin. Pouvez vous m'aider a les afficher de la fin de la chine jusqu'au debut merci.
#include <stdio.h>
#include <stdlib.h>
typedef struct liste
{
struct liste *suivant;
struct liste *precedent;
int valeur;
}LISTE;
void affichage (LISTE *fin)
{
LISTE *p;
p=fin;
while (p != NULL)
{
printf ("%d\n", p->valeur);
p = p->suivant;
}
}
LISTE *insertion (int valeur, LISTE *p)
{
LISTE *nouveau;
p->precedent = p->suivant;
nouveau = malloc(sizeof(LISTE));
// printf("%d,%d",p->precedent,p->suivant);
p->suivant = nouveau;
nouveau->suivant=NULL;
nouveau->valeur = valeur;
return nouveau;
}
int main ()
{
int i, n;
LISTE *tete, *p;
printf ("Taille de la liste:");
scanf ("%d", &n);
p = (LISTE*) &tete;
for (i=1; i<=n; i++)
{
p = insertion (i*i, p);
}
affichage(tete);
}
|
Je dirais qu'il faut parcourir 2 fois la liste chainée... ce n'est pas très pratique, mais bon, il n'y a que ça à mon avis!
void affichageFin (LISTE *fin)
{
LISTE *p;
LISTE * q;
p=fin;
while (p != NULL)
{
q=p;
p = p->suivant;
}
while(q!=NULL){
p=q;
q=q->precedent;
printf("%d\n", p->valeur);
}
}
Maily :-)))) Boumj'chtattrape |
#include <stdio.h> #include <stdlib.h> typedef struct liste
{ struct liste *suivant; struct liste *precedent; int valeur; }LISTE; // tu peux utiliser le paramètre "alafin" dans la procédure // car tu ne modifies que la valeur locale (une copie sur la // pile du pointeur "p" passé en paramètre) void affichageFin (LISTE *alafin) { while (alafin != NULL) { printf("%d\n",alafin->valeur); alafin=alafin->precedent; } } void affichage (LISTE *fin) { LISTE *p; p=fin; while (p != NULL) { printf ("%d\n", p->valeur); p = p->suivant; } } LISTE *insertion (int valeur, LISTE *p) { LISTE *nouveau; p->precedent = p->suivant; nouveau = malloc(sizeof(LISTE)); if (nouveau != NULL) { // on vérifie tjs un pointeur alloué!!!! // printf("%d,%d",p->precedent,p->suivant); p->suivant = nouveau; nouveau->suivant=NULL; nouveau->valeur = valeur; } return nouveau; } int main () { int i, n; LISTE *tete, *p; /* *p est en fait ta fin de liste */ printf ("Taille de la liste:"); scanf ("%d", &n); p = (LISTE*) &tete; for (i=1; i<=n; i++) { p = insertion (i*i, p); } affichage(tete); affichagefin(p); } |
bnjr j' besion de documentaton sur les listes en algorithmique soit cerculaire et bidirectionnelle et chainnée es ce que vous pouvez m'aidée. |
| 23/10 22h14 | Liste doublement chaînée | Langage C |
| 07/10 17h14 | Liste simplement chaînée | Langage C |
| 02/12 12h13 | Listes circulaires | Langage C |
| 07/12 20h32 | Les files | Langage C |
| 07/12 21h12 | Les piles | Langage C |
| 19/05 19h15 | Liste doublement chainée en pascal | 2 |
| 09/04 15h38 | Suppression dans une liste doublement chainée | 2 |
| 22/12 19h07 | Problemme sur les listes doublements chaines | 3 |
| 16/03 22h31 | [c] liste simplement chainé | 4 |
![]() | ProtoWall - Protowall est un pare-feu léger fonctionnant en arrière-plan. Il consomme peu de ressources CPU (processeur) et RAM... | Catégorie: Firewall Licence: Freeware/gratuit |
![]() | avast! Virus Cleaner - Tout le monde connaît l' antivirus gratuit Avast . Son éditeur propose avast! Virus Cleaner, un nettoyeur de virus... | Catégorie: Antivirus Licence: Freeware/gratuit |
![]() | Double Driver - Double Driver est un outil qui vous permet de vérifier les pilotes installés sur votre système. Vous pouvez ainsi maintenir... | Catégorie: Pilotes Licence: Freeware/gratuit |
![]() | Windows XP SP2 - Les Service Packs constituent un moyen pratique, tout en un, d'accéder aux derniers pilotes, outils et améliorations en... | Catégorie: Librairies (DLL) Licence: Freeware/gratuit |
![]() | Double Pack (Colin McRae | Catégorie: Jeu vidéo PC | |
![]() | Listo CTC-480 | Catégorie: Casque audio | |
![]() | Splinter Cell Double Agent | Catégorie: Jeu vidéo Gamecube | 19.99 € PriceMinister |
![]() | Cartoon Network Speedway/Cartoon Network | Catégorie: Jeu vidéo Gameboy Advance | 7.99 € PriceMinister |