PTA資料結構與演算法題目集 中文 7 7

2022-04-11 07:02:06 字數 2196 閱讀 3031

7-7 六度空間 (30 分)

「六度空間」理論又稱作「六度分隔(six degrees of separation)」理論。這個理論可以通俗地闡述為:「你和任何乙個陌生人之間所間隔的人不會超過六個,也就是說,最多通過五個人你就能夠認識任何乙個陌生人。」如圖1所示。

圖1 六度空間示意圖

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

輸入第1行給出兩個正整數,分別表示社交網路圖的結點數n(1,表示人數)、邊數m(≤,表示社交關係數)。隨後的m行對應m條邊,每行給出一對正整數,分別是該條邊直接連通的兩個結點的編號(節點從1到n編號)。

對每個結點輸出與該結點距離不超過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%

題目分析:剛開始看我以為是得利用最短路徑的想法來解 但其實是利用廣度優先遍歷來 計算 對於每乙個圖節點都使用一次廣度優先遍歷 記錄每層的節點數 當一層的節點數隨著佇列的彈出減小到0時 進入下一層

注意:彈出層中的每個元素時 先進行對該元素 直接相連的元素入棧 再進行層數的判斷

1

#define _crt_secure_no_warnings

2 #include3 #include4 #include

5#define maxvertexnum 1010

67 typedef struct enode*edge;

8struct

enode9;

1213 typedef struct gnode*graph;

14struct

gnode15;

2021 graph buildgraph(int

vertexnum)

2231

32void

insert(edge e, graph gra)

3337

38graph creategraph()

3951

return

g;52}53

int isedge(graph g,int i,int

j)54

5758

int colleted[1010

];59

int levelsize[1010

];60

float sum[1010

];61

int queue[1010

];62

int front = 1;63

int rear = 0;64

int size = 0;65

void

initialize()

6672 front = 1

;73 rear = 0

;74 size = 0;75

}76intisempty()

7780

int succ(int

num)

8187

void enqueue(int

num)

8893

intdequeue()

94100

101void bfs(graph g, int

i)102

124}

125if (levelsize[level]==0

)126 level++;

127}

128}

129void

print(graph g)

130136

}137

intmain()

138

view code

PTA 資料結構與演算法題目集(中文)6 2

6 2 順序表操作集 20 分 本題要求實現順序表的操作集。list makeempty position find list l,elementtype x bool insert list l,elementtype x,position p bool delete list l,positio...

PTA 資料結構與演算法題目集(中文)6 5

6 5 鏈式表操作集 20 分 本題要求實現鏈式表的操作集。position find list l,elementtype x list insert list l,elementtype x,position p list delete list l,position p 其中list結構定義如...

PTA資料結構與演算法題目集(中文)7 18

題意 有兩個視窗a,b,題目給出a視窗處理完兩個顧客,b視窗處理完乙個顧客,並且當不同視窗同時處理完2個顧客時,a視窗顧客優先輸出。我們可以給出兩個佇列q1,q2分別表示a,b視窗,編號為奇數的顧客存放到q1中,為偶數的顧客存放到q2中。include include include include...