#include <iostream>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char const *argv[]) {
struct sam{
int data;
struct sam *next;
};
struct sam node[11];
for(int i=0;i<10;i++){
node[i].data = i/2;
node[i].next = &node[i+1];
}
node[10].next=NULL;
for (size_t i = 0;node[i].next!=NULL; i++) {
std::cout <<node[i].data<< '\t';
}
std::cout << '\n';
for(int i=0;node[i].next->next!=NULL;i++){
if(node[i].data == node[i].next->data){
node[i].next = node[i].next->next;
}
}
for (size_t i = 0;node[i].next!=NULL; i++) {
std::cout << "Data is " <<node[i].data<< '\t';
}
return 0;
}
L'objectif est de supprimer les doublons d'une liste triée liée et j'ai attribué au hasard 0,0,1,1,2,2,3,3,4,4 à la liste Le noeud de ligne [ i] = .next noeud [i] .next-> suivant nDexécute pas et, désormais, je ne reçois pas sortie désirée ...Pourquoi ce programme ne fonctionne pas et je pense que l'erreur est dans l'affectation de liste liée?
** C ** Ne pas même avoir 'std :: cout' - c'est C++ là. Aussi: [débogage] (http://idownvotedbecau.se/nodebugging/). –
Je recommande d'indenter votre code correctement, beaucoup d'une erreur a été trouvée en appliquant un codage codant un style utile. – Yunnosch
Vous n'utilisez pas à côté de parcourir la liste. Vous itérez toujours sur le tableau sous-jacent - et il ne change jamais –