¡¶µÚ7Õ ͼ½á¹¹¡·Ï°Ìâ½â´ð

µÚ7Õ ͼ½á¹¹

}

cout<<\°´ÁÚ½Ó±íÏÔʾ½á¹ûΪ£º\\n\for(i=0;itailvex<<' '<headvex; if(G.kind==DN)cout<<' '<weight; cout<<\ p=p->tlink; } cout<

cout<<\°´ÄæÁÚ½Ó±íÏÔʾ½á¹ûΪ£º\\n\for(i=0;itailvex<<' '<headvex; if(G.kind==DN)cout<<' '<weight; cout<<\ p=p->hlink; } cout<

(5)³ÌÐòÑÝʾÖ÷³ÌÐò´úÂë

³ÌÐòÖзֱð½¨Á¢Ò»¸öÓÐÏòͼG1ºÍÒ»¸öÓÐÏòÍøG2µÄÊ®×ÖÁ´±í£¬²¢°´ÁÚ½Ó±íºÍÄæÁÚ½Ó±íÁ½ÖÖÐÎʽÏÔʾËù½¨Á¢µÄµÄÊ®×ÖÁ´±íµÄÄÚÈÝ¡£

void main()

{ OLGraph G1,G2; GKind gk1=DG,gk2=DN; cout<<\½¨Á¢Ò»¸öÓÐÏòͼµÄÊ®×ÖÁ´±íG1:\\n\ CreateGraph_OLG(G1,gk1); cout<<\½¨Á¢Ò»¸öÓÐÏòÍøµÄÊ®×ÖÁ´±íG2:\\n\ CreateGraph_OLG(G2,gk2); cout<<\ÓÐÏòͼG1µÄÐÅϢΪ:\\n\ DisplyOLG(G1); cout<<\ÓÐÏòÍøG2µÄÐÅϢΪ:\\n\ DisplyOLG(G2); }³ÌÐòÔËÐÐÑÝʾ½á¹¹Îª£º

-.183.-

µÚ7Õ ͼ½á¹¹

½¨Á¢Ò»¸öÓÐÏòͼµÄÊ®×ÖÁ´±íG1:

ÊäÈë¶¥µãÊýºÍ±ß(»¡)Êývexnum arcnum:4 7¨L °´Ä³ÖÖ˳ÐòÊäÈë4¸ö¶¥µãµÄÖµ: 1 2 3 4¨L

ÊäÈëͼÖÐ7Ìõ»¡µÄÐÅÏ¢u v:

1 2 1 3 3 1 3 4 4 1 4 2 4 3¨L ½¨Á¢Ò»¸öÓÐÏòÍøµÄÊ®×ÖÁ´±íG2:

ÊäÈë¶¥µãÊýºÍ±ß(»¡)Êývexnum arcnum:4 7¨L °´Ä³ÖÖ˳ÐòÊäÈë4¸ö¶¥µãµÄÖµ: 1 2 3 4¨L

ÊäÈëͼÖÐ7Ìõ»¡ºÍȨµÄÐÅÏ¢u v w:

1 2 8 1 3 5 3 1 2 3 4 4 4 1 6 4 2 7 4 3 3¨L

ÓÐÏòͼG1µÄÐÅϢΪ: °´ÁÚ½Ó±íÏÔʾ½á¹ûΪ£º 0 (1): [0 2] [0 1] 1 (2):

2 (3): [2 3] [2 0]

3 (4): [3 2] [3 1] [3 0]

°´ÄæÁÚ½Ó±íÏÔʾ½á¹ûΪ£º 0 (1): [3 0] [2 0] 1 (2): [3 1] [0 1] 2 (3): [3 2] [0 2] 3 (4): [2 3]

ÓÐÏòÍøG2µÄÐÅϢΪ: °´ÁÚ½Ó±íÏÔʾ½á¹ûΪ£º 0 (1): [0 2 5] [0 1 8] 1 (2):

2 (3): [2 3 4] [2 0 2]

3 (4): [3 2 3] [3 1 7] [3 0 6] °´ÄæÁÚ½Ó±íÏÔʾ½á¹ûΪ£º 0 (1): [3 0 6] [2 0 2] 1 (2): [3 1 7] [0 1 8] 2 (3): [3 2 3] [0 2 5] 3 (4): [2 3 4]

˵Ã÷£º

£¨1£©ÔÚ³ÌÐòÏÔʾµÄ½á¹ûÖУ¬µÚÒ»ÁС¢µÚ¶þÁзֱðΪ¶¥µãλÖõÄϱêºÍ¶¥µãµÄÖµ¡£¶ÔÓÚͼ£¬µ¥Á´±íÖеÄÿһÏî±íʾ¸Ã¶¥µã¼°ÆäÁÚ½ÓµãµÄϱꣻ¶ÔÓÚÍø£¬»¹ÒªÏÔʾÏàÓ¦»¡µÄȨֵ¡£ £¨2£©³ÌÐòÑÝʾÖÐËù½¨Á¢µÄÊÇͼ7.15ÖÐÓÐÏòͼ(a)ºÍÓÐÏòÍø(b)µÄÊ®×ÖÁ´±íµÄÒ»ÖÖ±íʾ¡£

£¨3£©´Ó´æ´¢½á¹¹¿ÉÒÔ¿´³ö£¬ÔÚÊ®×ÖÁ´±íÖкÜÈÝÒ×Ëã³öÒ»¸ö¶¥µãµÄ³ö¶ÈºÍÈë¶È£¬²¢ÇÒ½¨Á¢Ê®×ÖÁ´±íµÄʱ¼ä¸´ÔÓ¶ÈÓ뽨Á¢ÁÚ½Ó±íµÄʱ¼ä¸´ÔÓ¶ÈÏàͬ£¬¾ùΪO(n*e)¡£ËùÒÔÔÚÓÐÏòͼµÄÓ¦ÓÃÖУ¬Ê®×ÖÁ´±íÊÇÒ»¸öºÜÓÐÓõŤ¾ß¡£

7.2.4ÎÞÏòͼµÄÁÚ½Ó¶àÖØ±í±íʾ·¨

ÔÚÎÞÏòͼµÄÁÚ½Ó±í±íʾÖУ¬Ã¿Ò»Ìõ±ß(v,w)¾ù³öÏÖÁ½´Î£¬¼´ÔÚ¶¥µãvµÄµ¥Á´±íÖÐÓж¥µãv¡¢w¹¹³ÉµÄ±ß½áµã£¬Í¬Ê±ÔÚ¶¥µãwµÄµ¥Á´±íÖÐÓж¥µãw¡¢v¹¹³ÉµÄ±ß½áµã¡£ÕâÑù£¬ÔڶԱ߽øÐÐËÑË÷µÄÓйØÎÊÌâÖУ¬Í¬Ò»Ìõ±ß³öÏÖÁ½´ÎÏÔÈ»»á´øÀ´Ò»Ð©²»±ã£»Í¬Ê±£¬µ±Í¼ÖеıßÊý½Ï´óʱÃ÷ÏÔÔö¼ÓÁËÄÚ´æ¿Õ¼äµÄÕ¼ÓÃÁ¿¡£Îª´Ë£¬ÏÂÃæ¸ø³öÎÞÏòͼµÄÁÚ½Ó¶àÖØÁ´±í±íʾ·¨¡£

1£®ÁÚ½Ó¶àÖØ±íµÄ¶¨Òå

ÔÚÁÚ½Ó¶àÖØ±íÖаüº¬Á´±íµÄÍ·½áµãºÍÁ´±íÖеı߽áµãÁ½ÖÖÀàÐ͵Ľáµã£¬Í¼7.16¸ø³öÁÚ½Ó¶àÖØ±íÖÐÍ·½áµãºÍ±ß½áµã½á¹¹µÄ½á¹¹Ê¾Í¼¡£

ÆäÖУ¬Í·½áµã°üº¬¶¥µãÐÅÏ¢Óò(data)¡¢Ö¸ÏòÒÀ¸½Óڸö¥µãµÄµÚÒ»Ìõ±ß½áµãµÄÖ¸ÕëÓò

-.184.-

µÚ7Õ ͼ½á¹¹

(firstedge)¡£±ß½áµã°üº¬ÅжϸñßÊÇ·ñ±»É¨Ãè¹ýµÄ±êÖ¾Óò(mark)¡¢¸Ã±ßÒÀ¸½µÄµÚÒ»¸ö¶¥µãλÖÃÓò(ivex)¡¢±ßÒÀ¸½µÄµÚ¶þ¸ö¶¥µãλÖÃÓò(jvex)¡¢Ö¸ÏòÏÂÒ»ÌõÒÀ¸½ÓÚivexµÄ±ßµÄÖ¸ÕëÓò(ilink)¡¢Ö¸ÏòÏÂÒ»ÌõÒÀ¸½ÓÚjvexµÄ±ßµÄÖ¸ÕëÓò(jlink)¡¢±ßµÄÐÅÏ¢£¨±ÈÈçȨֵ£©Óò(info)¡£

ÀýÈ磬ͼ7.17¸ø³öÎÞÏòͼµÄÒ»ÖÖÁÚ½Ó¶àÖØ±í±íʾ¡£

ÔÚÁÚ½Ó¶àÖØ±íÖУ¬ËùÓÐÒÀ¸½ÓÚͬһ¶¥µãµÄ±ßÁ´½ÓÔÚÒ»¸öÁ´±íÖУ¬ÓÉÓÚÒ»Ìõ±ßÒÀ¸½ÓÚÁ½¸ö¶¥µã£¬ËùÒÔÿ¸ö±ß½áµãͬʱ³öÏÖÔÚÁ½¸öÁ´±íÖС£ËùÒÔ£¬ÎÞÏòͼµÄÁÚ½Ó¶àÖØ±íÖб߽áµãµÄ¸öÊýÊÇÆäÁÚ½Ó±í±íʾÖб߽áµã¸öÊýµÄÒ»°ë¡£ÁÚ½Ó¶àÖØÁ´±íÖУ¬±íµÄÍ·½áµãÖ®¼äÊÇ˳Ðò´æ´¢½á¹¹£¬±ß½áµãËùÔÚµÄÁ´±íÊÇ·ÇÑ­»·Á´±í£¬½áµãÖ®¼äµÄÏà¶ÔλÖÃÒ²ÊÇ×ÔÈ»Ðγɵ쬲»Ò»¶¨°´¶¥µãÐòÁкÅÓÐÐò¡£ËùÒÔ£¬ÎÞÏòͼµÄÁÚ½Ó¶àÖØ±í±íʾ·½Ê½ÊDz»Î¨Ò»µÄ¡£

2£®ÁÚ½Ó¶àÖØ±íµÄ´æ´¢±íʾÓëʵÏÖ (1)ÁÚ½Ó¶àÖØ±í´æ´¢½á¹¹µÄÀàÐͶ¨Òå

ÏÂÃæ·Ö±ð¸ø³ö±ß½áµã(EBox)¡¢¶¥µã½áµã(VexBox)¡¢ÁÚ½Ó¶àÖØÁ´±í(AMLGraph)µÄÀàÐͶ¨Òå¡£ struct EBox{ //±ß½áµãµÄ½á¹¹¶¨Òå int mark; //·ÃÎʱêÖ¾Óò int ivex,jvex; //±ßÒÀ¸½µÄÁ½¸ö¶¥µãµÄλÖà EBox *ilink,*jlink; //Ö¸ÏòÒÀ¸½Á½¸ö¶¥µãµÄÏÂÒ»Ìõ±ßµÄÖ¸ÕëÓò int info; //±ßµÄÏà¹ØÐÅÏ¢£¨ÈçȨֵ£©Óò };

struct VexBox{ //¶¥µã½áµã½á¹¹¶¨Òå VType data; //¶¥µãÐÅÏ¢ EBox *firsedge; //Ö¸ÏòµÚÒ»ÌõÒÀ¸½¸Ã¶¥µãµÄ±ß };

struct AMLGraph{ //¶¨ÒåÁÚ½Ó¶àÖØÁ´±íÀàÐÍ VexBox* xlist; //Á´±íÍ·½áµãÊý×éÖ¸Õë int vexnum,edgenum; //ÎÞÏòͼµÄ¶¥µãÊýºÍ±ßÊý GKind kind; };

(2)ÁÚ½Ó¶àÖØÁ´±íµÄ²éÕÒ²Ù×÷

º¯Êýint LocateVex_AMLG(AMLGraph G,VType u)·µ»Ø¶¥µãuÔÚͼGÖеÄλÖã¬Èç¹û²éÕÒʧ°ÜÔò·µ»Ø0Öµ¡£

-.185.-

µÚ7Õ ͼ½á¹¹

int LocateVex_AMLG(AMLGraph G,VType u) { int i; for(i=0;i

(3)½¨Á¢ÁÚ½Ó¶àÖØÁ´±íµÄË㷨ʵÏÖ

º¯Êývoid CreateGraph_AMLG(AMLGraph& G,GKind kind)¸ù¾ÝͼµÄÀàÐÍ(kind)½¨Á¢Ò»¸öÎÞÏòͼ»òÎÞÏòÍøµÄÁÚ½Ó¶àÖØÁ´±í(G)¡£

void CreateGraph_AMLG(AMLGraph& G,GKind kind) { int i,j,k; VType u,v; EBox* pr; G.kind=kind; cout<<\ÊäÈë¶¥µãÊýºÍ±ßÊývexnum edgenum:\ cin>>G.vexnum>>G.edgenum; G.xlist=new VexBox[G.vexnum]; //Ϊ¶¥µãÊý×é·ÖÅäÄÚ´æ¿Õ¼ä cout<<\°´Ä³ÖÖ˳ÐòÊäÈë\.vexnum<<\¸ö¶¥µãµÄÖµ:\\n\ for(i=0;i>G.xlist[i].data; //ÊäÈëËùÓж¥µãµÄÐÅÏ¢µ½dataÖÐ G.xlist[i].firsedge=NULL; //É趨³õʼµÄµ¥Á´±íΪ¿Õ } if(G.kind==DG) cout<<\ÊäÈëͼÖÐ\Ìõ±ßµÄÐÅÏ¢u v:\\n\ else cout<<\ÊäÈëͼÖÐ\.edgenum<<\Ìõ±ßºÍȨµÄÐÅÏ¢u v w:\\n\ for(k=0;k>u>>v; } while(!((i=LocateVex_AMLG(G,u))&&(j=LocateVex_AMLG(G,v)))); pr=new EBox; //¶¯Ì¬·ÖÅä±ßµÄ´æ´¢¿Õ¼ä pr->ivex=--i; //i´ÓλÖÃֵת»»ÎªÏ±êÖµ pr->jvex=--j; //j´ÓλÖÃֵת»»ÎªÏ±êÖµ if(G.kind==DN)cin>>pr->info; pr->ilink=G.xlist[i].firsedge; //½«ÊäÈëµÄ±ß²åÈëµ½ÏàÓ¦Á´±íµÄÊײ¿ G.xlist[i].firsedge=pr; pr->jlink=G.xlist[j].firsedge; G.xlist[j].firsedge=pr; }//end for } (4)°´ÁÚ½Ó±í·½Ê½ÏÔʾµ±Ç°ÁÚ½Ó¶àÖØÁ´±íµÄÐÅÏ¢

-.186.-

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