| ²é¿´: 342 | »Ø¸´: 3 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
yaojinling½ð³æ (ÕýʽдÊÖ)
|
[½»Á÷]
Êý¾Ý½á¹¹Öйؼü·¾¶Ëã·¨µÄʵÏÖÓëÓ¦ÓÃ
|
||
|
Õª Òª ½éÉÜÇ󹨼ü·¾µÄËã·¨£¬¶ÔÓÚ¸ø³öµÄʼþ½áµãÍøÂ磬ҪÇóÇó³ö´ÓÆðµãµ½ÖÕµãµÄËùÓз¾¶£¬¾·ÖÎö¡¢±È½ÏºóÕÒ³ö³¤¶Á×î´óµÄ·¾¶£¬´Ó¶øµÃ³öÇ󹨼ü·¾¶µÄËã·¨£¬²¢¸ø³ö¼ÆËã»úÉÏ»úʵÏÖµÄÔ´³ÌÐò¡£ ¹Ø¼ü´Ê ¹Ø¼ü·¾¶ ×îÉÙʱ¼ä 1£ºÒýÑÔ Í¨³£°Ñ¼Æ»®¡¢Ê©¹¤¹ý³Ì¡¢Éú²úÁ÷³Ì¡¢³ÌÐòÁ÷³ÌµÄ¶¼µ±³ÉÒ»¸ö¹¤³Ì¡£³ýÁ˺ÜСµÄ¹¤³ÌÍâ¡¢Ò»°ã¶¼°Ñ¹¤³Ì·ÖΪÈô¸É¸ö½Ð×ö¡°»î¶¯¡±µÄ×Ó¹¤³Ì¡£Íê³ÉÁËÕâЩ¡°»î¶¯¡±µÄ×Ó¹¤³Ì£¬Õâ¸ö¹¤³Ì¾Í¿ÉÒÔÍê³ÉÁË¡£ ͨ³£ÎÒÃÇÓÃÓÐÏòͼ±íʾһ¸ö¹¤³Ì¡£ÔÚÕâÖÖÓÐÏòͼÖУ¬Óö¥µã±íʾ»î¶¯£¬ÓÃÓÐÏò±ß AOEÍøÂçÔÚijЩ¹¤³Ì¹ÀËã·½Ãæ·Ç³£ÓÐÓá£Ëû¿ÉÒÔʹÈËÃÇÁ˽⣺ £¨1£©£ºÑо¿Ä³¸ö¹¤³ÌÖÁÉÙÐèÒª¶àÉÙʱ¼ä£¿ £¨2£©£ºÄÇЩ»î¶¯ÊÇÓ°Ï칤³Ì½ø¶ÈµÄ¹Ø¼ü£¿ ÔÚAOEÍøÂçÖУ¬ÓÐЩ»î¶¯¿ÉÒÔ²¢ÐеĽøÐС£´ÓÔ´µãµ½¸÷¸ö¶¥µã£¬ÒÔÖÁ´ÓÔ´µãµ½»ãµãµÄÓÐÏò·¾¶¿ÉÄܲ»Ö¹Ò»Ìõ¡£ÕâЩ·¾¶µÄ³¤¶ÈÒ²¿ÉÄܲ»Í¬¡£Íê³É²»Í¬Â·¾¶µÄ»î¶¯ËùÐèµÄʱ¼äËäÈ»²»Í¬£¬µ«Ö»Óи÷Ìõ·¾¶ÉÏËùÓл¶¼Íê³ÉÁË£¬Õâ¸ö¹¤³Ì²ÅËãÍê³É¡£Òò´Ë£¬Íê³ÉÕû¸ö¹¤³ÌËùÐèµÄʱ¼äÈ¡¾öÓÚ´ÓÔ´µãµ½»ãµãµÄ×·¾¶³¤¶È£¬¼´ÔÚÕâÌõ·¾¶ÉÏËùÓлµÄ³ÖÐøÊ±¼äÖ®ºÍ¡£ÕâÌõ·¾¶³¤¶È¾Í½Ð×ö¹Ø¼ü·¾¶£¨critical path£©¡£ 2£ºÉè¼Æ²½Ö裺 ¡¡¡¡¡¡¡¡1: ÒÔijһ¹¤³ÌΪÀ¶±¾£¬²ÉÓÃͼµÄ½á¹¹±íʾʵ¼ÊµÄ¹¤³Ì¼Æ»®µÄʱ¼ä¡£ ¡¡¡¡¡¡¡¡2: µ÷²éÒÔ·ÖÎöºÍÔ¤²âÕâ¸ö¹¤³Ì¼Æ»®¸ö½×¶ÎµÄʱ¼ä¡£ ¡¡¡¡¡¡ 3: Óõ÷²éµÄ½á¹û½¨Á¢£Á£ÏEÍø£¨Activity On Edge Network£©£¬¼´±ß±íʾ»î¶¯µÄÍøÂ磬²¢ÓÃͼµÄÐÎʽ±íʾ¡£ 4: ÓÃͼÀ´´æ´¢ÕâЩÐÅÏ¢¡£ 5: ÓÃCreateGraphic();º¯Êý½¨Á¢AOEͼ¡£ 6: ÓÃSearchMapPath();º¯ÊýÇó³ö×î´ó·¾¶£¬²¢´òÓ¡³ö¹Ø¼ü·¾¶¡£ 7:±àд´úÂë 8: ²âÊÔ 3: Éè¼Æ´úÂ룺 #include #include #include #include //#define PROJECTNUMBER 9//10 //#define PLANNUMBER 11//13 typedef struct node { int adjvex; int dut; struct node *next; }edgenode; typedef struct { int projectname; int id; edgenode *link; }vexnode; //vexnode Graphicmap[PROJECTNUMBER]; void CreateGraphic(vexnode* Graphicmap,int projectnumber,int activenumber) { int begin,end,duttem; edgenode *p; for(int i=0;i Graphicmap.projectname=i; Graphicmap.id =0; Graphicmap.link =NULL; } printf("ijÏîÄ¿µÄ¿ªÊ¼µ½½áÊøÔÚͼÖеĽڵãÊäÈë ;printf("È磺3,4,9 »Ø³µ±íʾµÚÈý½Úµãµ½µÚËĽڵãÖ®¼äµÄ»î¶¯ÓÃÁË9¸öµ¥Î»Ê±¼ä\n" ;for(int k=0;k scanf("%d,%d,%d",&begin,&end,&duttem); p=(edgenode*)malloc(sizeof(edgenode)); p->adjvex =end-1; p->dut =duttem; Graphicmap[end-1].id ++; p->next =Graphicmap[begin-1].link ; Graphicmap[begin-1].link =p; } } int SearchMapPath(vexnode* Graphicmap,int projectnumber,int activenumber,int& totaltime) { int i,j,k,m=0; int front=-1,rear=-1; int* topologystack=(int*)malloc(projectnumber*sizeof(int));//ÓÃÀ´±£´æÍØÆËÅÅÁÐ int* vl=(int*)malloc(projectnumber*sizeof(int));//ÓÃÀ´±íʾÔÚ²»ÍƳÙÕû¸ö¹¤³ÌµÄǰÌáÏ£¬VJÔÊÐí×î³Ù·¢ÉúµÄʱ¼ä int* ve=(int*)malloc(projectnumber*sizeof(int));//ÓÃÀ´±íʾVj×îÔç·¢Éúʱ¼ä int* l=(int*)malloc(activenumber*sizeof(int));//ÓÃÀ´±íʾ»î¶¯Ai×î³ÙÍê³É¿ªÊ¼Ê±¼ä int* e=(int*)malloc(activenumber*sizeof(int));//±íʾ»î¶¯×îÔ翪ʼʱ¼ä edgenode *p; totaltime=0; for(i=0;i for(i=0;i if(Graphicmap.id==0) { topologystack[++rear]=i; m++; } } while(front!=rear) { front++; j=topologystack[front]; m++; p=Graphicmap[j].link ; while(p) { k=p->adjvex ; Graphicmap[k].id --; if(ve[j]+p->dut >ve[k]) ve[k]=ve[j]+p->dut ; if(Graphicmap[k].id ==0) topologystack[++rear]=k; p=p->next ; } } if(m printf("\n±¾³ÌÐòËù½¨Á¢µÄͼÓлØÂ·²»¿É¼ÆËã³ö¹Ø¼ü·¾¶\n" ;printf("½«Í˳ö±¾³ÌÐò\n" ;return 0; } totaltime=ve[projectnumber-1]; for(i=0;i for(i=projectnumber-2;i>=0;i--) { j=topologystack; p=Graphicmap[j].link ; while(p) { k=p->adjvex ; if((vl[k]-p->dut ) p=p->next ; } } i=0; printf("| Æðµã | ÖÕµã | ×îÔ翪ʼʱ¼ä | ×î³ÙÍê³Éʱ¼ä | ²îÖµ | ±¸×¢ |\n" ;for(j=0;j p=Graphicmap[j].link; while(p) { k=p->adjvex ; e[++i]=ve[j]; l=vl[k]-p->dut; printf("| %4d | %4d | %4d | %4d | %4d |",Graphicmap[j].projectname +1,Graphicmap[k].projectname +1,e,l,l-e); if(l==e) printf(" ¹Ø¼ü»î¶¯ |" ;printf("\n" ;p=p->next ; } } return 1; } void seekkeyroot() { int projectnumber,activenumber,totaltime=0; system("cls" ;printf("ÇëÊäÈëÕâ¸ö¹¤³ÌµÄ»¯³ÉͼÐεĽڵãÊý:" ;scanf("%d",&projectnumber); printf("ÇëÊäÈëÕâ¸ö¹¤³ÌµÄ»î¶¯¸öÊý:" ;scanf("%d",&activenumber); vexnode* Graphicmap=(vexnode*)malloc(projectnumber*sizeof(vexnode)); CreateGraphic(Graphicmap,projectnumber,activenumber); SearchMapPath(Graphicmap,projectnumber,activenumber,totaltime); printf("Õû¸ö¹¤³ÌËùÓõÄ×î¶Ìʱ¼äΪ£º%d¸öµ¥Î»Ê±¼ä\n",totaltime); system("pause" ;} int main() { char ch; for(; ![]() { do { system("cls" ;printf("| »¶Ó½øÈëÇ󹨼ü·¾¶Ëã·¨³ÌÐò |" ;for(int i=0;i<80;i++)printf("*" ;printf("%s","(S)tart¿ªÊ¼ÊäÈ빤³ÌµÄ½ÚµãÊý¾Ý²¢Çó³ö¹Ø¼ü·¾¶\n" ;printf("%s","(E)xitÍ˳ö\n" ;printf("%s","ÇëÊäÈëÑ¡Ôñ:" ;scanf("%c",&ch); ch=toupper(ch); , ;}while(ch!='S'&&ch!='E'); switch(ch) { case'S': seekkeyroot(); break; case'E': return 1; } } } 4: ×ܽ᣺ ÖÁ´Ë£¬È«²¿µÄÉè¼Æ¹ý³ÌÍê±Ï£¬ÉÏÃæËùÓдúÂëÒѾÔÚVC6.0+Win2000ƽ̨ϵ÷ÊԳɹ¦¡£´ÓÉÏÃæµÄ·ÖÎö¿ÉÒÔ¿´³ö ,Éè¼Æ½á¹ûÓëÔ¤²âµÄÏà·ûºÏ. ¹Ø¼ü·¾¶ÔÚ¾ßÌåµÄ¹¤³ÌÖÐÓÐ×ÅÖØÒªµÄ×÷Ó㬵±Ò»¸öAOEÍøÂçÖеĹؼü·¾¶Ö»ÓÐÒ»Ìõʱ£¬¼ÓËٹؼü·¾¶ÉϵÄÈÎÒ»¹Ø¼ü»î¶¯£¬Äܹ»¼ÓËÙÕû¸ö¹¤³ÌµÄÍê³É¡£µ«µ±Ò»¸öAOEÍøÂçÖеĹؼü·¾¶²»Ö¹Ò»Ìõʱ£¬¼ÓËÙÈÎÒ»¹Ø¼ü»î¶¯²»Ò»¶¨Äܹ»¼ÓËÙÕû¸ö¹¤³ÌµÄÍê³É¡£ Èç·½°¸1Óë·½°¸2ÔÚ¸Ä±ä¹Ø¼ü·¾¶Ê±Õû¸ö¹¤³ÌµÄ½ø¶ÈûÓиı䡣 ²Î ¿¼ ×Ê ÁÏ [1]Ì·ºÆÇ¿±àÖø. C³ÌÐòÉè¼Æ£¨µÚ¶þ°æ£©.±±¾©£ºÇ廪´óѧ³ö°æÉ磬2000 [2]ÑÏεÃô£¬ÎâΰÃñ±àÖø.Êý¾Ý½á¹¹.±±¾©£ºÇ廪´óѧ³ö°æÉ磬2001 [3]ÁõÕýÁÖ±àÖø.ÃæÏò¶ÔÏó³ÌÐòÉè¼Æ.Î人£º»ª¶«¿Æ¼¼´óѧ³ö°æÉ磬2002 [4]ÒË ³¿±àÖø.Visual C++5.0ʵÓÃÅàѵ½Ì³Ì.±±¾©£ºµç×Ó¹¤Òµ³ö°æÉ磬1998 [ Last edited by sdlwwxb on 2005-12-16 at 17:58 ] |
» ²ÂÄãϲ»¶
¶þ´Îµ÷¼ÁÇóÀÏʦÊÕÁô
ÒѾÓÐ3È˻ظ´
349ѧ¿Æ»¯Ñ§045106Çóµ÷¼Á£¬»¯Ñ§Àà¶¼¿ÉÒÔ
ÒѾÓÐ5È˻ظ´
Ò»Ö¾Ô¸0807 ÊýÒ»Ó¢Ò» 313 ÓÐûÓжþÂÖµ÷¼Á
ÒѾÓÐ6È˻ظ´
Çóµ÷¼Á£¬262»úеר˶
ÒѾÓÐ5È˻ظ´
286Çóµ÷¼Á
ÒѾÓÐ15È˻ظ´
0860004 Çóµ÷¼Á 309·Ö
ÒѾÓÐ3È˻ظ´
²ÄÁÏÀà284µ÷¼Á
ÒѾÓÐ20È˻ظ´
µ÷¼Á
ÒѾÓÐ11È˻ظ´
¿¼Ñе÷¼Á-²ÄÁÏÀà-284
ÒѾÓÐ13È˻ظ´
¸´ÊÔµ÷¼Á£¬Ò»Ö¾Ô¸Ö£ÖÝ´óѧ²ÄÁÏÓ뻯¹¤289·Ö
ÒѾÓÐ13È˻ظ´
yaojinling
½ð³æ (ÕýʽдÊÖ)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ½ð±Ò: 896.4
- É¢½ð: 4
- Ìû×Ó: 718
- ÔÚÏß: 10.6Сʱ
- ³æºÅ: 99546
- ×¢²á: 2005-11-11
- ÐÔ±ð: GG
- רҵ: ¼ÆËã»úÈí¼þ
2Â¥2005-11-18 18:24:25
3Â¥2005-11-18 18:25:24
imrking
ÈÙÓþ°æÖ÷ (ÖøÃûдÊÖ)
- Ó¦Öú: 17 (СѧÉú)
- ¹ó±ö: 9.05
- ½ð±Ò: 4827.8
- É¢½ð: 15
- ºì»¨: 1
- Ìû×Ó: 2468
- ÔÚÏß: 125.8Сʱ
- ³æºÅ: 56287
- ×¢²á: 2005-01-06
- ÐÔ±ð: GG
- רҵ: ¼ÆËã»úÈí¼þ
- ¹ÜϽ: ÎÞ»ú·Ç½ðÊô

4Â¥2005-11-18 19:48:41













;
»Ø¸´´ËÂ¥