Je veux un petite application console qui consiste à placer des nombres dans une liste chaînée
Il faut que je les places en ordre croissant.
Je demande un nombre à l'écran et je dois le supprimer si il existe.
Quelqu'un peut m'aider
Merci
Je veux un petite application console qui consiste à placer des nombres dans une liste chaînée
Il faut que je les places en ordre croissant.
Je demande un nombre à l'écran et je dois le supprimer si il existe.
Quelqu'un peut m'aider
Merci
Renseigne-toi sur std::list et sur les algorithmes de la STL. Tu devrais avoir tout ce dont tu as besoin.
Cours : Initiation à CMake
Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
Ce message a été tapé avec un clavier en disposition bépo.
C'est ou je peux trouvé ça ?
Cours : Initiation à CMake
Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
Ce message a été tapé avec un clavier en disposition bépo.
J'avais débuté un peux.
Comment je peux faire pour entrer le chiffre dans la console à supprimer et mettre cela en ordre croissant.
Merci
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 <cstdlib> #include <iostream> using namespace std; struct Element { int valeur; Element* suivant; }; Element* liste = NULL; void Ajouter(int valeur) { Element* element= new Element; element->valeur = valeur; element->suivant = liste; liste = element; } Element* Rechercher(int valeur) { Element* element = liste; while(element != NULL && element->valeur != valeur) element = element->suivant; return element; } void Supprimer(Element* element) { Element* precedent = liste; if(element == liste) { liste = NULL; delete element; return; } while(precedent != NULL && precedent->suivant != element) precedent = precedent->suivant; if(precedent == NULL) return; precedent->suivant = element->suivant; delete element; } void Afficher() { Element* element = liste; while(element != NULL) { cout << element->valeur << "\t"; element = element->suivant; } cout << endl; } int main(void) { Element* e; Ajouter(1); Ajouter(2); Ajouter(3); Ajouter(4); Ajouter(5); Afficher(); e = Rechercher(5); Supprimer(e); Afficher(); system("pause"); return 0; }
La bibliothèque standard du C++ comprend déjà une implémentation de liste chaînée (std::list), qui te permet de ne pas avoir à recopier tout le code que tu nous montres là à chaque fois que tu veux utiliser une liste chaînée dans un de tes programmes.
Entraîne-toi à utiliser std::list, tu verras, c'est très pratique.
Enfin, pour trier ta liste, tu pourras utiliser un des algorithmes de la STL. Là, c'est un peu plus compliqué… mais c'est comme ça qu'on fait du joli code C++ !
Cours : Initiation à CMake
Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
Ce message a été tapé avec un clavier en disposition bépo.
Partager