为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

有向无环图的关键路径

2017-12-06 10页 doc 26KB 16阅读

用户头像

is_212655

暂无简介

举报
有向无环图的关键路径有向无环图的关键路径 ,,,,,,,,,?,,?,,.txt51,,,,,,,2,,,,,,,,,,,,,,,,,,,,,?,,Σ,,,,,,?,,,,,,,,#,,,,,,,,,, ,??,,?,,#include #include #include using namespace std; #define MAX_VERTEX_NUM 20 typedef struct ArcNode{ int adjvex; //,û,,,?,,?,,,,λ,, struct ArcNode *nextarc; //?,,,,?,,,...
有向无环图的关键路径
有向无环图的关键路径 ,,,,,,,,,?,,?,,.txt51,,,,,,,2,,,,,,,,,,,,,,,,,,,,,?,,Σ,,,,,,?,,,,,,,,#,,,,,,,,,, ,??,,?,,#include #include #include using namespace std; #define MAX_VERTEX_NUM 20 typedef struct ArcNode{ int adjvex; //,û,,,?,,?,,,,λ,, struct ArcNode *nextarc; //?,,,,?,,,?,, int info; //,,,,,,,? //string info; //,û,,,,,,,}ArcNode; typedef struct VNode{ int data; //,,,,,,, ArcNode *firstarc; //?,,,?,,,8,,ö,,,?,,,?,, }VNode,AdjList[MAX_VERTEX_NUM]; typedef struct{ AdjList vertices; //,,, int venum,arcnum; //,,?,,,,,,,,,,,, int kind; //,,,,,,,,?}ALGraph; int InDegree[MAX_VERTEX_NUM]={0}; //,,,,,,,,,,,,int CreateUG(ALGraph& G){ cout<<",,,,,,,,ж,,,,,,,,,,:"; cin>>G.venum>>G.arcnum; int i; for( i=0; i>v1>>v2; ArcNode* current=G.vertices[v1-1].firstarc; ArcNode* p=G.vertices[v1-1].firstarc; if(current==NULL){ G.vertices[v1-1].firstarc=new ArcNode; G.vertices[v1-1].firstarc->adjvex=v2-1; G.vertices[v1-1].firstarc->nextarc=NULL; } else{ while(current!=NULL){ p=current; current=current->nextarc; } current=new ArcNode; current->adjvex=v2-1; current->nextarc=NULL; p->nextarc=current; } current=G.vertices[v2-1].firstarc; p=G.vertices[v2-1].firstarc; if(current==NULL){ G.vertices[v2-1].firstarc=new ArcNode; G.vertices[v2-1].firstarc->adjvex=v1-1; G.vertices[v2-1].firstarc->nextarc=NULL; } else{ while(current!=NULL){ p=current; current=current->nextarc; } current=new ArcNode; current->adjvex=v1-1; current->nextarc=NULL; p->nextarc=current; } } return 1; } int CreateDG(ALGraph& G){ cout<<",,,,,,,,ж,,,,,,,,,,:";cin>>G.venum>>G.arcnum; int i; for( i=0; i>v1>>v2>>info; ArcNode* current=G.vertices[v1-1].firstarc; ArcNode* p=G.vertices[v1-1].firstarc; InDegree[v2-1]++; if(current==NULL){ G.vertices[v1-1].firstarc=new ArcNode; G.vertices[v1-1].firstarc->adjvex=v2-1; G.vertices[v1-1].firstarc->nextarc=NULL; G.vertices[v1-1].firstarc->info=info; } else{ while(current!=NULL){ p=current; current=current->nextarc; } current=new ArcNode; current->adjvex=v2-1; current->nextarc=NULL; current->info=info; p->nextarc=current; } } return 1; } int CreateDG1(ALGraph& G){ cout<<",,,,,,,,ж,,,,,,,,,,:";cin>>G.venum>>G.arcnum; int i; for( i=0; i>v1>>v2; ArcNode* current=G.vertices[v2-1].firstarc; ArcNode* p=G.vertices[v2-1].firstarc; if(current==NULL){ G.vertices[v2-1].firstarc=new ArcNode; G.vertices[v2-1].firstarc->adjvex=v1-1; G.vertices[v2-1].firstarc->nextarc=NULL; } else{ while(current!=NULL){ p=current; current=current->nextarc; } current=new ArcNode; current->adjvex=v1-1; current->nextarc=NULL; p->nextarc=current; } } return 1; } int CreateGraph(ALGraph& G){ cout<<",,,,,,,,,,,,,,?:"; cin>>G.kind; switch(G.kind){ case 0:return CreateUG(G); //,,,,,,,,, case 1:return CreateDG(G); //,,,,,,,,, case 2:return CreateDG1(G); //,,,,,,,,,, default:return 0; } } int ve[MAX_VERTEX_NUM]={0}; bool TopologicalSort(ALGraph &G, stack &T){ stack S; int i; for( i=0; inextarc){ int w=p->adjvex; InDegree[w]--; if(InDegree[w]==0){ S.push(w); } if(ve[i]+p->info > ve[w]) ve[w]=ve[i]+p->info; } } if(count T; if(!TopologicalSort(G,T)) return ; int v1[MAX_VERTEX_NUM]; for( k=0; knextarc){ k=p->adjvex; dut=p->info; if(v1[k]-dutnextarc){ k=q->adjvex; dut=q->info; if(ve[j]==v1[k]-dut){ cout<<",,,?,,:"<adjvex<<" "; current1=current1->nextarc; } cout<nextarc; delete current1; current1=p; } } } return 1; }
/
本文档为【有向无环图的关键路径】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索