纯C语言实现的数据结构大作业

RocketDev

这个学期选了数据结构实验课(C语言版),我就打算用纯C完成任务,但是由于开课时间短, 实际上想要独立完成还是需要花不少时间的。而且在任务的约束下,使用AI并不能给出正确的代码。 不过最后除了排序我还是独立完成了所有模块(排序这么公式化的模块还是好抄的)。

整个项目有比较高的可复用性和稳健性,相比起一个任务一个main函数,这样组织还是比较优雅的。 其他的一些特性都可以在项目README中找到,不再赘述。实验具体的任务,可以在Release中找到。

无需实现的AVL

其中动态查找的任务,课上着重讲了AVL树的构建与旋转等,于是我先入为主地认为需要实现AVL, 然而书上并没有相关代码,只是我一厢情愿地这么认为。

等到我在GitHub上做完参考,自己写了一版还做了优化以后,当我整理任务的时候我才发现仅需实现 BST的插入删除查找等,属于是多做了一步...而这一步又花了我两三天的时间来做,我自己都疑惑了, 这真的是给学生做的吗?至于老师的反应,任务只要求按中序打印树,而老师又不看代码, 我甚至怀疑老师都没发现我写的是AVL...

虽然在算法✌️眼中,AVL可能没什么难的,但是对于我们重实践的网安人来说,算法还是挺难的。 在写AVL的时候让我回忆起了当时初中培训信奥的时光,尽管最后决赛都没进, 但是写出算法后的那种成就感,是考试成绩无法比拟的,这正是我喜欢计算机的原因啊。

一些题外话

有些老师忙于自己的研究,不会教学,这我可以理解,但是做老师不能太死板。我写的设计, 具有更高的复用性与性能,同时完成了数据结构相关的操作,但是一到实验课,有些老师不看代码, 一味的拘泥于结果是否与书上完全一致,完全是在打压学生的热情,让学生也走上形式主义的道路。 建议在选课前,先了解老师的评价,遇到这样的老师直接换。

  • 标题: 纯C语言实现的数据结构大作业
  • 作者: RocketDev
  • 创建于 : 2025-02-01 23:39:00
  • 更新于 : 2025-02-06 13:59:00
  • 链接: https://rocketma.dev/2025/02/01/datastructure/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
纯C语言实现的数据结构大作业