Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3358 connectés 

 


Dernière réponse
Sujet : [C - listes chainées] Votre avis sur ce code...
Jar Jar

flo850 a écrit a écrit :

 typedef struct{
     int sommet;
     Element *tab=NULL;
     int taille=0;
}Pile;



C'est clair que les listes chaînées, ça va 5 minutes, et un bon gros tableau est souvent plus clair.
N'oublie pas de réallouer la taille par gros morceaux, pas à chaque fois.


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Jar Jar

flo850 a écrit a écrit :

 typedef struct{
     int sommet;
     Element *tab=NULL;
     int taille=0;
}Pile;



C'est clair que les listes chaînées, ça va 5 minutes, et un bon gros tableau est souvent plus clair.
N'oublie pas de réallouer la taille par gros morceaux, pas à chaque fois.

flo850 tu as fait une jolie liste , mais pourquoi ?
tu as dit que tu avais besoin d'une pile , non ?
le plus simple pour la pile c ca :
 typedef struct{
     int sommet;
     Element *tab=NULL;
     int taille=0;
}Pile;
Patte de Chevre en fait le but c'est de crée une pile representant une expression parenthésé puis de calculer l'expression...
 
et en fait j'y arrive pas  :cry:
Ace17 Ben si c'est pour faire une liste chainée sans but précis, moi je rajouterais un pointeur vers l'élement précédent...Ca peut toujours servir...
LetoII Il est pas mal ton code vincedetroy
Babekiller Il faudrait que tu nous dises le but exact de l?exercice parce que sinon on peut pas te dire si on peut faire mieux !!!
 
Par contre j?ai un TP avec un DEQUE :
 
 
#include <stdio.h>
#include<stdlib.h>
 
 
typedef struct chain_deque
{
 struct chain_deque *precedent;
 int entier;
 struct chain_deque *suivant;
} chainon;
 
 
 
typedef struct deque
{
 struct chain_deque *tete;
 struct chain_deque *queue;
} ptr;
 
 
 
void ajoute_tete(struct deque* d,int nombre)
{
 struct chain_deque* ptr_c;
 
 ptr_c=(chainon*)malloc(sizeof(chainon));
 
 
 if (d->tete!=NULL)
 {
  d->tete->precedent=ptr_c;
 }
 
 
 if (d->queue==NULL)
 {
  d->queue=ptr_c;
 }
 
 ptr_c->entier=nombre;
 ptr_c->precedent=NULL;
 ptr_c->suivant=d->tete;
 
 d->tete=ptr_c;
 
}
 
 
 
 
void ajoute_queue(struct deque* d,int nombre)
{
 
 struct chain_deque* ptr_c;
 
 ptr_c=(chainon*)malloc(sizeof(chainon));
 
 if (d->queue!=NULL)
 {
  d->queue->suivant=ptr_c;
 }
 
 if (d->tete==NULL)
 {
  d->tete=ptr_c;
 }
 
 ptr_c->entier=nombre;
 ptr_c->precedent=d->queue;
 ptr_c->suivant=NULL;
 
 d->queue=ptr_c;
 
}
 
 
 
 
void supprim_tete(struct deque* d)
{
 
 struct chain_deque* ptr_c;
 
 ptr_c=d->tete
 d->tete=d->tete->suivant;
 
 free(ptr_c);
 
 
}
vincedetroy Est ce que sa vous semble correcte ? Ya t'il pas mieux à faire ?
Merci
 
typedef struct cellule
{
 void *info;
 char codeinfo;
 struct cellule *suivant;
} CELL;
 
 
CELL *Creation_Cellule(void *info, int code)
{
 CELL *pcell=(CELL *) malloc(sizeof(CELL));
 if (!pcell)
  pb_mem();
 else
 {
  pcell->codeinfo=code;
  pcell->info=info;
  pcell->suivant=NULL;
 }
 return pcell;
}
 
 
void Empilage (CELL **ptete, CELL *nouv)
{
 // les nouveaux s'insèrent en tête
 if (*ptete == NULL)
 {
  *ptete=nouv;
 }
 else
 {
  nouv->suivant=*ptete;
  *ptete=nouv;
 }
}
 
CELL* Depilage (CELL **ptete)
{
 //On enlève le dernier arrivé
 CELL *ptr=*ptete;
 if (*ptete)
  *ptete= (*ptete)->suivant;
 return ptr;
}

 

[jfdsdjhfuetppo]--Message édité par vincedetroy--[/jfdsdjhfuetppo]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)