09 2021 档案

摘要:const关键字 const修饰的对象一旦创建后其值就不能再改变,所以const修饰的对象必须初始化 用法: 定义常量对象,被const修饰的对象不能被更改 const int i = 42; //正确,编译时初始化 const int j = get_size(); //正确,编译时初始化 con 阅读全文
posted @ 2021-09-27 13:05 Astray_M 阅读(3184) 评论(0) 推荐(1)
摘要:字符串排序 1.低位优先的字符串排序(LSD) 低位优先的字符串排序是从右到左依次检查键中的字符,这种方法适用于键的长度都相同的字符串。 假设字符串的长度都为w,那么就从右向左按基数排序的方法排序w遍。 代码实现: //低位优先排序 template <typename T> void LSD(ve 阅读全文
posted @ 2021-09-24 14:30 Astray_M 阅读(658) 评论(0) 推荐(0)
摘要:最短路径 最短路径是在加权有向图中,找到从一个顶点到达另一个顶点的成本最小的路径 1.加权有向图的数据结构 加权有向边 代码实现: //加权有向边 class DirectedEdge { private: int vertax_from; //边的起点 int vertax_to; //边的终点 阅读全文
posted @ 2021-09-23 19:52 Astray_M 阅读(282) 评论(0) 推荐(0)
摘要:最小生成树 1.最小生成树(minimum spanning tree) 定义:给定一幅加权无向图,找到一棵权值最小的生成树 生成树:图的生成树是一棵含有其所有结点的无环连通子图 橙色部分即为该图的最小生成树 2.加权无向图的数据结构 加权边 代码实现 class Edge { private: i 阅读全文
posted @ 2021-09-22 21:18 Astray_M 阅读(155) 评论(0) 推荐(0)
摘要:要使用priority_queue需要先包含头文件#include<queue>,相比queue,优先队列可以自定义数据的优先级,让优先级高的排在队列前面。 优先队列的基本操作: empty:查看优先队列是否为空 size:返回优先队列的长度 top:查看堆顶的元素 push:插入一个元素 empl 阅读全文
posted @ 2021-09-20 00:28 Astray_M 阅读(558) 评论(0) 推荐(0)
摘要:有向图 1.有向图的定义 有向图:由一组顶点和一组有方向的边组成的,每条有方向的边都连接着有序的一对顶点。 有向路径:由一系列顶点组成,对于其中的每个顶点都存在一条有向边从它指向序列的下一个顶点。 有向环:一条至少含有一条边且起点终点都相同的有向路径 可达性:存在从顶点v到顶点w的路径,使顶点w能从 阅读全文
posted @ 2021-09-19 01:06 Astray_M 阅读(733) 评论(0) 推荐(0)
摘要:无向图 1.无向图的定义 无向图的定义:由一组顶点和一组能将两个顶点相连的没有方向的边组成 自环:一条连接一个顶点和自身的边 平行边:连接同一对顶点的两条边 顶点的度数:依附于这个点的边的总数 子图:一幅图的所有边的一个子集 连通图:从任意一个顶点都存在一条路径到达另一个任意顶点,则该图则为连通图 阅读全文
posted @ 2021-09-17 00:14 Astray_M 阅读(1208) 评论(0) 推荐(1)
摘要:1.1 散列表(哈希表) 散列表(哈希表)是根据键值而直接进行访问的数据结构。通过一个散列函数将查找的键转换为表中的一个索引,来加快查找的速度。理想情况下,不同的键值都能转化为不同的索引值,但是在现实中,我们常常要处理多个键值对应同一个索引值。所以,散列查找的算法分为两个部分。第一部分就是关键的散列 阅读全文
posted @ 2021-09-13 19:54 Astray_M 阅读(96) 评论(0) 推荐(0)
摘要:1.二叉查找树 二叉查找树是一颗二叉树,其中每一个结点都含有一个可比较的键以及相关联的值,并且每个结点的键都大于左子树的任意结点的键而小于右子树的任意结点的键 图1.二叉查找树.jpg 结点定义 template <typename T> class BSTNode { public: int ke 阅读全文
posted @ 2021-09-13 14:30 Astray_M 阅读(85) 评论(0) 推荐(0)