24СʱÈÈÃŰæ¿éÅÅÐаñ    

Znn3bq.jpeg
²é¿´: 342  |  »Ø¸´: 3
µ±Ç°Ö÷ÌâÒѾ­´æµµ¡£

yaojinling

½ð³æ (ÕýʽдÊÖ)

[½»Á÷] Êý¾Ý½á¹¹Öйؼü·¾¶Ëã·¨µÄʵÏÖÓëÓ¦ÓÃ

Õª  Òª  ½éÉÜÇ󹨼ü·¾­µÄËã·¨£¬¶ÔÓÚ¸ø³öµÄʼþ½áµãÍøÂ磬ҪÇóÇó³ö´ÓÆðµãµ½ÖÕµãµÄËùÓз¾¶£¬¾­·ÖÎö¡¢±È½ÏºóÕÒ³ö³¤¶Á×î´óµÄ·¾¶£¬´Ó¶øµÃ³öÇ󹨼ü·¾¶µÄËã·¨£¬²¢¸ø³ö¼ÆËã»úÉÏ»úʵÏÖµÄÔ´³ÌÐò¡£
¹Ø¼ü´Ê  ¹Ø¼ü·¾¶ ×îÉÙʱ¼ä
1£ºÒýÑÔ
ͨ³£°Ñ¼Æ»®¡¢Ê©¹¤¹ý³Ì¡¢Éú²úÁ÷³Ì¡¢³ÌÐòÁ÷³ÌµÄ¶¼µ±³ÉÒ»¸ö¹¤³Ì¡£³ýÁ˺ÜСµÄ¹¤³ÌÍâ¡¢Ò»°ã¶¼°Ñ¹¤³Ì·ÖΪÈô¸É¸ö½Ð×ö¡°»î¶¯¡±µÄ×Ó¹¤³Ì¡£Íê³ÉÁËÕâЩ¡°»î¶¯¡±µÄ×Ó¹¤³Ì£¬Õâ¸ö¹¤³Ì¾Í¿ÉÒÔÍê³ÉÁË¡£
ͨ³£ÎÒÃÇÓÃÓÐÏòͼ±íʾһ¸ö¹¤³Ì¡£ÔÚÕâÖÖÓÐÏòͼÖУ¬Óö¥µã±íʾ»î¶¯£¬ÓÃÓÐÏò±ß
±íʾ»î¶¯Vi±ØÐëÏÈÓڻVj½øÐС£Èç¹ûÔÚÎÞÓÐÏò»·µÄ´øÈ¨ÓÐÏòͼÖÐÓÃÓÐÏò±ß±íʾһ¸ö¹¤³ÌÖеĸ÷Ïî»î¶¯£¨ACTIVITY£©£¬ÓÃÓÐÏò±ßÉϵÄȨֵ±íʾ»î¶¯µÄ³ÖÐøÊ±¼ä£¨DURATION£©£¬Óö¥µã±íʾʼþ£¨EVENT£©£¬ÔòÕâÖÖµÄÓÐÏòͼ½Ð×öÓñ߱íʾ»î¶¯µÄÍøÂ磬¼ò³ÆAOE£¨active on edges£©ÍøÂç¡£
    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ÏîÄ¿µÄ¿ªÊ¼µ½½áÊøÔÚͼÖеĽڵãÊäÈë\n";
        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=0;
        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                 vl=totaltime;
        for(i=projectnumber-2;i>=0;i--)
        {
                j=topologystack;
                p=Graphicmap[j].link ;
                while(p)
                {
                        k=p->adjvex ;
                        if((vl[k]-p->dut )                                 vl[j]=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 ]
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

yaojinling

½ð³æ (ÕýʽдÊÖ)

´ó¼Ò·ÖÏíÒ»ÏÂ
2Â¥2005-11-18 18:24:25
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

yaojinling01

0.5

§Ý§Ý
3Â¥2005-11-18 18:25:24
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

imrking

ÈÙÓþ°æÖ÷ (ÖøÃûдÊÖ)

ÏÂÓêÁË£¬±ðÍüÁË´òÉ¡£¬ÊªÉíÊÇС£¬Áܲ¡¾ÍÂé·³À²¡«¡«¡«£º£©
4Â¥2005-11-18 19:48:41
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ yaojinling µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 08¹¤¿ÆÇóµ÷¼Á290·Ö +6 1314Åõ»¨ 2026-04-02 9/450 2026-04-08 22:51 by may_ÐÂÓî
[¿¼ÑÐ] 070300»¯Ñ§279Çóµ÷¼Á +13 ¹þ¹þ¹þ^_^ 2026-04-08 13/650 2026-04-08 22:29 by belle15
[¿¼ÑÐ] Ò»Ö¾Ô¸Éî´ó085601²ÄÁϹ¤³Ìרҵ£¨×¨Ë¶£©300·Ö¿ÉÒÔµ÷¼ÁÈ¥ÄÄ +16 10160315 2026-04-02 16/800 2026-04-08 19:45 by syjjj0321
[¿¼ÑÐ] Ò»Ö¾Ô¸211£¬»¯Ñ§Ñ§Ë¶£¬310·Ö£¬±¾¿ÆÖصãË«·Ç£¬Çóµ÷¼Á +20 ŬÁ¦·Ü¶·112 2026-04-07 21/1050 2026-04-08 14:54 by screening
[¿¼ÑÐ] 284Çóµ÷¼Á +17 èó@@ 2026-04-06 17/850 2026-04-08 11:35 by 1shin_ichi
[¿¼ÑÐ] 326·Ö£¬Ò»Ö¾Ô¸»¦9£¬ÇóÉúÎïѧµ÷¼Á +4 Áõīī 2026-04-05 4/200 2026-04-08 06:22 by lijunpoly
[¿¼ÑÐ] 344Çóµ÷¼Á +11 κ×Óper 2026-04-07 11/550 2026-04-07 23:01 by JourneyLucky
[¿¼ÑÐ] 295Çóµ÷¼Á +18 xndjjj 2026-04-04 19/950 2026-04-07 11:02 by wangjy2002
[¿¼ÑÐ] Çóµ÷¼Á +7 ÕÅ.1 2026-04-05 7/350 2026-04-05 20:40 by à£à£à£0119
[¿¼ÑÐ] 277Çóµ÷¼Á +5 ¿¼Ñе÷¼Álxh 2026-04-05 5/250 2026-04-05 19:03 by chy09050039
[¿¼ÑÐ] 296Çóµ÷¼Á +3 Íô£¡£¿£¡ 2026-04-05 5/250 2026-04-05 17:38 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 341Çóµ÷¼Á +3 Âå¶àÂÞ 2026-04-02 4/200 2026-04-04 21:36 by ÖÇÄÜÖÇ»Û
[¿¼ÑÐ] 338Çóµ÷¼Á +7 êɹ¦? 2026-04-03 7/350 2026-04-04 20:37 by À¶ÔÆË¼Óê
[¿¼ÑÐ] Çóµ÷¼Á +6 Ë·Ë·»° 2026-04-02 7/350 2026-04-04 19:16 by À¶ÔÆË¼Óê
[¿¼ÑÐ] ¿¼Ñе÷¼Á +5 СsunÒªºÃÔË 2026-04-03 5/250 2026-04-03 21:43 by à£à£à£0119
[¿¼ÑÐ] ¿¼Ñе÷¼Á +8 ²»°®ºÈÒûÁÏ 2026-04-03 8/400 2026-04-03 16:40 by Mistake-J
[¿¼ÑÐ] 338Çóµ÷¼Á +4 zzz£¬£¬r 2026-04-03 4/200 2026-04-03 16:39 by lijunpoly
[¿¼ÑÐ] 326Çóµ÷¼Á +10 áÌáÌ×Ð 2026-04-02 10/500 2026-04-03 09:08 by ÅÁ¶ûÂíÀ­ÌØ
[¿¼ÑÐ] 312Çóµ÷¼Á +4 ÉÞÔÂÉ« 2026-04-02 5/250 2026-04-03 08:21 by fangshan711
[¿¼ÑÐ] Ò»Ö¾Ô¸9³õÊÔ366 ±¾Ë«·ÇÇóµ÷¼Á +4 ÔËÆøÀ´µÃÈôÓÐËÆÎ 2026-04-02 4/200 2026-04-02 09:56 by guanxin1001
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û