- 博客(13)
- 收藏
- 关注
原创 最小生成树之Prim,Kruskal
1.如果无向图中,边上有权值,则称该无向图为无向网2.如果无向网中的每个顶点都相通,称为连通网3.最小生成树(Minimum Cost Spanning Tree)是代价最小的连通网的生成树,即该生成树上的边的权值和最小最小生成树的准则1.必须使用且仅使用连通网中的n-1条边来联结网络中的n个顶点;2.不能使用产生回路的边;3.各边上的权值的总和达到最小。4.常用于...
2018-11-06 19:28:14
186
原创 图之邻接矩阵,深度遍历,广度遍历,连通分量个数
1.深度遍历 DFS类似于树的先根遍历如图,上述图的深度遍历输出为ADCBE给出一个图的邻接矩阵,对图进行深度优先搜索,从顶点0开始 class Graph { private: int flag[N];//状态数组 int Vexnum;//图的顶点数量 int Matrix[N][N]; //邻接矩阵 void DFS(...
2018-11-04 11:27:07
4731
原创 树 Huffman树的构造,编码,解码
用静态链表实现Huffman树的构建练习:对电文‘abbaccdeec‘进行Huffman编码。画出生成的静态链表---Huffman树和各字符编码最后形成的code字符串。静态链表结构如下: n个叶子结点的Huffman树共2n-1个结点。(两两合并,直至一个,共生成n-1个结点)电文abbaccdeec中 a-2 , b - 2 ,c-3 ,d-1 ,e-...
2018-10-23 16:43:48
1020
1
原创 表达式求解
计算一个表达式的运算结果使用C++自带stack堆栈对象来实现输入第一个输入t,表示有t个实例第二行起,每行输入一个表达式,每个表达式末尾带#表示结束输入t行 输出每行输出一个表达式的计算结果,计算结果用浮点数(含4位小数)的格式表示用cout控制浮点数输出的小数位数,需要增加一个库文件,并使用fixed和setprecision函数,代码如下:#inclu...
2018-10-16 15:03:45
656
原创 迷宫
题目描述给出一个N*N的迷宫矩阵示意图,从起点[0,0]出发,寻找路径到达终点[N-1, N-1]要求使用堆栈对象来实现,具体算法参考课本3.2.4节51页 输入第一行输入t,表示有t个迷宫第二行输入n,表示第一个迷宫有n行n列第三行起,输入迷宫每一行的每个方格的状态,0表示可通过,1表示不可通过输入n行以此类推输入下一个迷宫输出逐个输出迷宫的路径如...
2018-10-16 15:00:41
361
原创 树 前序,中序,后序,层次遍历,获取树的高度
本程序建树方法采用“先序遍历+空树用0表示”结点和树的构建class Node{public: char data; Node *left,*right; Node() { left=right=NULL; } };class Tree{private: Node *Root;public: Tree(){Root=Create();} Node*...
2018-10-16 14:52:37
969
原创 链表的操作
一开始看这两题,我竟然没有看懂他们的不同处,败给了语文...1.链表的逆序输出题目描述按数字输入顺序创建单链表。不可借助数组、容器,不可改变原链表、不可开辟新结点空间。编程实现单链表的逆序输出。输入测试次数t每组测试数据一行,格式如下:数据个数n,后跟n个整数输出对每组测试数据,逆序输出单链表。样例输入210 1 2 3 4 5 6 7 8 9 104 19 20 15 -10样例输出10 9 8...
2018-04-02 17:22:05
421
原创 约瑟夫环(循环链表)
题目描述约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。用循环链表实现约瑟夫环。输入输入多组测试数据,每组测试数据格式如下:人数n(>0) 开始位置k(>0) 报数m(>0)...
2018-04-02 17:15:32
670
原创 函数传二维数组
现在主函数定义了一个二维数组x[10][10],需要传给一个子函数进行其他操作int find(x[][10])//传二维数组时第二个要写出相应的大小{ ..........}int main(){ int x[10][10]; find(x);//传首地址 return 0;}emmm,这个是我自己在做题的过程中总结的,语言不够严谨...
2018-04-02 17:06:05
449
原创 C++Sort函数学习
Sort函数有三个参数:(1)第一个是要排序的数组的起始地址。(2)第二个是结束的地址(最后一位要排序的地址)(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。1.从小到大#include<bits/stdc++.h>using namespace std;int main(){ int i; int a[5]={5,7...
2018-03-25 19:45:02
154
原创 棋盘覆盖(动态分配,递归)
棋盘覆盖问题是指在一个n*n(n=2k,k>0)的棋盘上给定任意一个特殊点,用L型条块覆盖棋盘中除特殊点外的所有方格。每个L型条块可以任意旋转,恰好覆盖3 个方格。如n=4的棋盘覆盖方案如图(a)所示,其中黑色点表示特殊点,L型覆盖用不同颜色区分。 棋盘覆盖的解决方案是分治法。 (1)将2k*2k棋盘均匀分成4个子棋盘,分别为左上角子棋盘、右上角子棋盘、左下角子棋盘、右下...
2018-03-22 19:51:01
1072
原创 N皇后(递归算法)
问题描述:N皇后问题是一个以国际象棋为背景的问题:如何能够在 n*n 的国际象棋棋盘上放置N个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。输入n,有多少种摆放的情况?此题是我第一次接触递归算法的题目第一行输入测试次数t;输入测试的行数,输出总数1 1 2 0 3 0 4 2 5...
2018-03-15 17:56:16
778
原创 最优装载问题(二进制求法)
题目描述 N个集装箱要装上1艘载重量为c的轮船,其中第i个集装箱的重量为wi。最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。可以使用贪心算法、穷举法等。输入 第一行输入N和C,表示集装箱数量和轮船的载重,第二行输入N个集装箱的重量。输出 约定长为N的01字符串(1:表示装)以字典序最大的那个为符合要求的装载方案。样例输入3 50 40 10 40样例输出110...
2018-03-15 17:12:58
390
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人