- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 迪杰斯特拉算法求最短路径(邻接表存储)
其实完全可以用邻接矩阵存储,那样更快也跟好理解,这个纯属老师布置的任务。 唯一难点就是初始化D[v]为v00到各个终点v的权值,两层遍历。注释写的很清楚。 //实验十一:用邻接表构建有向图,实现迪杰斯特拉算法,求最短路径: //具体要求: //1. 定义一个有向图类型(以邻接表表示图)。完成 //2. 定义一个函数:通过输入完成有向图的建立(邻接表表示)。完成 //3. 定义一个函数,实现Dijkstra算法 //4. 在main函数里调用2和3中的函数:先建立一个有向图,然后指定起始节点V0,最后输
2021-11-30 23:18:51
2659
转载 C++产生随机数
总述: 计算机的随机数都是由伪随机数,即是由小M多项式序列(?)生成的,其中产生每个小序列都有一个初始值,即随机种子。(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,当你取得65535个随机数后它们又重复出现了。) C++中没有自带的random函数,要实现随机数的生成就需要使用rand()和srand()。 不过,由于rand()的内部实现是用线性同余法做的(?),所以生成的并不是真正的随机数,因其周期特别长,故在一定的范围里可看成是随机的。 伪随
2021-11-30 23:11:20
270
转载 【无标题】leetcode 两数相加
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next.
2021-11-29 16:26:53
147
原创 求数组两个最小值的下标的三种方法
1.向量 ////在HT[k](1<=k<=i-1)中选择两个棋双亲域为0且权值最小的结点,并返回它们在HT中的序号s1,s2 void Select(HTNode *HT, int i_1, ////在HT[k](1<=k<=i-1)中选择两个棋双亲域为0且权值最小的结点,并返回它们在HT中的序号s1,s2 void Select(HTNode *HT, int i_1,int s1,int s2) { //定义向量vector存储所有权值 vector
2021-11-18 20:54:47
2209
原创 pintia玩转二叉树
#include<iostream> #include<vector> #include<queue> using namespace std; struct TreeNode { int data; TreeNode *lchild,*rchild; }; /* //由二叉树的先序序列和中序序列构建二叉树 构造思想: 假设当前处理先序序列pre的处理区间是[a,b],中序序列in处理的区间是[c,d]。 pre的处理区间是[0,N-1],...
2021-11-10 21:08:41
617
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人