1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
#include "liste.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void compl(char s[])
{
int i,l;
char temp[8][256]={0};
l=0;
while(s[l]!='\0')
l++;
for(i=0;i<256;i++)
temp[l-1][i]=s[i];
while(l!=8)
{
temp[l][0]='0';
for(i=0;i<l;i++)
{
temp[l][i+1]=temp[l-1][i];
}
l++;
}
for(i=0;i<256;i++)
s[i]=temp[l-1][i];
printf("%s\n" ,s);
}
int compare(ELEMENT e1, ELEMENT e2) { return strcmp(e1,e2); }
void affiche (ELEMENT* e) { printf("%s ",*e); }
Liste creer_liste(void)
{ return NULL; /* la liste vide est representée par NULL */
}
int est_vide(Liste L)
{ return !L; /* la liste vide est representée par NULL */
}
void visualiser(Liste L)
{ Liste p;
for (p=L; !est_vide(p); p=p->suiv) affiche(&p->val);
puts("");
}
Liste ajout_tete(ELEMENT e, Liste L)
{ Cell* p=(Cell*)malloc(sizeof(Cell));
if (p==NULL) return NULL;
p->val=strdup(e);
p->suiv=L;
return p;
}
Liste ajout_queue(ELEMENT e, Liste L)
{ Liste c;
Cell* p=(Cell*)malloc(sizeof(Cell));
if (p==NULL) return NULL;
if (est_vide(L)) return ajout_tete(e,L);
else {
for (c=L; !est_vide(c->suiv); c=c->suiv) ;
p->val=strdup(e);
c->suiv=p;
p->suiv=NULL;
return L;
}
}
Liste ajouter(ELEMENT e, Liste L)
{ Liste p,c;
if (est_vide(L) || compare(e,L->val)<0) return ajout_tete(e,L);
for(c=L; !est_vide(c) &&
!est_vide(c->suiv)&&
compare(e,(c->suiv->val))>0;
c=c->suiv) ;
p= calloc(1,sizeof(Cell));
p->val=strdup(e);
p->suiv= c->suiv;
c->suiv=p;
return L;
}
Liste supp_tete(Liste L)
{ if (!est_vide(L)) {Liste p;
p=L->suiv;
free(L);
return p;
}
else return NULL;
}
Liste supprimer(ELEMENT e, Liste L)
{ Liste p, c;
if( est_vide(L)) return NULL;
if (!compare(e,L->val)) return supp_tete(L);
for(p=L; !est_vide(p)&& !est_vide(p->suiv) && compare(e,p->suiv->val);
p=p->suiv) ;
c=p->suiv;
p->suiv= c? c->suiv :NULL;
free(c);
return(L);
}
Liste rech(ELEMENT e, Liste L)
{ Liste p=L;
while(!est_vide(p)&&
compare((p->val),e))
p=p->suiv;
return p;
} |
Partager