29 Star 406 Fork 126

cyberdash/数据结构(C++模板实现)

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MulanPSL-2.0

# 1 简介

  • 通用于各类数据结构与算法(C++语言)教材,适用于自学课程设计/毕业设计考研复习
  • 完整的代码实现,可直接运行调试,使用模板,方便灵活
  • 代码注释完整,可生成网页版/PDF文档,效果丰富
  • CyberDash团队持续化的维护, 抖音二维码如下, 您的关注点赞收藏是对我们的鼓励和鞭策!
image.png

2 使用教程

点击跳转至简易教程

3 内容

线性表

编号 结构 操作
1 顺序表 默认构造函数  构造函数  复制构造函数  析构函数  插入  删除  获取结点数据  设置结点数据  容量  长度  搜索(查找)  是否空表  是否容量满  排序  打印 
2 单链表 默认构造函数  复制构造函数  析构函数  插入(结点指针)  插入(结点数据)  删除  获取结点数据  设置结点数据  长度  搜索  是否空链表  打印 
3 双向链表 默认构造函数  析构函数  插入(结点数据)  删除结点  获取结点数据  设置结点数据  长度  搜索  是否空链表  打印 
4 循环单链表 默认构造函数  析构函数  长度  链表是否为空  清空  搜索  获取结点  插入结点  删除结点  获取结点数据  设置结点数据  打印 
5 循环双向链表 默认构造函数  析构函数  长度  判断是否为空链表  清空  获取链表首结点  搜索  获取结点(按方向)  获取结点  插入结点  删除结点(按方向)  删除结点  获取结点数据  设置结点数据  打印 
6 静态链表 构造函数  插入结点(数据项)  删除结点  获取结点数据  长度  搜索  是否空链表  打印 
7 算法 顺序表求并集  顺序表求交集 

栈与队列

编号 结构 操作
1 顺序栈 构造函数  析构函数  入栈  出栈  出栈(保存数据)  获取栈顶数据  判断是否为空栈  判断是否为满栈  获取当前栈长度  重载<< 
2 链式栈 默认构造函数  析构函数  入栈  出栈  出栈(保存数据)  获取栈顶数据  判断是否为空栈  获取当前栈长度  重载<< 
3 循环队列 构造函数  析构函数  入队  出队  出队(保存数据)  获取队头数据  获取队尾数据  判断是否为空队  判断是否为满队  长度  清空  重载<< 
4 链式队列 默认构造函数  析构函数  入队  出队  出队(保存数据)  获取队头数据  获取队尾数据  判断是否为空队  长度  清空  重载<< 
5 双端队列 构造函数  析构函数  队尾入队  队头入队  队头出队  队头出队(保存数据)  队尾出队  队尾出队(保存数据)  获取队头数据  获取队尾数据  判断是否为空队  判断是否为满队  长度  清空  重载<< 

数组和广义表

编号 结构 操作
1 稀疏矩阵 转置  快速转置 
2 广义表 建表  长度  深度  序列化 

字符串

编号 结构 操作
1 字符串 BF算法  KMP算法  KMP求next数组 

编号 结构 操作
1 二叉树 默认构造函数  构造函数  复制构造函数  析构函数  获取根结点  是否为空树  获取父结点  高度  结点数  插入(递归)  是否存在(数据)  前序遍历(递归)  前序遍历  中序遍历(递归)  中序遍历  后序遍历(递归)  后序遍历  层序遍历  建树(by前序遍历和中序遍历)  打印  判断两棵树是否相同 
2 中序线索树 创建线索  获取第1个线索结点  获取最后一个线索结点  获取下一个线索结点  获取前一个线索结点  获取父结点  中序遍历  前序遍历  后序遍历 
3 子女兄弟树 使用带"()"的先根遍历字符串创建子女兄弟树  是否空树  结点数(递归)  高度(递归)  根结点  先根遍历  后根遍历  层序遍历  打印(递归) 
4 Huffman树 构造函数  析构函数  生成Huffman编码  打印 
5 构造函数1  构造函数2  析构函数  插入  堆顶出堆  获取堆顶  是否空堆  是否满堆  获取堆大小  清空堆 
6 最小优先队列 默认构造函数  构造函数  入队  出队  获取队头  长度  清空 

编号 结构 操作
1 矩阵图 构造函数1  构造函数2  构造函数3  构造函数4  析构函数  获取结点(by结点索引)  获取边权值(by结点)  获取边权值(by结点索引)  插入结点  删除结点  插入边  删除边  获取第一个相邻结点  获取下一个相邻结点  获取结点索引  重载<<  打印邻接矩阵 
2 邻接表图 构造函数1  构造函数2  构造函数3  构造函数4  析构函数  获取结点(by结点索引)  获取边权值(by结点)  获取边权值(by结点索引)  插入结点  删除结点  插入边  删除边  获取第一个相邻结点  获取下一个相邻结点  获取结点索引  重载<< 
3 算法 深度优先遍历(DFS)  广度优先遍历(BFS)  拓扑排序  连通分量  最小生成树Prim  最小生成树Kruskal  最短路径Dijkstra  最短路径BellmanFord  最短路径Floyd  关键路径 

搜索(查找)

编号 结构 操作
1 线性表搜索 顺序搜索  折半搜索 
2 二叉搜索树 默认构造函数  构造函数  析构函数  插入结点(调用递归)  删除结点(调用递归)  搜索(调用递归)  高度(调用递归)  获取最小结点的值  获取最大结点的值  获取根结点  清空(调用递归)  打印(中序遍历)  重载= 
3 AVL树 默认构造函数  插入结点  插入节点(递归)  删除结点  删除结点(递归)  高度  高度(调用递归)  最大值  最小值  搜索  打印  子树插入结点(递归)  子树插入结点  子树删除结点(递归)  子树删除结点  插入动作平衡(by回溯栈)  删除动作平衡(by回溯栈)  平衡  左单旋转(Left Rotation)  右单旋转(Right Rotation)  先左后右双旋转(Left Right Rotation)  先右后左双旋转(Right Left Rotation)  子树搜索(递归)  获取(子树中)关键字最小结点  获取(子树中)关键字最大结点  获取结点的(中序)前一结点  子树高度  子树打印(递归) 
4 并查集 构造函数  析构函数  查找(递归)  查找  合并  合并(Weighted) 

排序

编号 结构 操作
1 排序 冒泡排序  选择排序  插入排序  希尔排序  归并排序  归并排序(递归)  快速排序(递归)  堆排序  基数排序(链表)  基数排序(数组) 

4 关于我们

我们是拥有十多年开发经验的开发工程师, 长期就职于各互联网大厂与著名外企.
如果想更多了解我们,欢迎关注抖音:cyberdash_yuan

Y_Dash(元哥)
北邮本硕, 短视频主要出镜人, 底层到应用层, 多年开发经验

G_Dash(磊哥)
北邮硕, 10余年安全/系统工程师, 专注C/Linux/网络/安全, 某互联网基础架构部资深工程师

L_Dash(小于)
北邮硕, 资深开发工程师, 热爱数据结构和算法

5 感谢名单

感谢下列朋友发现代码bug

鲁子傲 LLcu2019205455@163.com, 蔡博文 1723004698@qq.com, qiaoge77@163.com, 连菜菜 kukakatoo@gmail.com, 黄彬彬 1928947271@qq.com

空文件

简介

通用的C++数据结构代码实现,使用模板。代码完整,注释齐全,可直接运行,可使用doxygen生成网页和PDF文档,跨Windows/Linux/Mac平台兼容 展开 收起
README
MulanPSL-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/cyberdash/data-structures-cpp.git
git@gitee.com:cyberdash/data-structures-cpp.git
cyberdash
data-structures-cpp
数据结构(C++模板实现)
master

搜索帮助