Для практики я работал над компрессором, который выполняет код поиска, повторяющихся частей, словаря компоновки, сжатия с Хаффманом.
Это на самом деле не работает.
Одна из проблем заключается в том, что по какой-то причине мой алгоритм сортировки удаляет ключевые слова из словаря.Я думаю, что проблема в процедуре обмена, но я не уверен.(эта процедура меняет местами смежные ключевые слова, а next - current-> next.
void swap(keyword * current, keyword * next) {
keyword * prev = current->prev;
if (prev){
prev->next = next;
next->prev = prev;
} else { /* no prev - current is head */
head = next;
next->prev = 0;
}
current->prev = next;
current->next = next->next;
next->next = current;
}
Нашли что-нибудь не так с этим?