摘要:
View Code #include<iostream>using namespace std;#define max 100 float d[max];//m台机器的空闲时间存储在d[m]中int s[max][max];//把第j个作业放到第i太机器上去运行 typedef struct homework{//数据结构来存储作业信息 int ID; float time; }hw;typedef struct m{//快结构体的因为是把在改机器的作业存起来 int number;//记录存储在改机器的作业个数 int ma[max]; float time... 阅读全文
摘要:
View Code #include<iostream>using namespace std;#define maxn 100int huffTreeN;//树中的节点个数初始化为nint i1=1,i2=2;struct element{//存储字符 double weight;//字符出现的概率为实数,次程序为了简便,不计算其概率,而直接用其出现的次数代替 int lchild;//该节点的左孩子在huffTree[]数组中的下标 int rchild;//该节点的右孩子在huffTree[]数组中的下标 int parent; //该节点的双亲节点在hu... 阅读全文
摘要:
Prim算法设G=(V,E)是连通图,V={1,2,......,n}构造G的最小生成树的Prim算法的基本思想是:首先置S={1},然后,只要S是V的真子集,就坐如下的贪心选择:选取满足条件i属于S,j属于V-S,且c[i][j]最小边,并将顶点j添加到S中。这个过程一直进行到S=V时为止View Code #include<iostream>using namespace std;#define max 100float c[max][max];//存放i,j的权值float lowcost[max];//lowcost[v]存放未放入生成树的一个顶点v到生成树所有顶点的最短边 阅读全文
摘要:
Kruskal算法1.首先将G的n个顶点看成n个孤立的连通分支,将所有的边按权从小到大排序e1,e2,e3...em2.从第一条边开始,依边权递增的顺序查看每一条边,并按下述方法连接两个不同的两同分支3.当查看到第K条边ek=(v,w)时,若v,w分别在两个不同而连通分支T1和T2中,用边(v,w)将T1,T2连接成一个连通分支,然后继续查看k+1条边 若v和w在当前的同一个连通分支中,就直接查看第k+1条边(既构成圈,就放弃ek) 这个过程一直进行到之剩下一个连通分支时为止。此时,这个连通分支就是G的一颗最小生成树了View Code #include<iostream>usin 阅读全文