Listes chainées

engy -  
 engy -
bonjour à tous,

je n'arrive pas à comprendre ce que fait un programme que mon prof nous a
donné. Je ne sais pas ce que fait la flèche -> dans le programme.
par exemple:
((*pt)->v <v) ou encore (*pt)->v = v; sachant que v est déclaré comme int.

En fait voici le programme entier, j'aimerais afficher la liste chainée:
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <time.h>
#define N 10
typedef struct LC LC;

struct LC{
int v;
struct LC * next;
};
LC * debut = NULL;

void placerNoeud(int v) {
LC ** pt = &debut, ** prev = NULL, * next;
printf ("v= %d\n",v);

while((*pt != NULL) && ((*pt)->v < v)) {
prev = pt;
//printf("prev = %d\n",*prev);
//printf("pt = %d\n",*pt);
pt = &((*pt)->next);
}

next = *pt;
*pt = malloc(sizeof (*pt)[0]);
assert(*pt);
(*pt)->v = v;
printf("%d\n",(*pt)->v);

(*pt)->next = next;
if(prev)
(*prev)->next = *pt;
}
int main(void) {
int i;
srand(time(NULL));
for(i = 0;i < N; i++)
placerNoeud((int)((double)N * rand()/(RAND_MAX+1.0)));
return 0;
}

si vous avez une réponse à me donner je vous en remercie d'avance.

2 réponses

guyom
 
salut,

désolé le c c'est franchement pas mon truc... tout s'que peux te dire c'est que la flèche sert à accéder a un attribut d'une structure, exactement comme la notation pointée, sauf que si tu passe par un pointeur il faut mettre ->.

pour le reste.............

voilà a+
0
engy
 
merci pour ta réponse guyom
0