自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 图的宽度优先遍历非递归实现——C++

思路: 用队列实现图的非递归BFS。首先把遍历起始顶点push进队列;然后每次从队列中pop一个顶点时,都遍历此顶点,并遍历边表,找出与此顶点相连接的顶点,若此连接顶点未被访问,则入队,若此顶点已被访问,则继续,直到队列为空,深度遍历结束。注意:深度遍历图时,所有顶点被访问到的前提条件为此图为连通图。代码:#include <iostream>#in...

2018-09-05 16:28:01 1518 1

原创 堆排序

思路:建立堆,代码:#include <iostream>#include<vector>using namespace std;void swap1(vector<int> &a,int i,int j){ int temp=a[i]; a[i]=a[j]; a[j]=temp;}void a

2018-08-30 12:17:25 87

原创 二叉树寻路

1. 题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。思路:典型的背包问题。二叉树数据结构可采用顺序存储方式,对于非完全二叉树,采用补0的方式构成顺序数组。代码:#include <iostream>#include<vector>using namespace std;...

2018-08-30 11:22:05 1441

原创 工作时间片问题

问题描述:输入: 客户名:start/end:作业号(唯一):开始时间输出: 客户名:占用时间片个数 (按客户名遵循先来先输出)代码:#include <iostream>#include <vector>#include <string>#include <unordered_map>#include <stack>...

2019-10-13 13:42:17 214

原创 超长浮点数大数相乘

代码:#include <iostream>#include <string>#include <vector>using namespace std;static string BigMulti(string &a, string &b){ string ret; vector<int> v(a.le...

2019-10-13 00:31:17 238

原创 1到n的的最小公倍数

代码:#include #include #include using namespace std;static const int N = 100;static string BigMulti(string &a, string &b){string ret;vector v(a.length() + b.length() - 1, 0);for (int i...

2019-10-12 23:35:14 1209 1

原创 c++高效实现并查集

C++实现并查集题意:输入n,m。分别代表n个节点和m个节点连接,接下来m行,每行两个数,代表两个节点相连。节点编号从1-n,请判断所有节点的组成的集合的个数。思路:典型的连通图问题,题意就是求所有节点的连通图的个数。可通过树的合并实现。首先:初始化n个节点到n棵树,每次遍历一对相连关系,对节点进行寻根,如果他们根相同,则是一个数,无需合并,否则将其中一个节点的根挂到另一个节点的根上,最后判...

2019-10-01 19:52:01 390

原创 图的深度优先遍历非递归实现—C++

思路: 利用栈非递归实现深度优先遍历(DFS)图。先把起始顶点访问并入栈;然后每次取栈顶元素,找到一个与栈顶顶点连接并且未被访问的顶点,随即访问此顶点,并将此顶点入栈;直到某一顶点没有出边(针对有向图)或者所有连接的顶点都已经被访问过了,删除栈顶元素;循环上述步骤,直到栈为空,深度优先遍历结束。注:深度优先遍历到所有顶点的前提是此图为连通图;若此图为两个连通图组成的图...

2018-09-07 13:58:38 5119

原创 C++实现图的邻接矩阵

代码:#include &amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;vector&amp;amp;gt;using namespace std;typedef int T; //顶点的值类型 int, char, double and so onstruct Node{ T value; //...

2018-09-05 14:43:15 2315

原创 二叉树的层序遍历

思路: 使用队列实现二叉树的层序遍历,先把root节点入队,然后每次从队列删除一个节点,都访问此节点,并把节点的左右子节点入队,直至队列为空。层序遍历结束。代码:#include &lt;iostream&gt;#include&lt;vector&gt;#include&lt;queue&gt;using namespace std;struct No...

2018-09-02 17:28:36 193

原创 多字符串重构

问题描述: 第一行输入n和m,代表n个字符串,每个字符串长度为m;接下来n行为长度为m的n个字符串,n个字符串构成集合A。 从任意字符串中选取第一个字符为重构字符串第一个字符,从任意字符串中选取第二个字符为重构字符串第二个字符,以此类推,求出以集合A重构出来的字符串集合S。分析思路: ...

2018-08-31 12:36:57 186

原创 查看数组中最小的n个数

思路:找出前n个数最大的值,每次遇到比最大值小的数,交换数值,并重新确定前n个数中的最大值。代码:#include &lt;iostream&gt;#include&lt;vector&gt;using namespace std;void swap1(vector&lt;int&gt; &amp;a,int i,int j){ int temp=a[i]; ...

2018-08-30 15:09:15 1154

原创 C++迭代器失效问题

迭代器失效: 1、对于在内存中连续分布的容器(vector、queue、deque),插入或者删除会使插入或者删除点的迭代器以及之后的迭代器失效。 2。对于非连续存储的容器(list,forword_list,map),插入或删除仅仅使插入或者删除点迭代器失效。解决方法: 1、对于连续内存容器活非连续内存容器,使用 iter=erase(iter)对迭代器重新赋值,erase会返回一个有...

2018-08-30 12:44:16 124

原创 归并排序

代码:#include &amp;lt;iostream&amp;gt;#include&amp;lt;vector&amp;gt;using namespace std;void merge_two_arr(vector&amp;lt;int&amp;gt; &amp;amp;a,int l1,int h1,int l2,int h2){ int index1=l1; int index2=l2; vect

2018-08-30 12:14:11 114

空空如也

空空如也

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

TA关注的人

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