Êý¾Ý½á¹¹¿Î³ÌÉè¼Æ±¨¸æ(ÍêÕû°æ±¾)-

Êý¾Ý½á¹¹¿Î³ÌÉè¼Æ±¨¸æ(ÍêÕû°æ±¾)-

int i;

for(i=0;inextarc) indegree[p->adjvex]++; }

return 0; }

//ÍØÆËÅÅÐòͬʱÇó³ö¸÷»î¶¯µÄ×îÔç·¢Éúʱ¼ä

int ToPoOrder(ALGraph &G,Stack &T) {

int count=0;

int i,j,k; Stack S1; ArcNode *p;

int indegree[MAX_V_NUM]; InitStack(T); InitStack(S1);

FindInDegree(G,indegree); for(i=0;i

for(i=0;i

while(!StackEmpty(S1)) { Pop(S1,j); Push(T,j); count++; for(p=G.vertices[j].firstarc;p;p=p->nextarc) { k=p->adjvex; if(--indegree[k]==0) Push(S1,k);

17 / 33

Êý¾Ý½á¹¹¿Î³ÌÉè¼Æ±¨¸æ(ÍêÕû°æ±¾)-

if(ve[j]+(p->info)>ve[k]) ve[k]=ve[j]+(p->info); } }

// for(i=0;i

//¼ÆËã¸÷¶¥µãµÄ×î³Ù·¢Éúʱ¼ä¼°½øÐÐÊä³ö int CriticalPath(ALGraph &G) {

int vl[MAX_V_NUM]; int dut;

int i,j,k,ee,el; ArcNode *p; // char tag;

if(!ToPoOrder(G,T)) return 0;

cout<<\Íê³ÉÕûÏ³ÌÖÁÉÙÐèÒªµÄʱ¼äÊÇ£º\.vnum-1]<nextarc) { k=p->adjvex; dut=(p->info); if(vl[k]-dut

// for(i=0;i

cout<<\Ó°Ï칤³Ì½ø¶ÈµÄ¹Ø¼ü»î¶¯ÊÇ:\ for(j=0;jnextarc) { k=p->adjvex;

18 / 33

Êý¾Ý½á¹¹¿Î³ÌÉè¼Æ±¨¸æ(ÍêÕû°æ±¾)-

dut=(p->info); ee=ve[j]; el=vl[k]-dut;

//cout<<\endl; if(ee==el) //tag=(ee=el)?'*':''; cout<name<

int main() {

ALGraph G; int i,j,Hnum; ArcNode *p,*q;

// int indegree[MAX_V_NUM]; //ALGraph G;

cout<<\ÇëÊäÈëͼÖеĶ¥µãÊýºÍ»¡ÊýÒÔ¼°Í¼µÄ±êÖ¾ºÍ»¡µÄ±êÖ¾£º\

cin>>G.vnum; cin>>G.arcnum; cin>>G.kind; cin>>G.kind1;

cout<<\ÇëÍê³É¸ÃÁÚ½Ó±íµÄÊäÈ룺\ for(i=0;i

{ cout<<\ÇëÊäÈë¸Ã¶¥µãµÄÐÅÏ¢\ cin>>G.vertices[i].data; cout<<\ÇëÊäÈëÓë\.vertices[i].data<<\ºÅ¶¥µãÏàÁڵĻ¡µÄÊýÄ¿:\ cin>>Hnum; if(Hnum==0) { G.vertices[i].firstarc=0; } else {

19 / 33

Êý¾Ý½á¹¹¿Î³ÌÉè¼Æ±¨¸æ(ÍêÕû°æ±¾)-

cout<<\ÇëÒÀ´Î´ÎÊäÈ뻡µÄÐÅÏ¢£¨°üÀ¨¶¥µãµÄλÖü°È¨ÖµºÍ¸Ã±ßµÄÃû³Æ£©\ p=(ArcNode *)malloc(sizeof(ArcNode)); G.vertices[i].firstarc=p; p->nextarc=0; cin>>p->adjvex; cin>>p->info; cin>>p->name; for(j=0;j>q->adjvex; cin>>q->info; cin>>q->name; q->nextarc=p->nextarc; p->nextarc=q; } } }

//ToPoOrder(G,T); //CriticalPath(G); ////////test//////////

/* for(i=0;inextarc) { cout<adjvex].data<

// FindInDegree(G,indegree); //for(i=0;i

// cout<<\ CriticalPath(G);

////////////test end///////////

return 0; }

20 / 33

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)