7 7 六度空間

2021-10-19 18:05:09 字數 2461 閱讀 7841

傳送門

題目描述:假如給你乙個社交網路圖,請你對每個節點計算符合「六度空間」理論的結點佔結點總數的百分比。

輸入格式:

輸入第1行給出兩個正整數,分別表示社交網路圖的結點數n(1輸出格式:

對每個結點輸出與該結點距離不超過6的結點數占結點總數的百分比,精確到小數點後2位。每個結節點輸出一行,格式為「結點編號:(空格)百分比%」。

輸入樣例:

10 9

1 22 3

3 44 5

5 66 7

7 88 9

9 10

輸出樣例:

1: 70.00%

2: 80.00%

3: 90.00%

4: 100.00%

5: 100.00%

6: 100.00%

7: 100.00%

8: 90.00%

9: 80.00%

10: 70.00%

樣例示意圖:

題目思路:

由題意知,該題邊數遠遠大於頂點數,若建圖,則圖為稀疏圖,而稀疏圖用鄰接表建圖較為穩妥。

#include

#include

//malloc()函式標頭檔案。

#include

//memset()函式標頭檔案。

int visited[

1001];

//0-該頂點未被訪問過,1-該頂點已經被訪問過了。

//定義邊結點的結構體

struct enode

;typedef

struct enode* edge;

/*typedef定義新的資料型別,相當於給邊結點的結構體指標取了乙個別名,名為edge。

edge即struct enode*。*/

/*typedef定義新的資料型別,相當於給鄰接點的結構體指標取了乙個別名,名為ptrtoadjvnode。

ptrtoadjvnode即struct adjvnode*。*/

typedef

struct adjvnode* ptrtoadjvnode;

//定義鄰接點的結構體。

struct adjvnode

;typedef

struct vnodeadjlist[

1001];

//adjlist是鄰接表型別。

/*圖結構體的定義*/

struct gnode

;typedef

struct gnode* lgraph;

/*typedef定義新的資料型別,相當於給圖的結構體指標取了乙個別名,名為lgraph。

lgraph即struct gnode*。*/

/*迴圈佇列的結構體定義*/

struct qnode

;typedef

struct qnode* queue;

/*typedef定義新的資料型別,相當於給迴圈佇列的結構體指標取了乙個別名,名為queue。

queue即struct qnode*。*/

/*佇列的建立*/

queue createqueue

(int maxsize)

/*判斷佇列是否滿*/

intisfull

(queue q)

/*判斷佇列是否為空*/

intisempty

(queue q)

/*出隊*/

intdeleteq

(queue q)

else

}/*入隊*/

intaddq

(queue q,

int x)

else

}/*圖的建立*/

lgraph creategraph

(int n)

intbfs

(lgraph graph,

int s)

//廣度優先遍歷。}if

(i==last)

if(level==6)

break;}

return count;

}void

six_degree_of_separation

(lgraph graph)

}void

insertedge

(lgraph graph,edge e)

lgraph buildgraph()

return graph;

}int

main()

傳送門

7 7 六度空間

六度空間 理論又稱作 六度分隔 six degrees of separation 理論。這個理論可以通俗地闡述為 你和任何乙個陌生人之間所間隔的人不會超過六個,也就是說,最多通過五個人你就能夠認識任何乙個陌生人。如圖1所示。圖1 六度空間示意圖 假如給你乙個社交網路圖,請你對每個節點計算符合 六度...

7 7 六度空間

7 7 六度空間 30 分 六度空間 理論又稱作 六度分隔 six degrees of separation 理論。這個理論可以通俗地闡述為 你和任何乙個陌生人之間所間隔的人不會超過六個,也就是說,最多通過五個人你就能夠認識任何乙個陌生人。如圖1所示。圖1 六度空間示意圖 假如給你乙個社交網路圖,...

7 7 六度空間

六度空間 理論又稱作 六度分隔 six degrees of separation 理論。這個理論可以通俗地闡述為 你和任何乙個陌生人之間所間隔的人不會超過六個,也就是說,最多通過五個人你就能夠認識任何乙個陌生人。如圖1所示。圖1 六度空間示意圖 假如給你乙個社交網路圖,請你對每個節點計算符合 六度...