Bonjour,
svp, qui peut me corriger ce programme (tri directe de liste lineaire chainé de caracteres)
Rq: lors de compilation je ne trouve aucun erreur mis lors de l'execution j'ai eu des problémes.
Svp, j'ai besoin de votre aide.
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()
{
struct noeud
{
char nb;
struct noeud *lien;
};
struct noeud *l, *p, *av, *ar;
char n;
//creation d'une liste de nombres
l=NULL;
printf("introduire la liste de caracteres qui se termine par '0' \n");
scanf("%c\n\n",&n);
while (n!=0)
{
p=(struct noeud *) malloc(sizeof(struct noeud));
p->nb=n;
if(l==NULL)
{
l=p;
l->lien=NULL;
}
else
{
if ((n<(l->nb)))
{
p->lien=l;
l=p;
}
else
{
ar=l; av=l->lien;
while ((av!=NULL) && (n>(av->nb)))
{
ar=av; av=av->lien;
}
if ((av!=NULL) &&(n==av->nb)) printf("c'est un caractere qui existe deja\n");
else
{
p->lien=av;
ar->lien=p;
}
}
}
scanf("%c",&n);
}
//affichage du nombre
p=l;
printf("voici votre liste de caracteres tries\n\n");
while (p!=NULL)
{
printf("%c\n\n",p->nb);
p=p->lien;
}
}
Configuration: Windows XP
Internet Explorer 6.0