自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 排序算法(C++)

对教材的八个排序算法进行了一次实践

2022-01-04 11:13:09 985

原创 图的最短路径问题(C++)

最短路径问题主要分为两种,单源和多源。对于无权的单源最短路径问题,因其所有边长相等,在使用广度优先搜索时距离一定是从0开始依次向外扩展一层,不会突然出现一个顶点使得之前录入的路径缩短。 那么就只需要在广度优先搜索的过程中加入可以记录距离和路径的容器即可。class unweighted{public: vector<vector<int>>map;//邻接矩阵 vector<int>dis;//记录距离的...

2022-01-01 10:28:12 2227

原创 迷宫生成算法(三)(C++)

三、最小生成树算法之Kruskal算法 迷宫算法中由于所有边的权相等,且需要随机性,所以与数据结构中的Kruskal算法有较大的不同:将每个顶点视为一棵树,将所有边加入集合,从边的集合中随机选择一条边,如果该边两端的顶点属于不同的树,将两棵树合并,将这条边移除集合,如果属于相同树,直接舍弃这条边,直到边的集合为空,即所有边都被访问过,结束构造

2021-12-26 14:44:17 1421

原创 迷宫生成算法(二)(C++)

二、最小生成树算法之Prim算法 数据结构中的Prim算法是先将一个顶点加入集合,寻找与其最近的顶点加入集合,然后依次寻找与这两个顶点中最近的顶点加入集合,以此类推直到所有顶点都被访问到。 由于迷宫中所有边的权都相同,且生成迷宫需要随机性,所以寻找最近顶点这一步就变为:随机选取集合中某一顶点,检索其相邻顶点是否被访问过,如果全部被访问过,将这个顶点移除集合,如果尚存在未被访问过的顶点,就随机选择其中一个并连接它们。

2021-12-26 11:26:59 1492

原创 随机迷宫生成算法(一)(C++)

迷宫生成算法可以形象的理解数据结构中图的相关知识,标准二维迷宫中,每一个方块都可以抽象为图的一个顶点,而且这个图是一个无向图,且权为一,实际写起来也没有那样复杂。 迷宫生成算法大体可分为四种,深度优先算法,最小生成树算法中的Prim算法和Kruskal算法,递归分割算法。 由于本人也是初学者,只能边学边练,写文章以作巩固和复习使用。 本算法图像的输出使用easyX图形库。

2021-12-25 07:59:22 5667 1

原创 最大堆(C++)

最大堆的性质就是每个非叶子节点都要比它的两个儿子(或是一个)要大,因此我们在插入与删除时必定会对插入点的祖先或是后代进行访问,这种访问方式不宜使用顺序遍历来实现,显然通过层序遍历直接访问下标的方式更加容易实现,对于节点i,i/2即为它的父节点,2*i,2*i+1,即为它的子节点,所以这里使用数组实现而不是链表。基本功能插入,删除,遍历class MaxTree{public: vector<int>tree; int getHight();//获取树高 ...

2021-12-21 09:06:00 1124

原创 C++实现俄罗斯方块

使用控制台显示游戏界面

2021-12-20 10:07:54 15132 22

原创 AVL二叉树的实现(C++)

使用C++实现AVL二叉树的插入,查找,删除,遍历等操作

2021-12-10 16:05:10 776

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除