日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

有向图的深度/广度优先遍历算法

發布時間:2025/3/14 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 有向图的深度/广度优先遍历算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

// 鄰接表存儲與廣度和深度優先算法
#include <iostream>?
using namespace std;

#define MAX_VERTEX_NUM 100

typedef enum {
?DG,DN,UDG,UDN
}GraphKind;

typedef struct EdgeNode {
?int adjvex; // 存儲鄰接點在頂點中的位置
?struct EdgeNode *nextedge;
?int weight;
}EdgeNode;

typedef struct VexNode {
?char vex;
?EdgeNode *firstedge;
}VexNode;

?

typedef struct {
?VexNode vexs[MAX_VERTEX_NUM];
?int vexnum, edgenum;
?GraphKind kind;
}LGraph;

// 構造有向圖的鄰接表,頂點數n,邊數 e
void CreateDG(LGraph &G, int n, int e) {
?char ch;
?int i, j;
?G.vexnum = n;
?G.edgenum = e;
?// 頂點信息初始化
?for (i = 0; i < n; i++) {
??cin >> ch;
??G.vexs[i].vex = ch;
??G.vexs[i].firstedge = NULL;
?}
?// 邊的信息初始化
?for (int k = 0; k < e; k++) {
??cin >> i >> j;
??EdgeNode *p = new EdgeNode;
??p->adjvex = j;
??p->nextedge = G.vexs[i].firstedge;
??G.vexs[i].firstedge = p; // 采用頭插法來構建
?}
}

// 有向圖的深度優先算法
int visited[MAX_VERTEX_NUM];

void DFS(LGraph &G, int i) {
?visited[i] = 1;
?cout << G.vexs[i].vex << " ";
?int j; // 當前訪問的節點信息
?EdgeNode *p;
?p = G.vexs[i].firstedge;
?while (p) {
??j = p->adjvex;
??if (!visited[j]) {
???DFS(G, j);
??}
??p = p->nextedge;
?}
}

void DFS_Traverse(LGraph &G) {

?for (int i = 0; i < G.vexnum; i++) {
??visited[i] = 0;
?}

?for (int i = 0; i < G.vexnum; i++) {
??if (!visited[i]) {
???DFS(G, i);
??}
?}
}

//? 有向圖的廣度優先遍歷
const int Queue_Size = 100;

typedef struct circlQueue {
?int *elem;
?int front, rear;
?int queueSize;
}circlQueue;

// 循環隊列初始化
void init_circleQueue(circlQueue &Q) {
?Q.elem = new int[Queue_Size];
?Q.front = Q.rear = 0;
?Q.queueSize = Queue_Size;
}

// 入隊列
void enterQueue(circlQueue &Q, int x) {
?// 判滿
?if ((Q.rear + 1)%Q.queueSize == Q.front) {
??cout << "Queue OverFlow!" << endl;
?}
?Q.elem[Q.rear] = x;
?Q.rear = (Q.rear + 1) % Q.queueSize;
}

// 出隊列
void outQueue(circlQueue &Q, int &e) {
?// 判空
?if (Q.front == Q.rear) {
??cout << "Queue Empty!" << endl;
?}
?e = Q.elem[Q.front];
?Q.front = (Q.front + 1) % Q.queueSize;
}

// 廣度優先
void BFS_Traverse(LGraph &G) {
?for (int i = 0; i < G.vexnum; i++)
??visited[i] = 0;

?circlQueue Q;
?init_circleQueue(Q);
?int v1,v2;
?for (int i = 0; i < G.vexnum; i++) {
??if (!visited[i]) {
???visited[i] = 1;
???cout << G.vexs[i].vex << " ";
???enterQueue(Q, i);
???// 隊列不空
???while (Q.rear != Q.front) {
????outQueue(Q, v1);
????EdgeNode *p;
????p = G.vexs[v1].firstedge;
????while(p){
?????v2 = p->adjvex;
?????if (!visited[v2]) {
??????cout << G.vexs[v2].vex << " ";
??????visited[v2] = 1;
??????enterQueue(Q, v2);
?????}
?????p = p->nextedge;
????}
???}
??}
?}
}

int main() {
?LGraph G;
?int n, e;
?cout << "請輸入頂點數目:" << endl;
?cin >> n;
?cout << "請輸入邊的數目:" << endl;
?cin >> e;
?CreateDG(G, n, e);
?cout << "深度優先搜索結果:" << endl;
?DFS_Traverse(G);
?cout << endl;
?cout << "廣度優先搜索結果:" << endl;
?BFS_Traverse(G);

?system("pause");
?return 0;

}

轉載于:https://www.cnblogs.com/codingtao/p/6430429.html

總結

以上是生活随笔為你收集整理的有向图的深度/广度优先遍历算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 婷婷五月综合久久中文字幕 | 好吊色视频988gao在线观看 | 国产一级二级在线观看 | 国产婷婷色一区二区三区在线 | 亚洲av永久中文无码精品综合 | 青青草官网 | 国产午夜福利在线播放 | 美女被猛网站 | 美女日批网站 | 精品欧美一区二区在线观看 | 亚洲国产精品天堂 | 中文字幕av一区二区三区 | 99国产精品免费 | 麻豆一区二区在线观看 | xxx黄色片 | 高h视频在线免费观看 | 欧美一区免费观看 | 国产亚洲欧美精品久久久久久 | 亚洲天堂中文字幕在线观看 | 天天射天天干天天操 | 久久人人爽人人爽人人片av高清 | 天天摸夜夜操 | 两性午夜免费视频 | 欧美黄色性视频 | 日本免费看 | 欧美在线一二三四区 | 国产女人精品视频 | 在线色资源 | 亚洲国产私拍精品国模在线观看 | 亚洲黄色在线观看视频 | 天天艹av | 91视频区 | 红色假期黑色婚礼2 | 长篇乱肉合集乱500小说日本 | 日本黄色成人 | 国产精品影音先锋 | 国产毛片91 | 男生草女生的视频 | 国产精品对白刺激久久久 | 91av不卡 | 视色影视 | 国产福利免费观看 | sm国产在线调教视频 | 香蕉视频在线看 | 国产熟女一区二区丰满 | 深夜福利网址 | 国久久| 欧美一级一片 | 波多野结衣办公室双飞 | 老鸭窝成人| 伊人精品在线 | jizz在线看| 亚洲a中文字幕 | 天堂网av中文字幕 | 91官网在线观看 | 亚洲在线观看一区 | 黑丝袜av| 一二三区精品视频 | 美女福利在线视频 | 三级免费黄录像 | 欧美日韩啪啪 | 成人做爰免费视频免费看 | 操干网 | 成人黄色激情视频 | 91黄色片| 日韩 国产 欧美 | 久久精品视频99 | 日本三级韩国三级三级a级中文 | 中文免费在线观看 | 欧洲-级毛片内射 | 激情国产视频 | 亚洲熟女一区二区 | 毛片视频大全 | 欧美一级淫片免费视频魅影视频 | 樱花电影最新免费观看国语版 | 亚洲一区二区自拍 | 999精品免费视频 | 国产aⅴ精品 | 椎名由奈在线观看 | 狠狠躁夜夜躁人人爽视频 | 婷婷激情五月 | 国产精品天美传媒入口 | 国产午夜福利一区二区 | 欧美 日韩 国产精品 | 牛牛在线免费视频 | 激情久久五月天 | 依人在线视频 | 国产伦精品一区二区三区免费 | 水牛影视av一区二区免费 | 97久久国产精品 | 91制服诱惑 | 日日碰日日摸 | 午夜福利毛片 | 日韩av在线播放不卡 | 四虎影院在线 | 6080亚洲精品一区二区 | 岛国av一区| 高h文在线| 欧美久久一级 |