bonjour

alors voila je voudrais faire une liste chainée en c++ mais d'après se que je vois sur internet trés peu voir pas du tout de tuto existe.

du coup le langage c++ a t'il ou non la notion de liste chainée ?

si oui

j'ai ce programme en C qui représente une liste chainée

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
 
struct cellule
{
        int entier;
        struct cellule *suivant;
};
 
struct cellule *tete;
struct cellule *courant;
struct cellule *nouveau;
struct cellule *precedent;
 
int main ()
{
        int valeur;
        int flag;
 
        tete = NULL;
 
        printf("entrer une valeur\n");
        scanf("%d", &valeur);
 
        while(valeur != 0)
        {
                if(valeur != 0)
                {
                        flag = 0;
                        nouveau = (struct cellule *) malloc(sizeof(struct cellule));
                        nouveau->entier = valeur;
                        nouveau->suivant = NULL;
 
                        if( tete == NULL)
                        {
                                tete = nouveau;
                                flag = 1;
                        }
 
                        courant = tete;
 
                        while(flag == 0 & courant != NULL)
                        {
                                if( tete->entier > nouveau->entier)
                                {
                                        tete = nouveau;
                                        tete->suivant = courant;
                                        flag = 1;
                                }
 
                                if( courant->entier < nouveau->entier && courant->suivant == NULL)
                                {
                                        courant->suivant = nouveau;
                                        flag = 1;
                                }
 
                                if( nouveau->entier <= courant->entier && flag == 0)
                                {
                                        nouveau->suivant = courant;
                                        precedent->suivant = nouveau;
                                        flag = 1;
                                }
 
                                if(flag == 1)
                                {
                                        courant = tete;
                                        precedent = courant;
                                }
                                else
                                {
                                        precedent = courant;
                                        courant = courant->suivant;
                                }
 
                        }
                }
 
                printf("entrer une valeur\n");
                scanf("%d", &valeur);
        }
 
        while(courant != NULL)
        {
                printf("entier = %d\n", courant->entier);
                courant = courant->suivant;
        }
}
est ce la meme façon de faire en c++ ?

et encore une fois si oui peut on faire une liste chainée en fonction d'un objet ?