Move-to-front algorithm: Difference between revisions
Content added Content deleted
(Add Rust implementation) |
|||
Line 198: | Line 198: | ||
decode(list l) |
decode(list l) |
||
{ |
{ |
||
integer c, e |
integer c, e; |
||
data al, s; |
|||
al = "abcdefghijklmnopqrstuvwxyz"; |
al = "abcdefghijklmnopqrstuvwxyz"; |
||
for ( |
for (, e in l) { |
||
s |
s.append(c = al[e]); |
||
al |
al.delete(e).insert(0, c); |
||
} |
} |
||
Line 214: | Line 214: | ||
{ |
{ |
||
integer c, e; |
integer c, e; |
||
data al; |
|||
list l; |
list l; |
||
al = "abcdefghijklmnopqrstuvwxyz"; |
al = "abcdefghijklmnopqrstuvwxyz"; |
||
for (, c in b_draft(s)) { |
|||
l.append(e = al.place(c)); |
|||
al.delete(e).insert(0, c); |
|||
al = insert(delete(al, e), 0, c); |
|||
} |
} |
||