目录

数据结构与算法课程代码

数据结构与算法(大二上)课程全程练习、作业与复习的 C++ 代码归档。

任务背景

课程实验与作业围绕经典数据结构的实现展开:线性表部分要求理解双向循环链表 在网页前进/后退、歌单循环播放、交通信号灯状态轮换等场景下的高效应用(取自 本人实验报告《双向循环链表(双链表)的高效应用》的提炼);此后按章节完成栈与 队列、表达式求值、KMP 字符串匹配、二叉树遍历与构造、排序二叉树、哈夫曼树、 图算法、内排序与查找的编码练习,并有 11 月 22 日课堂小测(栈、KMP、二分查找、 二叉树、冒泡排序)与期末复习(KMP 多种写法、快排/归并/希尔/堆排对比)。

内容结构

目录 说明
cpp-scripts/ 随堂单文件练习(原目录名 c++ scripts),按主题命名:线性表、栈/队列、中缀/后缀表达式、各类排序、折半/分块/动态查找、二叉树、KMP
一些代码/ 按专题整理的成套实现,分 KMP、线性表、二叉树、图、排序、查找 六节,各节自带自写 README.txt 说明来源与学习建议
1122小测/ 11 月 22 日课堂小测的现场与补做代码(栈、KMP 两种写法、二分查找、二叉树、冒泡)
查找作业/ 查找章作业:公共与区分(分离)链表查找、折半与分块查找
树作业/ 二叉树作业:遍历练习两题
树作业2/ 二叉树作业 2:排序二叉树、二叉树深度、哈夫曼树构造与编码、美国血统(洛谷)
复习/ 期末复习:KMPlearn1~5 渐进式重写 KMP,多种快排、归并、希尔、堆排写法
misc/ 课程根目录零散文件:SortFunction.h 排序函数模板声明(比 一些代码/排序/ 下同名文件更早的版本)

作业截图(jpg/png/bmp)、实验报告 docx 与编译产物(.exe/.gch)未入库。

运行方法

  • 依赖:任意支持 #include <bits/stdc++.h> 的 g++(MinGW-w64 即可),无第三方库。
  • 单文件程序:
    g++ -std=c++14 -O2 -o demo "cpp-scripts/栈.cpp" && ./demo
  • 模板头文件(SortFunction.h、Search_Function.h、BinarySTree.h、Heap.h、 HuffmanTree.h、Graph-*.h)无独立 main,自写测试程序 #include 后调用。
  • cpp-scripts/.vscode/ 是当时的 VS Code 编译调试配置,其中 gdb 路径指向本机 Dev-C++ 自带 MinGW64,换机器需自行修改。

来源声明

  • 代码为课程学习期间本人练习所得,整体带个人风格,部分未经充分调试 (一些代码/README.txt 原话:”这些大部分是我带个人风格的实现,我也没怎么调 试过,有bug就告知”)。
  • 分来源(依各节自述):一些代码/图/ 基本为教员提供(含拓扑排序参考实现); 一些代码/排序/ 与课本一致;一些代码/KMP/ 为跟教员讲解的个人实现; 线性表、二叉树、查找部分以本人实现为主,课本有对应参考。
  • 参考教材:王道《数据结构》复习指导、《大话数据结构》(两本 PDF 原件体积较大,未入库)。
关于

数据结构与算法全课程 C++ 代码:KMP、二叉树、图、排序、查找、线性表的带个人风格实现

97.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号