数据结构
Roy_Batty
lost in rain
展开
-
找到顺序表中的最大、最小元素的位置(使用数组及vector容器)
题目就是在一个顺序表中找到最大元素与最小元素的位置,直接上代码:这里的#include<bits/stdc++.h>涵盖了c中的大部分库,就像个万能头文件input: 7 1 2 3 4 5 6 7output: Lmax=6 Lmin=0/* 使用 vector容器 vector <int>::iterator ... 是声明一个 vector类的迭代器 */#include"bits/stdc++.h"using namespace std;原创 2020-09-24 17:59:30 · 1386 阅读 · 0 评论 -
利用二叉树中序及先序遍历确定该二叉树的后序序列问题
利用二叉树中序及先序遍历确定该二叉树的后序序列中序遍历:BFDAEGC前序遍历:ABDFCEG根据中序遍历和前序遍历的性质:1.前序遍历,从左到右依次为根节点2.中序遍历,若我们找到一个根节点,那么在一个范围内,根节点的左边为左子树的节点,右边为右子树的节点。大体过程:根据前序遍历的节点确定根节点,再通过根节点在中序遍历中确定该节点的左右子树的节点。步骤:1.前序遍历ABDFCEG加粗的A即为根节点,在中序遍历中BFDAEGC,这样即可确认节点A的左子树的节点有BFD,右子树的节点有EGC,根原创 2020-05-24 11:10:39 · 799 阅读 · 0 评论 -
两种写法解决利用二叉树中序及后序遍历确定该二叉树的先序序列问题
利用二叉树中序及后序遍历确定该二叉树的先序序列中序遍历:DCBFEGAH后序遍历:DCFGEBHA根据中序遍历和后续遍历的性质:1.它们都是先遍历左子树。2.后序遍历中从右到左依次为对应子树的根结点。3.中序遍历中若我们找到一个根节点,那么在一个范围内,根节点的左边为左子树,右边为右子树。过程如下:1.DCBFEG AHDCFGEB HA, A为根节点,在中序遍历中它的左边即为左子树(6个节点),右边为右子树(1个节点);在后序遍历中我们即可根据左右子树的节点个数确定后序遍历中的左右子原创 2020-05-10 20:32:33 · 646 阅读 · 2 评论 -
邻接矩阵存储简单路径(c++,dfs)
在邻接矩阵上通过深度优先搜索找到两顶点间的所有路径重点就是标记的清除参考于邻接矩阵存储简单路径代码如下:#include"bits/stdc++.h"using namespace std;#define MAX 10typedef int EdgeType;typedef struct{ EdgeType edge[MAX][MAX]; //边的情况 bool fla...原创 2020-05-06 16:20:05 · 799 阅读 · 0 评论 -
Hash 哈希表 (开放地址法(线性探测)解决冲突,c++)
Hash 哈希表 (开放地址法解决冲突)Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。(...原创 2020-04-30 16:06:47 · 2589 阅读 · 0 评论 -
Hash 哈希表(链地址法处理冲突,c++)
Hash (链地址法处理冲突)Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。(百度百科)...原创 2020-04-30 09:35:24 · 2444 阅读 · 0 评论 -
有向图是否存在回路(c++,深度优先思想)
有向图是否存在回路从每个顶点进行伪深度优先搜索,如果有点重复被搜索,则判断为存在回路。代码如下:#include"bits/stdc++.h"using namespace std;#define MAX 10//最大顶点数 #define INIFINITE 201201//定义无限大 typedef int EdgeType;//定义边类型 typedef char Vert...原创 2020-04-25 16:24:04 · 4438 阅读 · 0 评论 -
有向图的强连通判断(c++,广度优先搜索,邻接矩阵)
有向图的强连通判断定理:一个有向图是强连通的,当且仅当G中有一个回路,它至少包含每个节点一次。( 百度百科)简单说就是从有向图的每个顶点出发都能到达图的其它顶点。就用这个思想写代码:#include"bits/stdc++.h"using namespace std;#define MAX 10#define INFINITE 201201//定义无限大 typedef int ...原创 2020-04-24 17:00:18 · 1448 阅读 · 0 评论 -
prim(普里姆)算法(c++,有图,邻接矩阵)
prim算法- [1 ]在上图中我们事先选取v1作为起始点,将v1放入集合T中。选取集合T中的v1(按放入顺序),由图,它的邻接边中选取权值最小的的一条也就是(v1-->v2)将v2放入集合T中,并将v1,v2标记使以后的节点不能以它们作为终点。-...原创 2020-04-21 18:44:49 · 983 阅读 · 1 评论