久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

數(shù)據(jù)結(jié)構(gòu)——圖(1)PTA習(xí)題

 流楚丶格念 2022-01-14

文章目錄

單選題

題號題目答案
1具有5個頂點的有向完全圖有多少條弧? 20
2在N個頂點的無向圖中,所有頂點的度之和不會超過頂點數(shù)的多少倍? N?1
3如果G是一個有28條邊的非連通無向圖,那么該圖頂點個數(shù)最少為多少? 9
4若一個有向圖用鄰接矩陣表示,則第i個結(jié)點的入度就是();已知一個有向圖的鄰接矩陣表示,則計算i個結(jié)點的出度的方法是() 第i列的非零元素個數(shù) ;求矩形第i行非零元素之和
5設(shè)無向圖的頂點個數(shù)為N,則該圖最多有多少條邊? N(N?1)/2
6對于給定的有權(quán)無向圖G,下列哪個說法是正確的?在這里插入圖片描述 D
7下列有關(guān)圖的敘述中,有幾句是對的?在這里插入圖片描述 4句
8給定有向圖的鄰接矩陣如下圖,頂點2(編號從0開始)的出度和入度分別是:在這里插入圖片描述 0, 2
9對于給定的有向圖如下,其鄰接表為:在這里插入圖片描述 在這里插入圖片描述
10給出如下圖所示的具有 7 個結(jié)點的網(wǎng) G,哪個選項對應(yīng)其正確的鄰接矩陣?在這里插入圖片描述 在這里插入圖片描述

選擇題題解

3、連通無向圖構(gòu)成條件:邊 = 頂點數(shù) * ( 頂點數(shù)-1 ) /2
所以28個條邊的連通無向圖頂點數(shù)最少為8個
所以28條邊的非連通無向圖為9個(加入一個孤立點)

函數(shù)題(沒什么參考性,不用仔細看)

6-1 鄰接矩陣存儲圖的深度優(yōu)先遍歷 (50分)

試實現(xiàn)鄰接矩陣存儲圖的深度優(yōu)先遍歷。

函數(shù)接口定義:

void DFS( MGraph Graph, Vertex V, void (*Visit)(Vertex) );

其中MGraph是鄰接矩陣存儲的圖,定義如下:

typedef struct GNode *PtrToGNode;
struct GNode{
    int Nv;  /* 頂點數(shù) */
    int Ne;  /* 邊數(shù)   */
    WeightType G[MaxVertexNum][MaxVertexNum]; /* 鄰接矩陣 */
};
typedef PtrToGNode MGraph; /* 以鄰接矩陣存儲的圖類型 */

函數(shù)DFS應(yīng)從第V個頂點出發(fā)遞歸地深度優(yōu)先遍歷圖Graph,遍歷時用裁判定義的函數(shù)Visit訪問每個頂點,。當(dāng)訪問鄰接點時,要求按序號遞增的順序,。題目保證V是圖中的合法頂點,。

輸入樣例:給定圖如下

在這里插入圖片描述

5

輸出樣例:

DFS from 5: 5 1 3 0 2 4 6

代碼

#include <stdio.h>

typedef enum {false, true} bool;
#define MaxVertexNum 10  /* 最大頂點數(shù)設(shè)為10 */
#define INFINITY 65535   /* ∞設(shè)為雙字節(jié)無符號整數(shù)的最大值65535*/
typedef int Vertex;      /* 用頂點下標(biāo)表示頂點,為整型 */
typedef int WeightType;  /* 邊的權(quán)值設(shè)為整型 */

typedef struct GNode *PtrToGNode;
struct GNode{
    int Nv;  /* 頂點數(shù) */
    int Ne;  /* 邊數(shù)   */
    WeightType G[MaxVertexNum][MaxVertexNum]; /* 鄰接矩陣 */
};
typedef PtrToGNode MGraph; /* 以鄰接矩陣存儲的圖類型 */
bool Visited[MaxVertexNum]; /* 頂點的訪問標(biāo)記 */

MGraph CreateGraph(); /* 創(chuàng)建圖并且將Visited初始化為false;裁判實現(xiàn),細節(jié)不表 */

void Visit( Vertex V )
{
    printf(" %d", V);
}

void DFS( MGraph Graph, Vertex V, void (*Visit)(Vertex) );


int main()
{
    MGraph G;
    Vertex V;

    G = CreateGraph();
    scanf("%d", &V);
    printf("DFS from %d:", V);
    DFS(G, V, Visit);

    return 0;
}

/* 你的代碼將被嵌在這里 */
// 深度優(yōu)先代碼部分
void DFS(MGraph Graph, Vertex V, void(*Visit)(Vertex))
{
Visited[V] = true;
Visit(V);
for (int i = 0; i < Graph->Nv; i++)
{
if (Graph->G[V][i]<INFINITY&&!Visited[i])
{
DFS(Graph, i, Visit);
}
}

}

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多