數據結構與算法(周測5-最短路徑)


判斷題

1.在一個有權無向圖中,若ba的最短路徑距離是12,且cb之間存在一條權為2的邊,則ca的最短路徑距離一定不小於10。

     T      F

當c在a到b的最短路徑上時,c到a的路徑最小,此時恰好是10。

2.P 是頂點 S 到 T 的最短路徑,如果該圖中的所有路徑的權值都加 1,P 仍然是 S 到 T 的最短路徑。

     T      F

假如說最短路徑上一共有10條邊,而另一條路徑雖然比最短路徑長,但它只有一條邊,如果全加1,就會導致邊少的路徑成為新的最短路徑。

3.對於帶權無向圖 G = (V, E),M 是 G 的最小生成樹,則 M 中任意兩點 V1 到 V2 的路徑一定是它們之間的最短路徑。

     T      F

最小生成樹只能說明整個路徑是最小,並不能說明到單個結點的路徑是最小的。

4.Let P be the shortest path from S to T. If the weight of every edge in the graph is incremented by 1, P will still be the shortest path from S to T.

     T      F

同第2題

5.Let M be the minimum spanning tree of a weighted graph G. Then the path in M between V1 and V2 must be the shortest path between them in G.

     T      F

同第3題

選擇題

1.在一個有權無向圖中,如果頂點b到頂點a的最短路徑長度是10,頂點c與頂點b之間存在一條長度為3的邊。那么下列說法中有幾句是正確的?

  1. c與a的最短路徑長度就是13
  2. c與a的最短路徑長度就是7
  3. c與a的最短路徑長度不超過13
  4. c與a的最短路徑不小於7
     A.1句
     B.2句
     C.3句
     D.4句

就是說法太絕對,所以1和2肯定錯,3和4可以類似於判斷題第一題的分析。

2.若要求在找到從S到其他頂點最短路的同時,還給出不同的最短路的條數,我們可以將Dijkstra算法略作修改,增加一個count[]數組:count[V]記錄S到頂點V的最短路徑有多少條。則count[V]應該被初始化為:

     A.對所有頂點都有count[V]=1
     B.對所有頂點都有count[V]=0
     C.count[S]=1;對於其他頂點V則令count[V]=0
     D.count[S]=0;對於其他頂點V則令count[V]=1

由於S到S一定有一條長度為0的邊,所以count初始化為1,其他則是0

3.我們用一個有向圖來表示航空公司所有航班的航線。下列哪種算法最適合解決找給定兩城市間最經濟的飛行路線問題?

     A.Dijkstra算法
     B.Kruskal算法
     C.深度優先搜索
     D.拓撲排序算法

求最短路徑

4.In a weighted graph, if the length of the shortest path from b to a is 10, and there exists an edge of weight 3 between c and b, then how many of the following statements is/are TRUE?

  1. The length of the shortest path from c to a must be 13.
  2. The length of the shortest path from c to a must be 7.
  3. The length of the shortest path from c to a must be no greater than 13.
  4. The length of the shortest path from c to a must be no less than 7.
     A.1
     B.2
     C.3
     D.4

同第1題

5.數據結構中Dijkstra算法用來解決哪個問題?

     A.關鍵路徑
     B.最短路徑
     C.拓撲排序
     D.字符串匹配

6.使用迪傑斯特拉(Dijkstra)算法求下圖中從頂點1到其他各頂點的最短路徑,依次得到的各最短路徑的目標頂點是:

     A.5, 2, 3, 4, 6
     B.5, 2, 3, 6, 4
     C.5, 2, 4, 3, 6
     D.5, 2, 6, 3, 4

對於dijkstra算法來說,只有當一個點的所有入度都被遍歷過之后,才能完全確認起點到這個點的距離。但這道題沒有那么嚴謹,它的意思似乎僅僅是給各最短路徑排序,從短到長。

7.若要求在找到從S到其他頂點最短路的同時,還給出不同的最短路的條數,我們可以將Dijkstra算法略作修改,增加一個count[]數組:count[V]記錄S到頂點V的最短路徑有多少條。則count[V]應該被初始化為:

     A.count[S]=1;對於其他頂點V則令count[V]=0
     B.count[S]=0;對於其他頂點V則令count[V]=1
     C.對所有頂點都有count[V]=1
     D.對所有頂點都有count[V]=0

同第2題

8.下面的哪個算法可以求圖的最短路徑____。

     A.Kruskal算法
     B.Dijkstra算法
     C.Prim算法
     D.哈夫曼算法

9.If an undirected graph G = (V, E) contains 7 vertices. Then to guarantee that G is connected in any cases, there has to be at least __ edges.

     A.6
     B.15
     C.16
     D.21

為了讓第一個結點和第二個結點相連,需要一條邊;為了讓第三個點和他們相連,需要一條邊;為了讓第四個點和他們相連,一條邊可能不會讓他們相連,因為前三個點需要全連接才能保證再加入一條邊就讓第四個點和他們相連。
那么這個問題就很清晰了,為了求7個點需要幾條邊,先讓前6個點全連接,需要1+2+3+4+5=15個點,然后再加入一條邊讓第七個邊加入。

10.使用迪傑斯特拉(Dijkstra)算法求下圖中從頂點1到其他各頂點的最短路徑,依次得到的各最短路徑的目標頂點是:

     A.2, 5, 3, 4, 6, 7
     B.2, 4, 3, 6, 5, 7
     C.2, 3, 4, 5, 6, 7
     D.5, 2, 6, 3, 4, 7

類似與第6題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM