public void setFilsDroit(Noeud FilsDroit) { this.FilsDroit = FilsDroit; }
public void Parcours(string saisie) { /*compter le nombre d'occurence*/ for (i = 0; i < saisie.Length; i++) { if (!dico.ContainsKey(saisie[i])) { dico.Add(saisie[i], 0); } dico[saisie[i]]++; } /*fonction de tri */ var tri = from pair in dico orderby pair.Value descending select pair; foreach (KeyValuePair <char, int> pair in tri) { Console.WriteLine("{0}: {1}", pair.Key, pair.Value); } //Compression de ma chaine de caractère Noeud Arbre = new Noeud(); Noeud NoeudActif = Arbre; foreach (KeyValuePair <char, int> clef in tri) { char Caractere = clef.Key; //Création d'un fils gauche et d'un fils droit Noeud FilsGauche = new Noeud(); Noeud FilsDroit = new Noeud(); FilsGauche.setMot(Caractere); NoeudActif.setFilsGauche(FilsGauche); NoeudActif.setFilsDroit(FilsDroit); NoeudActif = FilsDroit; } string MotEncoder = null; for (i = 0; i < saisie.Length; i++)//Parcours de ma chaine de caractere { char caractereMot = saisie[i]; if (i != 0) { MotEncoder = MotEncoder + Arbre.encode(caractereMot); } else { MotEncoder = Arbre.encode(caractereMot); } } Console.WriteLine("Vous avez saisie: " + saisie + ". Voici la chaine compressée : " + MotEncoder); //Décompression de ma chaine binaire String MotDecoder = null; Noeud NoeudActif2 = Arbre; for (i = 0; i < MotEncoder.Length; i++) //Parcours de ma chaine binaire { Char caractereMot = MotEncoder[i]; if (caractereMot == '1') { NoeudActif2 = NoeudActif2.getFilsDroit(); } else { NoeudActif2 = NoeudActif2.getFilsGauche(); string conversion = Convert.ToString(NoeudActif2.getMot()); MotDecoder = MotDecoder + conversion; NoeudActif2 = Arbre; } } Console.WriteLine("Voici la chaine décompressée: " + MotDecoder); }
public void setFilsGauche(Noeud FilsGauche) { this.FilsGauche = FilsGauche; }