數(shù)據(jù)結(jié)構(gòu)中 關(guān)于圖拓?fù)渑判蛩惴?有個(gè)地方不太明白 希望能得到解答
數(shù)據(jù)結(jié)構(gòu)中 關(guān)于圖拓?fù)渑判蛩惴?有個(gè)地方不太明白 希望能得到解答
我先把整個(gè)算法寫下了吧
Status ToplogicalSort(ALGraph G){
//有向圖G采用鄰接表存儲(chǔ)結(jié)構(gòu)
//若G無回路,則輸出G的頂點(diǎn)的一個(gè)拓?fù)湫蛄胁⒎祷豋K,否則ERROR.
FindInDegree(G,indegree); //對(duì)各頂點(diǎn)求入度indegree[0...vernum-1]
InitStack(S);
for(i =0;inextarc){
k=p-->adjevex
if(!(--indegree[k])) Push(S,k);//若入度減為0,則入棧
(終于碼字碼到這句了 我理解的是k是p指向的i的一個(gè)臨界點(diǎn),如果這個(gè)鄰接點(diǎn)經(jīng)過
--indegree入度減為0 則入棧 但是如果沒減為0呢 --indegree[k]還要執(zhí)行嗎 我理解他是個(gè)條件啊 可是依照拓?fù)渑判虻乃悸?是要把i的鄰接點(diǎn)入度都減1的)
}
}后面代碼就不打了 主要是這一點(diǎn) 希望能解答下
我先把整個(gè)算法寫下了吧
Status ToplogicalSort(ALGraph G){
//有向圖G采用鄰接表存儲(chǔ)結(jié)構(gòu)
//若G無回路,則輸出G的頂點(diǎn)的一個(gè)拓?fù)湫蛄胁⒎祷豋K,否則ERROR.
FindInDegree(G,indegree); //對(duì)各頂點(diǎn)求入度indegree[0...vernum-1]
InitStack(S);
for(i =0;inextarc){
k=p-->adjevex
if(!(--indegree[k])) Push(S,k);//若入度減為0,則入棧
(終于碼字碼到這句了 我理解的是k是p指向的i的一個(gè)臨界點(diǎn),如果這個(gè)鄰接點(diǎn)經(jīng)過
--indegree入度減為0 則入棧 但是如果沒減為0呢 --indegree[k]還要執(zhí)行嗎 我理解他是個(gè)條件啊 可是依照拓?fù)渑判虻乃悸?是要把i的鄰接點(diǎn)入度都減1的)
}
}后面代碼就不打了 主要是這一點(diǎn) 希望能解答下
其他人氣:731 ℃時(shí)間:2020-07-17 04:53:11
優(yōu)質(zhì)解答
我知道你哪里不明白了,你沒看見上面的for循環(huán),1,如果不為0,則不執(zhí)行if了,但執(zhí)行for循環(huán).2,執(zhí)行for循環(huán)的目的就是把所有的入度減1,減為0的入棧.為什么執(zhí)行for循環(huán)就是把所有鄰接點(diǎn)的入度減1 ???能解釋下for這句的意思嗎for(p=G.vertices[i].firstarc;p;p=p-->nextarc){k=p-->adjevex()里面表示什么意思?k不就是表示i的一個(gè)鄰接點(diǎn)嗎?怎么有入度減1的意思呢??謝謝啦~for循環(huán)的意思就是說把所有的以G.vertices[i]為孤尾結(jié)點(diǎn)的,所有狐頭指向的結(jié)點(diǎn)的入度減1,把度數(shù)減為0的入棧。G.vertices[i].firstarc的意思是:圖G中以第i個(gè)頂點(diǎn)結(jié)點(diǎn)的狐尾結(jié)點(diǎn)的第一個(gè)孤所指向的結(jié)點(diǎn)。p=p-->nextarc是以第i個(gè)頂點(diǎn)結(jié)點(diǎn)的狐尾結(jié)點(diǎn)的下一個(gè)頂點(diǎn)結(jié)點(diǎn)。這是鄰接表的定義嘛。k就是表示i的一個(gè)鄰接點(diǎn),但只是一個(gè),要把所有的以第i個(gè)頂點(diǎn)結(jié)點(diǎn)的狐尾結(jié)點(diǎn)所指向的結(jié)點(diǎn)的入度都減1才行啊。
我來回答
類似推薦
- 數(shù)據(jù)結(jié)構(gòu)題,敘述對(duì)有環(huán)無向圖求拓?fù)渑判蛐蛄械牟襟E (2)寫出下圖的4個(gè)不同的拓?fù)渑判蛐蛄新闊┙獯?謝謝
- 數(shù)據(jù)結(jié)構(gòu)題.有向圖,給出該圖的一種拓?fù)渑判蛐蛄?/a>
- 草字頭+佳 是什么字
- empty what is full,fill what is empty! 永遠(yuǎn)不讓自己空虛,永遠(yuǎn)不讓自己自滿 給點(diǎn)點(diǎn)評(píng)
- 16S rRNA基因通用引物1492r/F27,1492和27分別是什么意思?編號(hào)么?
- 用短除法分解素因素:42 81 40
- 在長1.6米,寬1.2米的長方形三合板上,裁出半徑是20厘米的圓,最多可裁多少個(gè)?
- 線性代數(shù) 設(shè)A,B,C均為n階矩陣,I為n階單位矩陣,且ABC=I,則下列矩陣乘積一定等于I的是哪個(gè)?
- 試以下面的方程為例,敘述用分離變量法求解方程的步驟.
- 《父親學(xué)畫》閱讀答案
- engage與undertake的區(qū)別,各自的用法
- how are you doing 同義句 how ________everything______________?
猜你喜歡
- 1每天堅(jiān)持朗讀對(duì)學(xué)外語有什么好處?
- 2You are yuji?急.
- 3思密達(dá)到底是什么意思
- 4計(jì)算(a的立方-b的立方)+ab(a-3b)-2(b的立方-a的平方b)
- 5求寫英語書面表達(dá)
- 6油酸的作用是什么
- 7請(qǐng)幫忙翻譯:Payment and and Charging
- 8近紅外區(qū)的吸收光譜代表什么含義?
- 9大正方形邊長為15cm,小正方形邊長為10cm.求陰影甲的面積比陰影乙的面積大多少平
- 10有甲乙丙三種文具,若購甲2件,乙1件、丙3件共需23元,若夠甲1件、乙4件、丙5件共需36元,問夠甲一件,乙2件,丙3件共需多少元
- 11Jack has a dog and so have I.____dog and____had a fight
- 12英語翻譯