RLE Komprimierung
Abschlussbedingungen
Funktion RLE_Compress(eingabe):
wenn Länge der eingabe = 0:
Rückgabe leere Zeichenkette
komprimiert = leere Zeichenkette
aktuelles_zeichen = eingabe[0]
count = 1
Für i von 1 bis Länge der eingabe - 1:
Wenn eingabe[i] = aktuelles_zeichen:
count = count + 1
Sonst:
komprimiert = komprimiert + aktuelles_zeichen + count
aktuelles_zeichen = eingabe[i]
count = 1
komprimiert = komprimiert + aktuelles_zeichen + count
Rückgabe komprimiert
int main()
{
// Stelle 2 Variablen bereit für Ein- und Ausgabe,
// string unkomp , string komp
string unkomp = { "AAAAABBBCCDAA" };
string komp = "";
int len = unkomp.size();
// Variable für jedes einzelne untersuchte char zeichen
char zeichen;
// Variable für die Anzahl int wiederholung
int anzahl = 1;
cout << unkomp << "\n";
// Schleife über alle Zeichen von unkomp
for (int i = 0; i < len; i++)
{
anzahl = 1;
cout << unkomp[i];
// zwei aufeinander folgende Zeichen sind gleich
// und noch nicht am Ende von unkomp
while (unkomp[i] == unkomp[i + 1] && i < len - 1)
{
//cout << unkomp[i+1];
anzahl++;
i++;
}
cout <<anzahl<< "\n";
}
}
wenn Länge der eingabe = 0:
Rückgabe leere Zeichenkette
komprimiert = leere Zeichenkette
aktuelles_zeichen = eingabe[0]
count = 1
Für i von 1 bis Länge der eingabe - 1:
Wenn eingabe[i] = aktuelles_zeichen:
count = count + 1
Sonst:
komprimiert = komprimiert + aktuelles_zeichen + count
aktuelles_zeichen = eingabe[i]
count = 1
komprimiert = komprimiert + aktuelles_zeichen + count
Rückgabe komprimiert
int main()
{
// Stelle 2 Variablen bereit für Ein- und Ausgabe,
// string unkomp , string komp
string unkomp = { "AAAAABBBCCDAA" };
string komp = "";
int len = unkomp.size();
// Variable für jedes einzelne untersuchte char zeichen
char zeichen;
// Variable für die Anzahl int wiederholung
int anzahl = 1;
cout << unkomp << "\n";
// Schleife über alle Zeichen von unkomp
for (int i = 0; i < len; i++)
{
anzahl = 1;
cout << unkomp[i];
// zwei aufeinander folgende Zeichen sind gleich
// und noch nicht am Ende von unkomp
while (unkomp[i] == unkomp[i + 1] && i < len - 1)
{
//cout << unkomp[i+1];
anzahl++;
i++;
}
cout <<anzahl<< "\n";
}
}
Zuletzt geändert: Mittwoch, 21. August 2024, 08:39