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 Fin Si
Si O1 < O2 Alors Fin Si
Si O1 > O2 Alors 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 Fin Pour
Fin Procedure

Principal Optimiser(NePasFactoriserChaine)
/****************************************/
Variable
/******/
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