日韩性视频-久久久蜜桃-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

總結

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

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

主站蜘蛛池模板: 国产大屁股喷水视频在线观看 | 欧美在线观看视频一区二区 | 超碰中文在线 | 日本在线一区二区 | 亚洲av无码日韩精品影片 | 在线不卡免费av | 大桥未久在线视频 | 日韩欧美亚洲国产精品字幕久久久 | 麻豆福利影院 | av最新版天堂资源在线 | 钰慧的mv视频在线观看 | 97avcc| 伊人手机在线视频 | 久久久一| 日韩欧美一卡 | 日韩不卡视频在线观看 | 在线成人日韩 | 日韩综合区 | 夜夜嗨av禁果av粉嫩avhd | 成人av久久 | 污视频网站免费 | 老色鬼在线 | 欧美视频一区二区三区在线观看 | 国产亚洲区 | 国产精品日韩av | 久久亚洲电影 | 日本xxxx裸体xxxx| 99资源在线| 免费在线视频观看 | 性――交――性――乱a | 夜色视频网站 | 亚洲理论片在线观看 | 国产成人无码一区二区在线播放 | 亚洲精品日韩综合观看成人91 | 区一区二视频 | 岳奶大又白下面又肥又黑水多 | 精品一区免费 | 国产一区二区在线不卡 | 黄色免费在线视频 | 中文字幕日韩欧美 | 亚洲精品大片www | 一级全黄毛片 | 在线观看av片 | 国产69精品久久久久999小说 | 久久人人爽人人爽人人av | 久久精品成人一区二区三区蜜臀 | 久久综合成人网 | 91欧美日韩国产 | 午夜少妇| 在线观看99 | 亚洲xxx视频 | 亚洲交性网 | 无码国产精品一区二区高潮 | 日韩成人av网 | 精品一区二区在线视频 | 玉米地疯狂的吸允她的奶视频 | 日韩欧美不卡视频 | 精品123区 | 男人的天堂伊人 | 日本东京热一区二区 | 越南性xxxx精品hd | 国产日韩精品视频 | 亚洲咪咪 | 日日夜夜拍 | 亚洲精品久久夜色撩人男男小说 | 精品国产一区二区三区av性色 | 日韩av一二区 | 成人免费播放视频 | 欧美性猛交xx乱大交 | 成人一区二区三区仙踪林 | 国产美女www爽爽爽 www.国产毛片 | 精品久久久久久久久久 | 中文一区二区在线播放 | 欧美精品video | 欧美激情网 | 狠狠干天天干 | 亚洲国产三区 | 国产美女无遮挡免费视频 | 国产吃瓜在线 | 国产麻豆自拍 | 丰满秘书被猛烈进入高清播放在 | 欧美草比视频 | 91精品一区二区三 | 国产成人三级在线播放 | 91免费看片网站 | 狠狠v欧美v日韩v亚洲ⅴ | 性猛交xxxx乱大交孕妇2十 | 日韩精品三级 | 久久国产劲爆∧v内射 | 亚洲色在线视频 | 亚洲一区av在线 | av永久免费网站 | 国产中文久久 | 国产精品成人午夜视频 | 亚洲国产精品激情在线观看 | 亚洲狠 | 日韩综合在线视频 | 影音先锋美女 | 黄色大片视频网站 |