https://github.com/rocketmadev/dsexperiment
DataStructure Experiment in HDU, Cyber Security
https://github.com/rocketmadev/dsexperiment
c datastructures hdu make
Last synced: 11 months ago
JSON representation
DataStructure Experiment in HDU, Cyber Security
- Host: GitHub
- URL: https://github.com/rocketmadev/dsexperiment
- Owner: RocketMaDev
- License: gpl-3.0
- Created: 2025-01-24T16:42:25.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-06T05:59:32.000Z (over 1 year ago)
- Last Synced: 2025-07-05T04:02:36.670Z (11 months ago)
- Topics: c, datastructures, hdu, make
- Language: C
- Homepage:
- Size: 91.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# DS Experiment HDU
这个仓库里的源代码是杭电网安学院的数据结构课程设计的作业。
[English version](README_en.md)
## 特性
1. 所有代码均符合书上的思路,例如在静态查找中是逆序,在数组0处存放哨兵块。
2. 所有头文件均包含注释,讲述如何使用。
3. 所有测试案例编译时无错误、警告,运行时无内存泄露。
4. 可复用性、稳健性。代码考虑了较多edge case并且考虑如何在上层模块中使用。
**但是不要在生产环境中使用!**
5. 标准化的项目结构。源码和头文件存储在`src/`中,对象文件存储在`build/`中,
测试文件存储在`test/`中,最后的可执行程序在`./`下。
6. 采用GNU Make编译,方便快捷。
7. 纯C实现。
> 没有上传实验报告是刻意的,我也不会上传。请先学会编译这个项目。
## 编译
所有代码在Arch Linux + gcc的环境下顺利通过所有测试,但未使用过其他环境。
请注意,代码中存在gcc特有指令,VS不一定能顺利编译。
使用GNU Make构建系统,使用`make TARGET=$EXE`来编译目标,目标可以从`Makefile`中找到。
默认开启`-O2`编译,如果想要调试可以使用`make TARGET=$EXE DEBUG=1`开启调试符号。
此时优化等级会降至默认级别。
想要编译一整个实验的相关程序,可以使用`make experiment$i`,`i`可以是1-5,
具体章节生成的对应的程序可以在`Makefile`中找到。
想要清除依赖(`.o`)而不清除生成的程序(有些代码生成的`.o`文件可能不一致),
可以使用`make clean_deps`,想要清除所有程序与依赖,可以使用`make clean`。
## “我有疑问”
当发现编译时无法正常工作,有bug,想要给其他平台做适配等,请参阅[贡献](CONTRIBUTING.md)一节。
## 打包源代码
由于模块的高复用性,后期实验的模块往往需要打包整一个项目。
如果不想每个实验都上交一样的代码,可以检出到对应的标签,打包我在每个实验所上交的代码。
~~不过估计老师也不会看的~~
例如使用`git checkout experiment1`可以回溯到实验1的代码,在使用zip等工具打包后,
使用`git checkout main`回到主线头部。
## 实验具体任务
实验的所有任务我打包放在Releases里了,请自行解压。除了最后一个实验,其他实验都验收通过了,
最后一个实验没有安排验收课,因此说不清楚验收情况请知悉。
## 致谢
排序模块用到了[@zhouxumeng213](https://github.com/zhouxumeng213/sort)的代码,
关于avl树优化验证来自[这篇知乎上的文章](https://zhuanlan.zhihu.com/p/454080520)。
## 博客
看看这个项目的博客: https://rocketma.dev/2025/02/01/datastructure/
## License
本项目基于GPLv3分发,详情请见[LICENSE](LICENSE)。