Wpis z mikrobloga

Robię projekt z kompresją Hoffmana. Mam problem z vektorem, do którego chcę upchać dane. Myślałem nad tym, aby vektor miał 127 wolnych miejsc (na ASCII), do niego zliczałbym ilość każdego znaku. Następnie potrzebuję to posortować, a później z wektora odczytać ile ma każda litera wystąpień - i z tym mam kłopot. Czy może mnie zainspiruje ktoś rozwiązaniem? Ew. zainspiruje jeszcze rysowaniem drzewa w algorytmie Hoffmana?
Z góry dziękówka :)

PS. Jeszcze jedno pytanie - czy jest jakaś metoda, aby po wartości odczytać jaką nazwę nosi zmienna (która przechowuje daną wartość)?

//C++
#programowanie #algorym #cpp #visualstudio
  • 16
@MisiekD Można zadanie to zrobić nieoptymalnie jak i optymalnie.
Takie easy podejście to słownik gdzie element słownika to jedna z 127 liter a wartość to 0.
Słownik sobie potem sortujesz i czytasz.

Aby robić to po optymalnie - musisz użyć drzewa. Konstruując drzewo pilnujesz, aby znaki które mają więcej wystąpień były na górze. Potem wystarczy przeczytać to drzewo, bo jest ono już posortowane.
@Dzyszla: pewnie dokumentacja mnie przerazi ;)
A po co czytanie po wartości? Głównie, dlatego, że chciałem w wektorze posegregować wartości, a potem za pomocą wartości odczytywać nazwy i pakować je w drzewo.