Explications sur les structures de donnees
Fermé
inteligence
Messages postés
42
Date d'inscription
mercredi 29 août 2007
Statut
Membre
Dernière intervention
10 septembre 2011
-
15 oct. 2007 à 19:27
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 17 oct. 2007 à 07:24
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 17 oct. 2007 à 07:24
A voir également:
- Explications sur les structures de donnees
- Effacer les données de navigation - Guide
- Comment sauvegarder toutes les données de mon téléphone - Guide
- Reinstaller windows sans perte de données - Guide
- Germain veut gérer les activités de son association avec une base de données. il a commencé à créer des tables dans un fichier, mais il n’est pas sûr du résultat. le fichier à télécharger contient uniquement le schéma de cette base de données. en l’état actuel, que peut-on en déduire ? - Forum Outlook
- Acquisition de données pci et contrôleur de traitement du signal ✓ - Forum Windows 10
4 réponses
Gorgo13
Messages postés
12
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
15 novembre 2009
23
16 oct. 2007 à 08:40
16 oct. 2007 à 08:40
void main()
{
cellule *L=NULL; // Tu declares un pointeur de type cellule et tu l'initialises a NULL... mais c'est pas necessaire.
L=(cellule *)(malloc sizeof(cellule)); // Tu alloues de la memoire pour ta structure. L va pointer vers un espace memoire "valide"
// qui contiendra ta structure.
scanf("%d\n",&L->valeure); // tu demandes a l'utilisateur de rentrer une valeur entiere au clavier,
// et cette valeur est affectee au membre "valeure" (au passage y'a pas de "e" a la fin) de L (qui a le type structure cellule).
// Avec scanf, il faut passer le pointeur vers "valeure", d'ou le &L->valeure,
// qui aurait aussi pu s'ecrire, &(L->valeure)
L->suivant=NULL; // tu assignes un pointeur NULL au pointeur "suivant". Ce truc s'appelle une liste chainee...
}
T'as compris?
{
cellule *L=NULL; // Tu declares un pointeur de type cellule et tu l'initialises a NULL... mais c'est pas necessaire.
L=(cellule *)(malloc sizeof(cellule)); // Tu alloues de la memoire pour ta structure. L va pointer vers un espace memoire "valide"
// qui contiendra ta structure.
scanf("%d\n",&L->valeure); // tu demandes a l'utilisateur de rentrer une valeur entiere au clavier,
// et cette valeur est affectee au membre "valeure" (au passage y'a pas de "e" a la fin) de L (qui a le type structure cellule).
// Avec scanf, il faut passer le pointeur vers "valeure", d'ou le &L->valeure,
// qui aurait aussi pu s'ecrire, &(L->valeure)
L->suivant=NULL; // tu assignes un pointeur NULL au pointeur "suivant". Ce truc s'appelle une liste chainee...
}
T'as compris?
inteligence
Messages postés
42
Date d'inscription
mercredi 29 août 2007
Statut
Membre
Dernière intervention
10 septembre 2011
17 oct. 2007 à 00:51
17 oct. 2007 à 00:51
oui merci beaucoup pour ta reponse j'ai tres bien compris
mais enfaite comment faire pour ajouter une nouvelle celulle a la premiere , et pour que le pointeure pointe sur la cellule suivante?
merci d'avence.
mais enfaite comment faire pour ajouter une nouvelle celulle a la premiere , et pour que le pointeure pointe sur la cellule suivante?
merci d'avence.
Gorgo13
Messages postés
12
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
15 novembre 2009
23
17 oct. 2007 à 02:46
17 oct. 2007 à 02:46
#include<stdio.h>
#include<stdlib.h>
struct maillon
{
int valeur;
struct maillon *suivant;
};
typedef struct maillon cellule;
void ajouter_cellule(cellule *cellule_courante)
{
cellule_courante->suivant = (cellule*)calloc(sizeof(cellule),1);
}
void main()
{
cellule *L=NULL;
L=(cellule *)(malloc sizeof(cellule));
scanf("%d\n",&L->valeure);
//L->suivant=NULL;
int nb_cell_a_ajouter = 10;
cellule *tmp_cell = L;
for (int i=0;i<nb_cell_a_ajouter;i++)
{
ajouter_cellule(tmp_cell);
tmp_cell = tmp_cell->suivant;
}
}
...comme ca ca devrait marcher. L'autre exercice tres utile est d'ecrire le code pour supprimer une cellule particuliere dans la liste chainee. Essaye de la faire tout seul... c'est comme ca que j'ai appris comment manipuler les pointeurs.
#include<stdlib.h>
struct maillon
{
int valeur;
struct maillon *suivant;
};
typedef struct maillon cellule;
void ajouter_cellule(cellule *cellule_courante)
{
cellule_courante->suivant = (cellule*)calloc(sizeof(cellule),1);
}
void main()
{
cellule *L=NULL;
L=(cellule *)(malloc sizeof(cellule));
scanf("%d\n",&L->valeure);
//L->suivant=NULL;
int nb_cell_a_ajouter = 10;
cellule *tmp_cell = L;
for (int i=0;i<nb_cell_a_ajouter;i++)
{
ajouter_cellule(tmp_cell);
tmp_cell = tmp_cell->suivant;
}
}
...comme ca ca devrait marcher. L'autre exercice tres utile est d'ecrire le code pour supprimer une cellule particuliere dans la liste chainee. Essaye de la faire tout seul... c'est comme ca que j'ai appris comment manipuler les pointeurs.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
17 oct. 2007 à 07:24
17 oct. 2007 à 07:24
Salut,
liste simplement chainee
liste simplement chainee