成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

如何創(chuàng)建無向圖以及輸入代碼步驟

無向圖是指沒有方向的圖,即任意兩個頂點之間都可以互相到達。在計算機科學中,無向圖被廣泛運用于各種算法與數(shù)據(jù)結構中。1. 定義循環(huán)變量和鄰接元素要創(chuàng)建無向圖,我們需要定義三個循環(huán)變量 i、j、k 和兩個

無向圖是指沒有方向的圖,即任意兩個頂點之間都可以互相到達。在計算機科學中,無向圖被廣泛運用于各種算法與數(shù)據(jù)結構中。

1. 定義循環(huán)變量和鄰接元素

要創(chuàng)建無向圖,我們需要定義三個循環(huán)變量 i、j、k 和兩個鄰接元素 v 和 w。這些變量將會在后面的步驟中被使用。

```

int i, j, k, v, w;

```

2. 定義弧結構指針

為了方便操作無向圖,我們需要定義兩個弧結構指針 p 和 q。

```

struct arc {

int adjvex; // 鄰接點

struct arc *nextarc; // 指向下一個弧結構的指針

};

typedef struct arc *ArcP;

struct vertex {

int data; // 頂點存儲的數(shù)據(jù)

ArcP firstarc; // 指向第一個鄰接點的弧結構指針

};

typedef struct vertex VertexType;

```

3. 定義權值變量

如果需要給無向圖加上權值,則需要定義一個權值變量 weight。

```

int weight;

```

4. 輸入頂點數(shù)和弧數(shù)

首先,我們需要輸入無向圖中的頂點數(shù)和弧數(shù)。這里我們假設頂點數(shù)為 n,弧數(shù)為 m。

```

int n, m;

printf("請輸入頂點數(shù)和弧數(shù):");

scanf("%d %d", n, m);

```

5. 輸入頂點元素

接下來,我們需要輸入每個頂點存儲的數(shù)據(jù)信息。

```

VertexType vertexList[n]; // 定義一個長度為 n 的頂點數(shù)組

for (i 0; i < n; i ) {

printf("請輸入第 %d 個頂點的數(shù)據(jù):", i 1);

scanf("%d", vertexList[i].data);

vertexList[i].firstarc NULL; // 初始化頂點的第一個鄰接點

}

```

6. 輸入鄰接點

最后,我們需要輸入每個頂點的鄰接點信息,從而創(chuàng)建圖的邊。

```

for (k 0; k < m; k ) {

printf("請輸入第 %d 條邊的兩個端點:", k 1);

scanf("%d %d", v, w);

// 創(chuàng)建一條從 v 到 w 的邊

p (ArcP) malloc(sizeof(struct arc)); // 分配內(nèi)存空間

p->adjvex w;

p->nextarc vertexList[v-1].firstarc; // 將 p 插入到 v 的鄰接表中

vertexList[v-1].firstarc p;

// 創(chuàng)建一條從 w 到 v 的邊

q (ArcP) malloc(sizeof(struct arc)); // 分配內(nèi)存空間

q->adjvex v;

q->nextarc vertexList[w-1].firstarc; // 將 q 插入到 w 的鄰接表中

vertexList[w-1].firstarc q;

}

```

以上就是創(chuàng)建無向圖的具體步驟,通過以上方法,我們可以輕松地創(chuàng)建一張無向圖,并且輸入不同的頂點和邊信息。

標簽: