http://acm.pku.edu.cn/JudgeOnline/problem?id=3253
哈夫曼编码。无非是读入数据,排序,建哈夫曼树……网上的算法貌似都是这样的,不同的只是排序所用的算法不同,有的堆排,有的快排……
在我的算法中,没有显示的使用哈夫曼树,没有显示的排序,用了链表进行插入排序从大到小排序。以下是代码,除了逻辑可能有点麻烦之外,其他都还好。
head.h
cfile.c
我认为用C写程序特别是写ACM时,应该尽量避免复杂的数据结构。应该用尽可能少的,尽可能精巧的,尽可能快速的方法来实现。记得原来写过一个开门人与关门人,使用了特别严谨的数据结构,结果AC不过……
我认为,追求算法,追求效率,怎么样都不为过。