struct pointeur{ int entier;/* on s'est mis d'accord pour que notre chaîne traite des entiers*/ struct pointeur *suivant;/* pour pointer sur l'élément suivant de la chaîne*/ };
typedef struct pointeur cellule;
cellule *creation_liste_chainee_1(){ char reponse;/* confirmation ou non d'ajout d'un élément à la liste */ do{ clrscr(); /* pour effacer l'écran, il faut inclure <conio.h> */ puts("Souhaitez-vous ajouter un élément à votre liste ? (o/n) : "); scanf("%c",&reponse); }while((rep!='o')&&(reponse!='n')&&(reponse!='O')&&(reponse!='N'); /*retaper si autre chose que N,O,o,n est saisi*/ if((reponse=='o')||(reponse=='O')) { /*si le user souhaite effectivement saisir un élement*/ cellule*ptr_tampon=NULL; /*il faut initialiser votre pointeur intermédiaire à NULL pour qu'il ne pointe pas aléatoirement sur un élément mémoire*/ ptr_tampon=(cell*)malloc(sizeof(cell)); /*allocation d'un espace mémoire pour la nouvelle cellule de la chaîne*/ puts("Veuillez saisir votre entier : "); scanf("%3d",&ptr_tampon->entier); ptr_tampon->suivant=tete_de_liste; tete_de_liste=ptr_tampon; } return tete_de_liste;/*notre fonction va retourner la tête de la liste car on en aura besoin*/ }
cellule* creation_liste_chainee_2() { cellule*precedent=NULL; // Pour le pointeur qui sauvegarde l'adresse du pointeur précédent déjà crée cell*actual=NULL; // Pour le pointeur courant int datum; int err; do { puts(" Veuiellez saisir un entier (une lettre pour arreter) : "); err=scanf("%d",&datum); if(err<=0) break; // Pour rendre le nombre de variables lues sans erreur actual=(cellule*)malloc(sizeof(cellule)); actual->entier=datum; if(precedent==NULL) { tete_de_liste=actual; }else { precedent->suivant=actual; } precedent=actual; }while(1); // fin de la boucle do actual->suivant=NULL; return tete_de_liste; }
Avis de décès, Carte de voeux, Bricolage, Coloriages, Cinéma, Coiffure, Cuisine, Déco, Dictionnaire, Horoscope, Jeux en ligne, Programme TV, Recettes, Restaurant, SMIC, Test débit, Voyage, Signification prénom