Skip to content

Commit 13b6d79

Browse files
committed
add DSExperiment
1 parent 986d2cd commit 13b6d79

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
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+
建议在选课前,先了解老师的评价,遇到这样的老师直接换。

0 commit comments

Comments
 (0)