算法
吴珝君
这个作者很懒,什么都没留下…
展开
-
有向图的遍历(深度遍历和广度遍历)
typedef struct _BinaryTreeNode{ char data; //int ltag , rtag; struct _BinaryTreeNode *lchild; struct _BinaryTreeNode *rchild; }BTNode; /创建邻接矩阵 假定这里是有向图void createMGraph(AGraph *a){//...原创 2019-01-23 16:05:15 · 4918 阅读 · 0 评论 -
关于图的几个小问题
1、DFS遍历一个无环有向图,并在DFS算法退栈返回的时候打印相应的顶点,则输出的顶点序列是逆拓扑排序。分析:当有向图中不存在环的时候,也可以采用深度优先遍历的方式进行拓扑排序,由于图中不存在环,最先出栈的是出度为0的顶点,也就是拓扑排序的最后一个顶点,因此按照退栈顺序打印的顶点是逆拓扑排序。2、深度优先遍历和广度优先遍历可以判断有向图中是否有环3、关键活动构成了关键路径。关键路径是...原创 2019-02-02 16:13:07 · 666 阅读 · 0 评论 -
图--判断是否有环
(1)拓扑排序#include <iostream>#include <stack>using namespace std;//// aov.h// aov//// Created by 吴珝君 on 2018/12/25.// Copyright © 2018年 闲着也是贤者. All rights reserved.///***...原创 2019-02-02 15:14:28 · 276 阅读 · 0 评论 -
二叉树的遍历的应用
//二叉树的定义typedef struct _BinaryTreeNode{ char data; //int ltag , rtag; struct _BinaryTreeNode *lchild; struct _BinaryTreeNode *rchild; }BTNode;/*1、表达式(a-(b+c)*(d/e))存储在存储在以二叉链表为存储结构的二叉...原创 2019-01-22 21:17:59 · 413 阅读 · 0 评论 -
二叉树的前序中序后序线索化及其遍历
//线索二叉树的结点结构typedef struct _ThreadBinaryTreeNode{ int data; int ltag , rtag; struct _ThreadBinaryTreeNode *lchild; struct _ThreadBinaryTreeNode *rchild; }TBTNode; vo...原创 2019-01-22 15:39:56 · 264 阅读 · 0 评论 -
拓扑排序
#include <iostream>#include <stack>using namespace std;//// aov.h// aov//// Created by 吴珝君 on 2018/12/25.// Copyright © 2018年 闲着也是贤者. All rights reserved.///*************...原创 2019-02-01 01:24:09 · 102 阅读 · 0 评论 -
弗洛伊德算法--多源最短路径
//图的存储--邻接矩阵#define MAXSIZE 100#define INF 65535typedef struct { int edges[MAXSIZE][MAXSIZE];//存放边的关系的数组 int n,e;//n是顶点个数 e是边的个数 char vex[MAXSIZE];//存放顶点信息}MGrap; //创建图。//单元最短路径...原创 2019-01-31 23:46:42 · 368 阅读 · 0 评论 -
迪杰斯特拉--单源最短路径算法实现
//图的存储--邻接矩阵#define MAXSIZE 100#define INF 65535typedef struct { int edges[MAXSIZE][MAXSIZE];//存放边的关系的数组 int n,e;//n是顶点个数 e是边的个数 char vex[MAXSIZE];//存放顶点信息}MGrap; //创建图。void creat...原创 2019-01-31 18:05:45 · 236 阅读 · 0 评论 -
树的遍历_(前序(递归和非递归)、中序(递归和非递归)、后续(递归和非递归)、层次、深度(递归和非递归) )
//树中节点的定义typedef struct _BTNode{int data;struct _BTNode *lchild;struct _BTNode *rchild;}BiTNode ,*BiNTree;//树的层次遍历-- 先进先出 需要借助队列来实现void BinaryTreeLevelOrder(BiNTree root){ queue<BiTNo...原创 2019-01-21 21:50:17 · 103 阅读 · 0 评论 -
最小生成树的算法
//邻接矩阵typedef struct{ int no;//顶点信息 char info;}VertexType;typedef struct{ int edges[MAX_Size][MAX_Size];//存放边的关系 char vex[MAX_Size];//存放顶点的值 int n ,e;//分别为顶点数目和边的数目}MGrap;//建立有向图的邻接矩阵表...原创 2019-01-23 22:17:50 · 226 阅读 · 0 评论 -
图的广度和深度优先遍历(邻接矩阵)
typedef struct{ int edges[MAX_Size][MAX_Size];//存放边的关系 char vex[MAX_Size];//存放顶点的值 int n ,e;//分别为顶点数目和边的数目}MGrap;/建立有向图的邻接矩阵表示void createGrap(MGrap *g){ cout <<"请输入顶点数和边的数"<...原创 2019-01-23 19:03:05 · 521 阅读 · 0 评论 -
栈的应用--中缀与后缀表达式
算法流程 :中缀转后缀1.顺序扫面整个中缀表达式2.中缀表达式的元素分为两种类型,操作数和操作符。如果当前元素为操作数,则直接将该元素存储后缀表达式当中3.如果当前操作的事操作符,那么要分几种情况 3.1 如果当前的运算符是(“(”)则直接将其入栈。 3.2如果是(“)”),则将栈中的操作符出栈,直到遇到“)” (这里需要强调的是括号是不需要进入后缀表达式的) 3.3...原创 2019-01-17 15:11:12 · 151 阅读 · 0 评论 -
递归思想的学习之汉罗塔问题
/*假设有n的盘子 要想将最大的盘子移动到C柱上,则必须先将n-1个盘子移动到B柱子上,而移动到B柱上则需要通过C的帮助 即:ACB A 是源 B是目的 C是辅助柱 这样A上只有一个直接将A移动到C 最后,将这n-1个盘移动到C 同样 我们需要A的帮助,才能将这写盘移动到C*/ void hanoi(int n,s...原创 2018-11-27 11:26:06 · 98 阅读 · 0 评论 -
按照字符串中某个字符子串的出现顺序对字符串排序
//// main.cpp// newcoder//// Created by 吴珝君 on 2019/5/5.// Copyright © 2019年 闲着也是贤者. All rights reserved.//#include <iostream>#include <string>#include <vector>#inclu...原创 2019-05-07 09:35:02 · 1025 阅读 · 0 评论