Listes chainnes aide
omaro5552
Messages postés
19
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
je veut construire un programme qui ajoute une chaine de caractere a une liste 10 fois apres il affiche cet chaine de caractere
ensuite il cherche la chaine de caractere s'il elle existe alors le resultat c'est l'adresse de la 1er valeur parcouru ...et si ellle existe pas le resultat est NILL
VOICI MON PROGRAMME
J'AI UN PROBLEME DANS LA FONCTION RECHERCHER
#include <stdio.h>
#include <stdlib.h>
//**************************************************************//
struct element
{
char val[50];
struct element *next;
};
typedef struct element element;
//*************************************************************//
element* ajouterEnTete(element *liste, char* valeur)
{
/* On crée un nouvel élément */
element* nouvelElement = malloc(sizeof(element));
/* On assigne la valeur au nouvel élément */
strcpy(nouvelElement->val,valeur);
/* On assigne l'adresse de l'élément suivant au nouvel élément */
nouvelElement->next = liste;
/* On retourne la nouvelle liste, i.e. le pointeur sur le premier élément */
return nouvelElement;
}
//*******************************************************************//
element* rechercherElement(element* liste,char* valeur)
{
element *tmp=liste;
/* Tant que l'on n'est pas au bout de la liste */
while(tmp != NULL)
{
if(tmp->val == valeur)
{
/* Si l'élément a la valeur recherchée, on renvoie son adresse */
return tmp;
}
tmp = tmp->next;
}
return NULL;
}
//********************************************************************//
element* ajouterEnFin(element* liste,char* valeur)
{
/* On crée un nouvel élément */
element* nouvelElement = malloc(sizeof(element));
/* On assigne la valeur au nouvel élément */
strcpy(nouvelElement->val,valeur);
/* On ajoute en fin, donc aucun élément ne va suivre */
nouvelElement->next = NULL;
if(liste == NULL)
{
/* Si la liste est videé il suffit de renvoyer l'élément créé */
return nouvelElement;
}
else
{
/* Sinon, on parcourt la liste à l'aide d'un pointeur temporaire et on
indique que le dernier élément de la liste est relié au nouvel élément */
element* temp=liste;
while(temp->next != NULL)
{
temp = temp->next;
}
temp->next = nouvelElement;
return liste;
}
}
//**********************************************************************
void afficherListe(element *liste)
{
element* tmp = liste;
/* Tant que l'on n'est pas au bout de la liste */
while(tmp != NULL)
{
/* On affiche */
printf("%s", tmp->val);
/* On avance d'une case */
tmp = tmp->next;
}
}
//*******************************************************************//
int main()
{
element* ma_liste = NULL;
element* ma_liste2=NULL;
int i,m;
char chaine[20];
scanf("%s",&chaine);
for(i=1;i<=10;i++)
{
//
ma_liste = ajouterEnTete(ma_liste,chaine);
// ma_liste = ajouterEnFin(ma_liste,chaine);
}
afficherListe(ma_liste);
printf("\n");
ma_liste2=rechercherElement(ma_liste,chaine);
afficherListe(ma_liste2);
//supprimerListe(ma_liste); // Libère les ressources, nous verrons cette fonction plus tard.
return 0;
}
//*************************************************************************//
je veut construire un programme qui ajoute une chaine de caractere a une liste 10 fois apres il affiche cet chaine de caractere
ensuite il cherche la chaine de caractere s'il elle existe alors le resultat c'est l'adresse de la 1er valeur parcouru ...et si ellle existe pas le resultat est NILL
VOICI MON PROGRAMME
J'AI UN PROBLEME DANS LA FONCTION RECHERCHER
#include <stdio.h>
#include <stdlib.h>
//**************************************************************//
struct element
{
char val[50];
struct element *next;
};
typedef struct element element;
//*************************************************************//
element* ajouterEnTete(element *liste, char* valeur)
{
/* On crée un nouvel élément */
element* nouvelElement = malloc(sizeof(element));
/* On assigne la valeur au nouvel élément */
strcpy(nouvelElement->val,valeur);
/* On assigne l'adresse de l'élément suivant au nouvel élément */
nouvelElement->next = liste;
/* On retourne la nouvelle liste, i.e. le pointeur sur le premier élément */
return nouvelElement;
}
//*******************************************************************//
element* rechercherElement(element* liste,char* valeur)
{
element *tmp=liste;
/* Tant que l'on n'est pas au bout de la liste */
while(tmp != NULL)
{
if(tmp->val == valeur)
{
/* Si l'élément a la valeur recherchée, on renvoie son adresse */
return tmp;
}
tmp = tmp->next;
}
return NULL;
}
//********************************************************************//
element* ajouterEnFin(element* liste,char* valeur)
{
/* On crée un nouvel élément */
element* nouvelElement = malloc(sizeof(element));
/* On assigne la valeur au nouvel élément */
strcpy(nouvelElement->val,valeur);
/* On ajoute en fin, donc aucun élément ne va suivre */
nouvelElement->next = NULL;
if(liste == NULL)
{
/* Si la liste est videé il suffit de renvoyer l'élément créé */
return nouvelElement;
}
else
{
/* Sinon, on parcourt la liste à l'aide d'un pointeur temporaire et on
indique que le dernier élément de la liste est relié au nouvel élément */
element* temp=liste;
while(temp->next != NULL)
{
temp = temp->next;
}
temp->next = nouvelElement;
return liste;
}
}
//**********************************************************************
void afficherListe(element *liste)
{
element* tmp = liste;
/* Tant que l'on n'est pas au bout de la liste */
while(tmp != NULL)
{
/* On affiche */
printf("%s", tmp->val);
/* On avance d'une case */
tmp = tmp->next;
}
}
//*******************************************************************//
int main()
{
element* ma_liste = NULL;
element* ma_liste2=NULL;
int i,m;
char chaine[20];
scanf("%s",&chaine);
for(i=1;i<=10;i++)
{
//
ma_liste = ajouterEnTete(ma_liste,chaine);
// ma_liste = ajouterEnFin(ma_liste,chaine);
}
afficherListe(ma_liste);
printf("\n");
ma_liste2=rechercherElement(ma_liste,chaine);
afficherListe(ma_liste2);
//supprimerListe(ma_liste); // Libère les ressources, nous verrons cette fonction plus tard.
return 0;
}
//*************************************************************************//
A voir également:
- Listes chainnes aide
- Listes déroulantes excel - Guide
- Listes déroulantes en cascade excel - Guide
- Listes courses - Télécharger - Outils professionnels
- Listes whatsapp - Guide
- WhatsApp : vous pouvez maintenant créer et gérer des listes de discussions - Accueil - Messagerie instantanée