Vous êtes sur la page 1sur 3

Nom :Benmakrellouf

Prenom :Nesrine
Groupe :A1

Q1)
type maillon=structur
mot:chaine de caractere[20];
suiv:*maillon;
fin;
type liste : *maillon;

type maillonB=structure
tete,queue:*maillon;
fin;
type deque :*maillonB;

Q2)
procedur initDeque(var L:deque)
debut
(L.tete<-nill; L.queue<-nill);
fin

fonction dequeVide(L:deque):booleen;
retourner( L.tete=nill);
fin

procedure EnDequer(L:deque , x:maillon , sens:entier)


variable P:liste;
debut
P<-alloure(); aff_mot(P,x);
si (sens=1)alors
si (non dequevide(L))alors
aff_suiv(P,L.tete); L.tet<-P;
sinon
aff_suiv(P,Nill);
L.tete<-P;
L.queue<-P;
finsi;
sino si (sens=-1)alors
si (non dequevide(L))alors
aff_suiv(L.queue,P);
aff_suiv(P,Nill);
L.queue<-P;
sinon
aff_suiv(P,Nill);
L.tete<-P;
L.queue<-P;
finsi;
finsi;
fin

Fonction DeDequer(L:deque , sens: entier):deque


variable q,p:Liste;
debut
si ((non dequeVide(L) et sese=1)alors
q<-L.tete;
L.tete<-suiv(L.tete);
libere(q);
sino
si ((non dequeVide(L) et sese=-1)alors
p<-nill; q<-L.tete;
tantque(suiv(q)<>nill)faire
p<-q; q<-suiv(q);
fait;
L.queue<-p;
aff_suiv(p,nill);
libere(q);
finsi;
finsi;
returner L;
Fin

fonction extremite (L:deque, sens:entier)


variable
debut
si ((non dequeVide(L) et sese=1)alors
returner mot(L.tete);
sinon
si ((non dequeVide(L) et sese=-1)alors
returner mot(L.queue);
finsi;
finsi;

Q3)
fonction identique(m1,m2:chaine de caractere[20])
variabel n1,n2,i,j,ide:entier;

debut
n1<-longueure(m1);
n2<-longueure(m2);
i<-1; j<-1; ide<-1;
tantque ((i<=n1 et ide=1) ou (j<=n2 et ide=1))faire
si (m1[i]<>m2[j])alors
ide=0;
sinon
i<-i+1;
j<-j+1;
finsi;
fait;
retourner ide;
fin

Q4)
Algorithme exo4
variable D:deque; n:entier; T:tableau[20]de caracter;
debut
initdeque(D);

ecrire('donner n :');
lire(n);
pour i<-1 a n faire
ecrire('donner un mots:');
lire(mots);
si (i mod 2=0)alors
enDequer(D,mot,1);
sinon
enDequer(D,mot,-1);
finsi;
fait;

Vous aimerez peut-être aussi