import graph.Graph.Companion.MAX_WEIGHT
class Graph(val size: Int) {
var matrix = arrayOfNulls<IntArray>(size)
companion object {
val MAX_WEIGHT = Int.MAX_VALUE
}
/**
* 獲取圖的某個頂點的出度
*/
fun getOutDegree(index: Int): Int {
var degree = 0
matrix.getOrNull(index)?.forEach {
if (it != MAX_WEIGHT && it != 0) {
degree++
}
}
return degree
}
/**
* 獲取圖的某個頂點的入度
*/
fun getInDegree(index: Int): Int {
var degree = 0
matrix?.forEach {
it?.getOrNull(index)?.let {
if (it != MAX_WEIGHT && it != 0) {
degree++
}
}
}
return degree
}
fun main(args: Array<String>) {
/**
* 圖的矩陣
* 橫向代表出度渗蟹,縱向代表入度
* v0 v1 v2 v3 v4
* v0 0 ∞ ∞ ∞ 6
* v1 9 0 3 ∞ ∞
* v2 2 ∞ 0 5 ∞
* v3 ∞ ∞ ∞ 0 1
* v4 ∞ ∞ ∞ ∞ 0
*/
var graph = Graph(5)
graph.matrix[0] = intArrayOf(0, MAX_WEIGHT, MAX_WEIGHT, MAX_WEIGHT, 6)
graph.matrix[1] = intArrayOf(9, 0, 3, MAX_WEIGHT, MAX_WEIGHT)
graph.matrix[2] = intArrayOf(2, MAX_WEIGHT, 0, 5, MAX_WEIGHT)
graph.matrix[3] = intArrayOf(MAX_WEIGHT, MAX_WEIGHT, MAX_WEIGHT, 0, 1)
graph.matrix[4] = intArrayOf(MAX_WEIGHT, MAX_WEIGHT, MAX_WEIGHT, MAX_WEIGHT, 0)
println("圖頂點1的出度:" + graph.getOutDegree(1))
println("圖頂點1的入度:" + graph.getInDegree(1))
}
圖
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
- 文/潘曉璐 我一進店門杠娱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人谱煤,你說我怎么就攤上這事摊求。” “怎么了刘离?”我有些...
- 正文 為了忘掉前任恼除,我火速辦了婚禮凿渊,結果婚禮上,老公的妹妹穿的比我還像新娘缚柳。我一直安慰自己埃脏,他們只是感情好,可當我...
- 文/花漫 我一把揭開白布秋忙。 她就那樣靜靜地躺著彩掐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪灰追。 梳的紋絲不亂的頭發(fā)上堵幽,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼团滥!你這毒婦竟也來了竿屹?” 一聲冷哼從身側響起,我...
- 正文 年R本政府宣布,位于F島的核電站格仲,受9級特大地震影響押袍,放射性物質發(fā)生泄漏。R本人自食惡果不足惜凯肋,卻給世界環(huán)境...
- 文/蒙蒙 一谊惭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧侮东,春花似錦圈盔、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至宽闲,卻和暖如春众眨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背容诬。 一陣腳步聲響...
推薦閱讀更多精彩內容
- 面向對象的問題的處理的關鍵是建模問題。建脑俟茫可以把在復雜世界的許多重要的細節(jié)給抽象出萌抵。許多建模工具封裝了UML(也就...
- 在柴米油鹽的流年里卿闹,每個人的心里,都鐫刻著點點揮之不去的美好瞬間萝快,女人锻霎,尤其向往那些點亮心靈的時刻----她告訴你...
- 1 似乎是一夜之間嫩海,我們隨處都能看到“某某月薪三千冬殃,一年之后實現年薪百萬”,“某某半年前還是個小職員叁怪,半年后逆襲成...