Webseiten-Werkzeuge


Huffmann

1. Variante Kompakt

/([^β(])(.*?)(β+)\1/$3$1$2/g            Gleiche Zeichen summieren   
/(β+)(β+)([^β]+)\1([^β]+)/$1$4$1$2$3/g  Sortierschritt
/^(β+)([^β]+)(β+)([^β]+)/$1$3($2,$4)/g  Kleinste Zusammenfassen
/^β+([^β]+)$/$1/ !                      Terminierung
/(.)/β$1/g                              Einfügen von βs

2. Tree Prüfen (separate aufgabe)

/[a-z]/ϖ/
/\(ϖ,ϖ\)/ϖ/
/^ϖ$/ok/!
/.*/error/!

3. Codes erzeugen

/\(([a-z01]*),([a-z01]*)\)/π$1τ$2/
/π([a-z])([01]*)/$10$2π/
/π?τ([a-z])([01]*)/$11$2τ/
/τ//

4. Alles zusammen

/^([a-z])([01]+)([^β]*)χ([^θ]*)\1/$1$2$3χ$4$2/ 
/^([a-z])([01]+)// 
/^χ//!

/\(([a-z01]*),([a-z01]*)\)/π$1τ$2/
/π([a-z])([01]*)/$10$2π/
/π?τ([a-z])([01]*)/$11$2τ/
/τ//

/ϒ([a-z])/β$1ϒ/
/ϒ\n/χ/
/([^β(])(.*?)(β+)\1/$3$1$2/g  
/(β+)(β+)([^βχ]+)\1([^βχ]+)/$1$4$1$2$3/g  
/^(β+)([^βχ]+)(β+)([^βχ]+)/$1$3($2,$4)/g  
/^β*(.*)χ(.*)/$1χ$2θ$1/

/.*/ϒ$&\n$&/   

V2

5. Vorgehensweise

Eingabe

mississippi

5.1 Initialisierung

/^[a-zA-Z ]*$/⇒$&\n⊕θ$&\n⇐$&/ !
/(\n|.)*/error/!
⇒mississippi
⊕θmississippi
⇐mississippi

5.2 Codebaum

Der Codebaum soll in folgenden Teilschritten erzeugt werden

0 Ausgangslage
⊕θmississippi
1 Zeichen Zählen
⊕mιiιιιιsιιιιpιιθ
2 Sortieren
⊕iιιιιsιιιιpιιmιθ
3 Letzte Zusammenfassen
Anschliessend zurück zu Schritt 2
⊕iιιιιsιιιι(p,m)ιιιθ (3)
⊕iιιιι(s,(p,m))ιιιιιιιθ (3)
⊕(s,(p,m))ιιιιιιιiιιιιθ (2)
⊕((s,(p,m)),i)ιιιιιιιιιιιθ (3)
4 Bereinigen
⊕((s,(p,m)),i)
/θ(.)/$1ιθ/
/([^ι)])(ι+)(.*)\1(ι+)/$1$2$4$3/g
/([^⊕ι]+)(ι+)([^ι]+)\2(ι+)/$3$2$4$1$2/
/([^⊕ι]+)(ι+)([^ι]+)(ι+)θ/($1,$3)$2$4θ/
/ι+θ//!

Zwischenstand

/\((.*),(.*)\)/π$1τ$2/
/π([a-zA-Z ])([01]*)/$10$2π/
/π?τ([a-zA-Z ])([01]*)/$11$2τ/
/τ//
/θ(.)/$1ιθ/
/([^ι)])(ι+)(.*)\1(ι+)/$1$2$4$3/g
/([^⊕ι]+)(ι+)([^ι]+)\2(ι+)/$3$2$4$1$2/
/([^⊕ι]+)(ι+)([^ι]+)(ι+)θ/($1,$3)$2$4θ/
/ι+θ//!
/^[a-zA-Z ]*$/⇒$&\n⊕θ$&\n⇐$&/ 
/(\n|.)*/error/!