搜索
查看: 1489|回复: 4
打印 上一主题 下一主题

【重新拾笔】(原创)十五分钟教程(链表篇)

[复制链接]
楼主
发表于 2014-2-24 23:11:58 | 显示全部楼层
1. 链表当然不难,非常容易出错而已……很多职业程序员也不愿意亲手写链表的
2. 链表不是算法,而是数据结构……

3. ANSI C中的malloc函数定义在stdlib.h中,malloc.h是过时的东西
4. 我比较建议写 typedef struct stu{.....} student,让代码看上去视觉负担轻一些

5. 接口设计就不吐槽了, 这个hanshu何苦另外写一个函数?有重复利用的余地吗?
6. 还是不建议把malloc返回的指针强制转换类型,这是C和C++都分不清的半桶水程序员喜欢干的事情

7. 契科夫数列是啥玩意儿?
8. 循环里用scanf外加不除错代码是非常糟糕的风格
9. 变量名好乱……
10. unset掉tail->next河head2是完全没必要的……只需要最后做一次就可以了,这样的代码给别人看了徒增疑惑

11. head->next != 0 这一句,你用的空指针是0,而前面用的空指针是NULL,统一一下比较好

点评

已修改!!  发表于 2014-2-26 20:27
沙发
发表于 2014-2-24 23:18:33 | 显示全部楼层
最重要的,我觉得这个例子完全没有体现出链表的必要性……
其实一般程序员是极少用到链表的,我觉得一个无限向上增长的stack来做例子比较合适
linked-list在数据结构课程中放的那么靠前,一方面是因为它是重要的内存布局形式,另一方面是因为树和图都是它的一种复杂变体……在小问题上的实用性其实很一般

我觉得要教人链表,一开始用数组模拟比较好。链表重要的是思想,而不是实现
关键是要明白:一个数据单元存放核心数据,以及下一个数据单元存在的位置这种基本的内存分布形式
这点在数据结构上是比较少见的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表