ArbreBinaire
Mode compilé
Commande de compilation
upscmp Source=arbre.upl
Commande d'exécution
arbre
Mode interprété
upssng Source=arbre.upl
Fichier source
Source Composant "Exemple d'emploi du type ArbreBinaire" Version 4.0.0;
Fonction F(O1 : Nul Ou Caractere, O2 : Nul Ou Caractere) Retourner
ComparaisonObjet
/*********************************************************************************/
Debut
Si O1==Nul Ou O2==Nul Alors
Retourner ComparaisonNul;
Fin Si
Si O1 < O2 Alors
Retourner ComparaisonAvant;
Fin Si
Si O1 > O2 Alors
Retourner ComparaisonApres;
Fin Si
Retourner ComparaisonEgal;
Fin Fonction
Procedure EcrireArbre(A : Nul Ou ArbreBinaireDe Nul Ou Caractere)
/***************************************************************/
Variable
/******/
Debut
Pour C=A.ParcoursAuDebut() JusquA A.DernierElement() Pas A.Suivant()
Faire
Fin Pour
Fin Procedure
Procedure EcrireArbre2(A : Nul Ou ArbreBinaireDe Nul Ou Caractere)
/****************************************************************/
Variable
/******/
Debut
Pour C=A.ParcoursALaFin() JusquA A.PremierElement() Pas A.Precedent()
Faire
Fin Pour
Fin Procedure
Procedure EcrireArbre3(A : Nul Ou ArbreBinaireDe Nul Ou Caractere)
/****************************************************************/
Variable
/******/
Debut
Pour C=A.ParcoursAuDebut() JusquA A.DernierElement() Pas A.SuivantGroupe()
Faire
Fin Pour
Fin Procedure
Procedure EcrireArbre4(A : Nul Ou ArbreBinaireDe Nul Ou Caractere)
/****************************************************************/
Variable
/******/
Debut
Pour C=A.ParcoursALaFin() JusquA A.PremierElement() Pas A.PrecedentGroupe()
Faire
Fin Pour
Fin Procedure
Procedure EcrireArbre5(A : Nul Ou ArbreBinaireDe Nul Ou Caractere)
/****************************************************************/
Variable
/******/
Debut
Pour C=A.ParcoursAuDebut() JusquA A.DernierElement() Pas A.SuivantGroupe()
Faire
Ecran.Ecrire("Groupe "+Caractere(A.NumeroElement()));
Pour C=A.PremierElementGroupe() JusquA A.DernierElementGroupe() Pas
A.Suivant() Faire
Ecran.Ecrire(A.Element());
Fin Pour
Fin Pour
Fin Procedure
Principal Optimiser(NePasFactoriserChaine)
/****************************************/
Variable
/******/
A1 : Nul Ou ArbreBinaireDe Nul Ou Caractere;
A2 : Nul Ou ArbreBinaireDe Nul Ou Caractere;
A3 : Nul Ou ArbreBinaireDe Nul Ou Caractere;
Coucou : Caractere;
Bonjour : Caractere;
Salut : Caractere;
Schluss : Caractere;
I : Entier;
LibelleA : Caractere;
LibelleB : Caractere;
LibelleC : Caractere;
LibelleD : Caractere;
LibelleE : Caractere;
LibelleF : Caractere;
Debut
Coucou="coucou";
Bonjour="bonjour";
Salut="salut";
Schluss="schluss";
A1=ArbreBinaireDe(F, Faux);
A1+=Bonjour;
A1+="hello";
A1+="guten tag";
A1+="hello";
A1+="coucou";
A1+=Coucou;
A1+=Salut;
A1+="hie";
A1+=Schluss;
EcrireArbre(A1);
Ecran.Ecrire("\n");
EcrireArbre2(A1);
Ecran.Ecrire("\n");
EcrireArbre3(A1);
Ecran.Ecrire("\n");
EcrireArbre4(A1);
Ecran.Ecrire("\n");
A2=ArbreBinaireDe(F, Faux);
A2+=Schluss;
A2+="hie";
A2+=Salut;
A2+=Coucou;
A2+="bonjour";
A2+="hello";
A2+="guten tag";
A2+="hello";
A2+=Bonjour;
EcrireArbre5(A2);
Ecran.Ecrire("\n");
Si A1==A2 Alors
Fin Si
Si A1!=A2 Alors
Fin Si
Ecran.Ecrire(A1.PremierElement());
Ecran.Ecrire(A1.DernierElement());
Ecran.Ecrire(A1.NbElements);
Ecran.Ecrire(A1.NbGroupes);
Ecran.Ecrire("\n");
Ecran.Ecrire(A1.Compter(Bonjour));
Ecran.Ecrire("\n");
A2=A2.SupprimerTous(Schluss);
EcrireArbre(A2);
Ecran.Ecrire("\n");
A2=A2.RemplacerTous(Bonjour, "hola");
EcrireArbre(A2);
Ecran.Ecrire("\n");
A2=A1.Gauche(Coucou);
EcrireArbre(A2);
Ecran.Ecrire("\n");
A2=A1.Gauche(Salut);
EcrireArbre(A2);
Ecran.Ecrire("\n");
A2=A1.Droite(Coucou);
EcrireArbre(A2);
Ecran.Ecrire("\n");
A2=A1.Droite(Salut);
EcrireArbre(A2);
Ecran.Ecrire("\n");
A2=A1.Milieu(Coucou,Salut);
EcrireArbre(A2);
Ecran.Ecrire("\n");
A2=A1;
EcrireArbre(A2);
Ecran.Ecrire("\n");
Pour I=0 JusquA A1.NbElements-1 Faire
Fin Pour
Ecran.Ecrire("\n");
LibelleA="A";
LibelleB="B";
LibelleC="C";
LibelleD="D";
LibelleE="E";
LibelleF="F";
A1=ArbreBinaireDe(F, Faux);
A1+=LibelleA;
A1+=LibelleB;
A1+=LibelleC;
A1+=LibelleD;
A2=ArbreBinaireDe(F, Faux);
A2+=LibelleC;
A2+=LibelleD;
A2+=LibelleE;
A2+=LibelleF;
A3=A1.Union(A2);
EcrireArbre(A3);
Ecran.Ecrire("\n");
A3=A1.Intersection(A2);
EcrireArbre(A3);
Ecran.Ecrire("\n");
A3=A1.Soustraction(A2);
EcrireArbre(A3);
Ecran.Ecrire("\n");
A3=A1.Exclusion(A2);
EcrireArbre(A3);
Ecran.Ecrire("\n");
Fin Principal
Résultat de l'exécution
bonjour
coucou
coucou
guten tag
hello
hello
hie
salut
schluss
schluss
salut
hie
hello
hello
guten tag
coucou
coucou
bonjour
bonjour
coucou
guten tag
hello
hie
salut
schluss
schluss
salut
hie
hello
guten tag
coucou
bonjour
Groupe 5
bonjour
bonjour
Groupe 4
coucou
Groupe 7
guten tag
Groupe 6
hello
hello
Groupe 2
hie
Groupe 3
salut
Groupe 1
schluss
A1!=A2
bonjour
schluss
9
7
1
bonjour
bonjour
coucou
guten tag
hello
hello
hie
salut
bonjour
coucou
guten tag
hello
hello
hie
hola
salut
bonjour
coucou
coucou
bonjour
coucou
coucou
guten tag
hello
hello
hie
salut
coucou
coucou
guten tag
hello
hello
hie
salut
schluss
salut
schluss
coucou
coucou
guten tag
hello
hello
hie
salut
bonjour
coucou
coucou
guten tag
hello
hello
hie
salut
schluss
bonjour
coucou
coucou
guten tag
hello
hello
hie
salut
schluss
A
B
C
C
D
D
E
F
C
D
A
B
A
B
E
F