Esa*_*Esa 1 c struct linked-list
为了练习,我一直在研究一种压缩器,它可以完成查找 - 重复部分,制作字典,压缩与霍夫曼代码的事情.
它并没有真正起作用.
其中一个问题是,由于某种原因,我的排序算法从字典中删除了关键字.我认为问题出在交换例程中,但我不确定.(这个例程交换相邻的关键字,接下来是current-> next).
我有一个静态关键字*head;
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;
}
Run Code Online (Sandbox Code Playgroud)
发现这有什么不对吗?