遍匈 / 方象潤更 / 伊、夕 /

8.7 嗤?涙桟夕式凪哘喘!AOV利嚥謡橡電會

1?AOV利(Activity on vertex network)

侭嗤議垢殻賜宀蝶嶽送殻辛參蛍葎飛孤倖弌議垢殻賜竣粁?宸乂弌議垢殻賜竣粁祥各葎試強。飛參夕嶄議競泣栖燕幣試強?嗤?円燕幣試強岻寂議單枠購狼?夸宸劔試強壓競泣貧議嗤?夕各葎AOV 利。壓AOV 利嶄?飛貫競泣i 欺競泣j 岻寂贋壓匯訳嗤?揃抄?各競泣i 頁競泣j 議念駁?賜宀各競泣j 頁競泣i 議朔写。飛<i,j>頁夕嶄議察?夸各競泣i頁競泣j 議岷俊念駁?競泣j 頁競泣i 議岷俊朔駁。

AOV 利嶄議察燕幣阻試強岻寂贋壓議崙埃購狼。箭泌?柴麻字廨匍議僥伏駅倬頼撹匯狼双号協議児粥仁才廨匍仁嘉嬬穎匍。僥伏梓孚奕劔議乏會栖僥楼宸乂仁殻椿?宸倖諒籾辛參瓜心撹頁匯倖寄議垢殻?凪試強祥頁僥楼耽匯壇仁殻。宸乂仁殻議兆各嚥屢哘旗催泌燕8.1 侭幣。
燕嶄?C1、C12 頁鏡羨噐凪万仁殻議児粥仁?遇嗤議仁抜俶勣嗤枠佩仁殻?曳泌?僥頼殻會譜柴擬胎才方峙蛍裂朔嘉嬬僥方象潤更……?枠佩訳周号協阻仁殻岻寂議單枠購狼。宸嶽單枠購狼辛參喘夕8.33 侭幣議嗤?夕栖燕幣。凪嶄?競泣燕幣仁殻?嗤?円燕幣念戻訳周。飛仁殻i 葎仁殻j 議枠佩仁?夸駅隼贋壓嗤?円ヾi,jゝ。壓芦電僥楼乏會扮?駅倬隠屬壓僥楼蝶壇仁岻念?厮将僥楼阻凪枠佩仁殻。
窃貌議AOV 利議箭徨珊嗤載謹?曳泌寄社母呂議柴麻字殻會?販採匯倖辛峇佩殻會匆辛參皿蛍葎飛孤倖殻會粁?賜飛孤囂鞘??喇宸乂殻會粁怏撹議送殻夕匆頁匯倖AOV 利。

2?謡橡電會


遍枠鹸楼匯和宣柊方僥嶄議陶會鹿栽嚥畠會鹿栽曾倖古廷。

飛鹿栽A 嶄議屈圷購狼R 頁徭郡議、掲斤各議才勧弓議?夸R 頁A 貧議陶會購狼。鹿栽A 嚥購狼R 匯軟各葎匯倖陶會鹿栽。

飛R 頁鹿栽A 貧議匯倖陶會購狼?泌惚斤耽倖a、b∈A 駅嗤aRb 賜bRa ?夸R 頁A貧議畠會購狼。鹿栽A 嚥購狼R 匯軟各葎匯倖畠會鹿栽。

陶會購狼将械竃孖壓厘断議晩械伏試嶄。箭泌?飛委A 心撹匯?寄議垢殻駅倬頼撹議匯答試強?夸aRb 吭龍彭試強a 駅倬壓試強b 岻念頼撹。曳泌?斤噐念中戻欺議柴麻字廨匍議僥伏駅俐議児粥仁嚥廨匍仁?喇噐仁殻岻寂議枠朔卆正購狼?蝶乂仁殻駅倬壓凪万仁殻參念讐娩?宸戦議aRb 祥吭龍彭仁殻a 駅倬壓仁殻b 岻念僥頼。

AOV 利侭旗燕議匯?垢殻嶄試強議鹿栽?堡司拝燦殂?鮗嚙蓮NŃ鳳Vじ地邱こ無智塰垣虗螻稗?慚覬V?AOV 利嶄音竃孖指揃?倦夸?吭龍彭蝶?試強哘參徭附恬葎嬬倦蝕婢議枠畳訳周?宸頁残喋議。霞編AOV 利頁倦醤嗤指揃?軸頁倦頁匯倖嗤?涙桟夕?議圭隈?祥頁壓AOV 利議陶會鹿栽和更夛匯倖?來會双?乎?來會双醤嗤參和來嵎?

1、壓AOV 利嶄?飛競泣i 單枠噐競泣j ?夸壓?來會双嶄競泣i 挽隼單枠噐競泣j?
2、斤噐利嶄圻栖短嗤單枠購狼議競泣嚥競泣?泌夕8.33 嶄議C1 嚥C13?壓?來會双嶄匆秀羨匯倖枠朔購狼?賜宀競泣i 單枠噐競泣j ?賜宀競泣j 單枠噐i。

諾怎宸劔來嵎議?來會双各葎謡橡嗤會會双。更夛謡橡會双議狛殻各葎謡橡電會。匆辛參傍謡橡電會祥頁喇蝶倖鹿栽貧議匯倖陶會誼欺乎鹿栽貧議匯倖畠會議荷恬。

飛蝶倖AOV 利嶄侭嗤競泣脅壓万議謡橡會双嶄?夸傍苧乎AOV 利音氏贋壓指揃?宸扮議謡橡會双鹿栽頁AOV 利嶄侭嗤試強議匯倖畠會鹿栽。參夕8.21 嶄議AOV 利箭?辛參誼欺音峭匯倖謡橡會双?C1、C12、C4、C13、C5、C2、C3、C9、C7、C10、C11、C6、C8 祥頁凪嶄岻匯。?堡撮ii墫敞虜厘始邱こ網亳濊欄邏噦聴嘉釘?慚覦翰愼睦佩鯰鯀儘亠痛覚鮟瘀于妬膿賓亠帖?

3?謡橡電會麻隈


斤AOV 利序佩謡橡電會議圭隈才化帶頁?
1、貫AOV 利嶄僉夲匯倖短嗤念駁議競泣?乎競泣議秘業葎0?旺拝補竃万?
2、貫利嶄評肇乎競泣?旺拝評肇貫乎競泣窟竃議畠何嗤?円?
3、嶷鹸貧峰曾化?岷欺複噫議利嶄音壅贋壓短嗤念駁議競泣葎峭。

宸劔荷恬議潤惚嗤曾嶽?匯嶽頁利嶄畠何競泣脅瓜補竃?宸傍苧利嶄音贋壓嗤?指揃?総匯嶽祥頁利嶄競泣隆瓜畠何補竃?複噫議競泣譲音念駁競泣?宸傍苧利嶄贋壓嗤?指揃。

夕8.34 公竃阻壓匯倖AOV 利貧糞仏貧峰化帶議箭徨。 宸劔誼欺匯倖謡橡會双?v2,v5,v1,v4,v3,v7,v6。

葎阻糞孖貧峰麻隈?斤AOV 利寡喘惣俊燕贋刈圭塀?旺拝惣俊燕嶄競泣潤泣嶄奐紗匯倖芝村競泣秘業議方象囃?軸競泣潤更譜葎?


競泣燕潤泣潤更議宙峰個葎?
typedef struct vnode{ /*競泣燕潤泣*/
int count /*贋慧競泣秘業*/
VertexType vertex; /*競泣囃*/
EdgeNode * firstedge; /*円燕遊峺寞*/
}VertexNode;

輝隼匆辛參音奐譜秘業囃?遇総翌譜匯倖匯略方怏栖贋慧耽匯倖潤泣議秘業。麻隈嶄辛譜崔阻匯倖均媚?群頁利嶄秘業葎0 議競泣脅繍凪秘媚。葎緩?謡橡電會議麻隈化帶葎?
1、繍短嗤念駁議競泣?count 囃葎0?儿秘媚?
2、貫媚嶄曜竃媚競圷殆補竃?旺委乎競泣哈竃議侭嗤嗤?円評肇?軸委万議光倖惣俊競泣議秘業受1?
3、繍仟議秘業葎0 議競泣壅秘均媚?
4、嶷鹸? ?∠?岷欺媚葎腎葎峭。緩扮賜宀頁厮将補竃畠何競泣?賜宀複和議競泣嶄短嗤秘業葎0 議競泣。

和中公竃喘C 囂冱宙峰議謡橡電會麻隈議糞孖。

貫貧中議化帶辛參心竃?媚壓宸戦議恬喘峪頁軟欺匯倖隠贋輝念秘業葎巣泣議競泣?旺聞岻侃尖嗤會。宸嶽嗤會辛參頁朔序枠竃?匆辛參頁枠序枠竃?絞緩匆辛喘錦双栖絹廁糞孖。壓和中公竃喘C 囂冱宙峰議謡橡電會議麻隈糞孖嶄?厘断寡喘媚栖贋慧輝念隆侃尖狛議秘業葎巣泣議潤泣?徽旺音俶勣駆翌奐譜媚議腎寂?遇頁譜匯倖媚競了崔議峺寞繍輝念侭嗤隆侃尖狛議秘業葎巣議潤泣銭俊軟栖?侘撹匯倖全塀媚。
void Topo_Sort (AlGraph *G)
{/*斤參揮秘業議惣俊全燕葎贋刈潤更議夕G?補竃凪匯嶽謡橡會双*/
int top = -1? /* 媚競峺寞兜兵晒*/
for (i=0?i<n?i++) /* 卆肝繍秘業葎0 議競泣儿秘全塀媚*/
{ if ( G->adjlist[i]. Count = = 0)
{ G->adjlist[i].count = top?
top = i?
}
}
for (i=0;i<n;i++)
{ if (t0p= -1)
{printf(“The network has a cycle”);
return;
}
j=top;
top=G->adjlist[top].count; /* 貫媚嶄曜竃匯倖競泣旺補竃*/
printf(“% c”,G->adjlist[j].vertex);
ptr=G->adjlist[j].firstedge;
while (ptr!=null)
{ k=ptr->adjvex;
G->adjlist[k].count--; /*輝念補竃競泣惣俊泣議秘業受1*/
if(G->adjlist[k].count= =0) /*仟議秘業葎0 議競泣序媚*/
{G->adjlist[k].count =top;
top=k;
}
ptr=ptr->next; /*孀欺和匯倖惣俊泣*/
}
}
}
麻隈8.19

斤匯倖醤嗤n 倖競泣、e 訳円議利栖傍?屁倖麻隈議扮寂鹸墫業葎O?e+n?。和中潤栽夕8.34 (a)公竃議AOV 利參式夕8.35 侭幣議惣俊燕?鉱賀麻隈議峇佩秤趨。

夕8.36 公竃阻惣俊燕議競泣潤泣議延晒秤趨。凪嶄?夕8.36 (a)幣竃阻麻隈蝕兵扮均媚議兜兵彜蓑?夕8.36?b? ??h?公竃阻耽補竃匯倖競泣朔均媚議彜蓑。

AltStyle によって変換されたページ (->オリジナル) /