begin process at 2012 05 27 18:27:19
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caractères

 > LISTE CHAINEE DE NOMBRE TRIE

LISTE CHAINEE DE NOMBRE TRIE


 Information sur la source

 Description

Liste chainee de Nombre trie

Source

  • Liste chainee de Nombre trie
Liste chainee de Nombre trie

 Conclusion

#include<stdio.h>
#include<stdlib.h>

typedef struct maillon *pmaillon;
struct maillon
{
int nombre;
pmaillon suivant;
};



pmaillon CreeMaillon(int valeur);
void *alloue(int taille);
void PrintListe(pmaillon ptete);
void InsertionTrie(pmaillon *ptete,int valeur);
void menu();
pmaillon RemoveMaillon(pmaillon ptete,int valeur);
void ViderListe(pmaillon ptete);
void FindListe(pmaillon ptete,int val);
main()
{
int choix,n,val;
pmaillon ptete=NULL;
do
      {
      menu();
      scanf("%d",&choix);
                   switch(choix)
                   {
                    case (1) :
                    {printf("Entrez un nombre \n");
                    scanf("%d",&n);
                    InsertionTrie(&ptete,n);
                    break;
                    }
                    case (2) :
                    {printf("Nombre a enlever \n");
                    scanf("%d",&n);
                    ptete = RemoveMaillon(ptete,n);
                    break;
                    }
                    case (3) :
                    {PrintListe(ptete);
                    break;
                    }
                    case (4) :
                    {ViderListe(ptete);
                    ptete=NULL;
                    break;
                    }
                    case (5) :
                    {printf("Entrez la valeur a chercher : \n");
                    scanf("%d",&val);
                    FindListe(ptete,val);
                    break;
                    }
                   }
        }
while(choix!=9);
getch();
}
void menu()
{
printf("1. Ajouter un nombre \n");
printf("2. Enlever un  nombre \n");
printf("3. Imprimer la liste \n");
printf("4. Vider la liste \n");
printf("5. Chercher dans la liste \n");
printf("9. Fin \n");
printf("Votre choix ? \n");
}




pmaillon CreeMaillon(int valeur)
{
pmaillon p;
p=(pmaillon)alloue(sizeof(struct maillon));
p->nombre=valeur;
p->suivant=NULL;
r eturn p;
}



void *alloue(int taille)
{
  void *p;
  p=(void*)malloc(taille);
  if(p==NULL)
  {
    printf("Erreur d allocation memoire\n");
    exit(1);
  }
  else return p;
}

void PrintListe(pmaillon ptete)
{
pmaillon pcourant;
if(ptete == NULL)
    {
    fprintf(stderr,"Liste Vide ! \n");
    getch();
    }
else
    {
    for(pcourant=ptete;pcourant != NULL ;pcourant=pcourant->suivant)
    printf("%d \n",pcourant->nombre);
    }
}

void InsertionTrie(pmaillon *ptete,int valeur)
{
pmaillon p;
p = CreeMaillon(valeur);
if(*ptete == NULL)
    *ptete=p;
else if(valeur < (*ptete)->nombre)
    {
    p->suivant=*ptete;
    *ptete=p;
    }
else InsertionTrie(&((*ptete)->suivant),valeur);

  
}    

pmaillon RemoveMaillon(pmaillon ptete,int valeur)
{
pmaillon pcourant,p;

if(ptete == NULL)
    {
    fprintf(stderr,"Liste Vide ! \n");
    getch();
    return NULL;
    }
if(valeur == ptete->nombre)
    {
    p = ptete;
    ptete=ptete->suivant;
    free(p);
    return ptete;
    }
pcourant = ptete;
while((pcourant->suivant != NULL) && (pcourant->suivant->nombre != valeur))
    pcourant=pcourant->suivant;
if(pcourant->suivant == NULL)
    {
    fprintf(stderr,"Maillon Inexistant \n");
    getch();
    return ptete;
    }
p = pcourant->suivant;
pcourant->suivant=p->suivant;
free(p);
return ptete;
}
void ViderListe(pmaillon ptete)
{
if(ptete != NULL)
    {
    ViderListe(ptete->suivant);
    free(ptete);
    }
}

void FindListe(pmaillon ptete,int val)
{
pmaillon pcourant;
if(ptete == NULL)
    {
    fprintf(stderr,"Liste vide \n");
    getch();
    }
else
    {pcourant=ptete;
    while((pcourant != NULL) && (pcourant->nombre != val))
        pcourant=pcourant->suivant;
    if(pcourant == NULL)
        {
        printf("Valeur non trouvee \n");
        getch();
        }
    else
        {
        printf("Valeur dans la liste \n");
        getch();
        }
    }
}


 Sources du même auteur

CALCUL D'AGE
TRI D'UNE CHAINE DE CARACTERES
NOMBRE DE FIBONACCI
CALCUL DE NOMBRE PREMIER
EQUATION DU DEUXIEME DEGRE

 Sources de la même categorie

CALCUL DE CLEF RIB par Renfield
Source avec Zip [C] WD_STRING V2.2 par cyberripper
Source avec Zip LES STRING EN C, AFFECTATION, CONCATÉNATION, SPLIT, ... par appranting
Source avec Zip [C] WD_STRING V1.9 par cyberripper
Source avec Zip LIBRAIRIE LANGUAGES par astro53

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales