File tree 1 file changed +39
-0
lines changed
1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ title : 纯C语言实现的数据结构大作业
3
+ date : 2025/2/1 23:39:00
4
+ updated : 2025/2/1 23:39:00
5
+ tags :
6
+ - non-ctf
7
+ ---
8
+
9
+ 这个学期选了数据结构实验课(C语言版),我就打算用纯C完成任务,但是由于开课时间短,
10
+ 实际上想要独立完成还是需要花不少时间的。而且在任务的约束下,使用AI并不能给出正确的代码。
11
+ 不过最后除了排序我还是独立完成了所有模块(排序这么公式化的模块还是好抄的)。
12
+
13
+ {% note green fa-warehouse %}
14
+ 项目地址: https://github.com/RocketMaDev/DSExperiment
15
+ {% endnote %}
16
+
17
+ 整个项目有比较高的可复用性和稳健性,相比起一个任务一个main函数,这样组织还是比较优雅的。
18
+ 其他的一些特性都可以在项目README中找到,不再赘述。实验具体的任务,可以在Release中找到。
19
+
20
+ ## 无需实现的AVL
21
+
22
+ 其中动态查找的任务,课上着重讲了AVL树的构建与旋转等,于是我先入为主地认为需要实现AVL,
23
+ 然而书上并没有相关代码,只是我一厢情愿地这么认为。
24
+
25
+ 等到我在GitHub上做完参考,自己写了一版还做了优化以后,当我整理任务的时候我才发现仅需实现
26
+ BST的插入删除查找等,属于是多做了一步...而这一步又花了我两三天的时间来做,我自己都疑惑了,
27
+ 这真的是给学生做的吗?至于老师的反应,任务只要求按中序打印树,而老师又不看代码,
28
+ 我甚至怀疑老师都没发现我写的是AVL...
29
+
30
+ 虽然在算法✌️眼中,AVL可能没什么难的,但是对于我们重实践的网安人来说,算法还是挺难的。
31
+ 在写AVL的时候让我回忆起了当时初中培训信奥的时光,尽管最后决赛都没进,
32
+ 但是写出算法后的那种成就感,是考试成绩无法比拟的,这正是我喜欢计算机的原因啊。
33
+
34
+ ## 一些题外话
35
+
36
+ 有些老师忙于自己的研究,不会教学,这我可以理解,但是做老师不能太死板。我写的设计,
37
+ 具有更高的复用性与性能,同时完成了数据结构相关的操作,但是一到实验课,有些老师不看代码,
38
+ 一味的拘泥于结果是否与书上完全一致,完全是在打压学生的热情,让学生也走上形式主义的道路。
39
+ 建议在选课前,先了解老师的评价,遇到这样的老师直接换。
You can’t perform that action at this time.
0 commit comments