// package freq_pair -- наиболее частотная пара package freq_pair import ( "fmt" ) // ЧастПара -- самая частотная пара type ЧастотПара struct { val1, val2 int // Самые частотные значения key0, key1 uint32 // Самый частотные ключи strCombo string // Самая выгодная комбинация для сжатия(11, 12, 21, 22) } // SetVal1 -- устанавливает значения частотных пар func (сам *ЧастотПара) SetVal1(key uint32, val int) { if val > сам.val2 { сам.val1 = сам.val2 сам.key0 = сам.key1 сам.val2 = val сам.key1 = key return } сам.val1 = val сам.key0 = key } // String -- строковое представление частотных пар func (сам *ЧастотПара) String() string { str := fmt.Sprintf("{key1:%v val1:%v; key2:%v val2:%v; combo:%q}", сам.key0, сам.val1, сам.key1, сам.val2, сам.strCombo, ) return str } // SetKeys -- устанавливает ключи замен func (сам *ЧастотПара) SetKeys(key0, key1 uint32) { сам.key0 = key0 сам.key1 = key1 } // Key0 -- самый частотный ключ 0 func (сам *ЧастотПара) Key0() uint32 { return сам.key0 } // Key1 -- самый частотный ключ 1 func (сам *ЧастотПара) Key1() uint32 { return сам.key1 }