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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++实现AOE网中的关键路径算法(邻接表存储)

發布時間:2023/12/4 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++实现AOE网中的关键路径算法(邻接表存储) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.



代碼如下:

#include <iostream> #include <stack> #include <string> using namespace std; const int N = 10010; using vnodeType = int;typedef struct Node {int adj;int tw;//弧的時間權值Node *next; }Node;typedef struct Vnode {vnodeType v;//存儲圖中結點的信息int in;Node *first;}Vnode;class AoeGraph {public:AoeGraph(){memset(adjlist, 0, sizeof(adjlist));memset(ve, 0, sizeof(ve));memset(tpord, 0, sizeof(tpord));memset(vl, 0, sizeof(vl));}void createGraph(){int n, m;cin >> n >> m;vn = n;en = m;for (int i = 0; i < vn; i++){cin >> adjlist[i].v;adjlist->first = nullptr;}for (int i = 0; i < m; i++){int x, y, w;cin >> x >> y >> w;Node *p = new Node;p->adj = y;p->tw = w;p->next = adjlist[x].first;adjlist[x].first = p;}}void findIn(){for (int i = 0; i < vn; i++){adjlist[i].in = 0;}for (int i = 0; i < vn; i++){for (Node *p = adjlist[i].first; p; p = p->next){adjlist[p->adj].in++;}}}bool TopOrder(){stack<int>s;findIn();for (int i = 0; i < vn; i++){if (adjlist[i].in == 0){s.push(i);}}int n = vn;int cnt = 0;while (!s.empty()){int xx = s.top();s.pop();n--;//tpord[cnt++] = adjlist[xx].v;tpord[cnt++] = xx;for (Node *p = adjlist[xx].first; p; p = p->next){int yy = p->adj;adjlist[yy].in--;if (adjlist[yy].in == 0){s.push(yy);}if (ve[xx] + p->tw > ve[yy]){ve[yy] = ve[xx] + p->tw;}}}if (!n) return true;else return false;}bool Criticalpath(){int cnt = vn;if (!TopOrder()) return false;for (int i = 0; i < vn; i++){vl[i] = ve[vn - 1];//初始化頂點事件的最遲發生時間}for (int i = cnt - 1; i >= 0; i--){int xx = tpord[i];for (Node *p = adjlist[xx].first; p; p = p->next){int yy = p->adj;if (vl[yy] - p->tw < vl[xx]){vl[xx] = vl[yy] - p->tw;}}}int e = 0;int l = 0;for (int i = 0; i < vn; i++) coll[i] = false;for (int i = 0; i < vn; i++){for (Node *p = adjlist[i].first; p; p = p->next){int k = p->adj;e = ve[i];l = vl[k] - p->tw;if (e == l) {coll[i] = coll[k] = true;}}}return true;}void dfs(int v,int cnt,int ans){path[cnt++] = v;if (v == vn - 1){cout << "value = " << ans << endl;for (int i = 0; i < cnt; i++){cout << path[i] << " ";}cout << endl;return;}for (Node *p = adjlist[v].first; p; p = p->next){int k = p->adj;if (!vis[k] && coll[k]){vis[k] = true;dfs(k, cnt, ans + p->tw);vis[k] = false;}}}void printPath(){for (int i = 0; i < vn; i++) vis[i] = false;vis[0] = true;dfs(0, 0, 0);}private:Vnode adjlist[N];int vn;int en;int tpord[N];int ve[N];int vl[N];bool coll[N];//標記關鍵路徑的點bool vis[N];//標記是否訪問過int path[N];//保存要輸出的路徑 };int main() {AoeGraph g;g.createGraph();g.Criticalpath();g.printPath();return 0; }

測試結果:

總結

以上是生活随笔為你收集整理的C++实现AOE网中的关键路径算法(邻接表存储)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产激情一区二区三区四区 | 中文字幕无码乱人伦 | 拍国产真实乱人偷精品 | 亚洲欧美日韩一区二区三区四区 | 住在隔壁的她动漫免费观看全集下载 | 少妇裸体淫交视频免费看高清 | av在线免费网站 | 国产成人在线观看免费网站 | 16一17女人毛片 | 黑人操日本| 男人视频网 | 欧美字幕 | 国产精品theporn动漫 | 日韩一级一级 | 国产学生美女无遮拦高潮视频 | 91桃色网站 | 日韩中文一区二区三区 | 国产色无码精品视频 | 亚洲AV无码久久精品国产一区 | 色婷婷av一区二区三区四区 | 国产精品自拍视频一区 | 美女视频一区 | 欧美一区二区三区黄色 | 色七七桃花综合影院 | 涩涩亚洲 | 国产一区二区观看 | 国产99久久久国产精品 | 久久久久国产免费 | 91精品久久久久久综合五月天 | 精品一区二区三区人妻 | 国产麻豆a毛片 | 日本美女黄色一级片 | 久久综合热| 美女视频黄的免费 | 国产精品第六页 | 亚洲激情视频一区 | 精品国产av鲁一鲁一区 | 欧美日韩亚洲国产一区 | 少女视频的播放方法 | 国产精品久久毛片av大全日韩 | 99精品影视| sao浪受的饥渴日常 91免费入口 | 国内偷拍精品视频 | 成人免费午夜视频 | 久久久精品久久久久 | 亚洲狼人天堂 | 狠狠躁夜夜躁 | 久艹视频在线观看 | 天天干导航 | 欧美丰满少妇 | 日韩精品电影在线 | 国产精品刘玥久久一区 | 337p粉嫩大胆噜噜噜亚瑟影院 | 亚洲一级特黄 | 国产综合无码一区二区色蜜蜜 | 亚洲精品中文字幕乱码三区91 | 今天最新中文字幕mv高清 | 五月天色丁香 | 中韩毛片 | 国产一二三在线视频 | 777久久久| 亚洲无限看 | 噼里啪啦国语高清 | 久久久国产精品一区二区三区 | 日本高清中文字幕 | 上原亚衣av一区二区三区 | 日本三级大片 | 激情一区二区三区 | 羞羞动漫在线观看 | 成人免费视频a | 亚洲欧美网址 | 日韩在线毛片 | 人妻妺妺窝人体色www聚色窝 | 日韩福利视频在线观看 | 国产欧美日韩高清 | 夜夜嗨一区二区三区 | 麻豆传谋在线观看免费mv | 午夜a级片 | 国产视频1区2区3区 国产欧美一区二区精品性色99 | 少妇一级淫片免费播放 | 一区www| 极品探花在线 | 久久精品九九 | 看免费毛片 | 欧美一区二区三区在线免费观看 | 中国久久久 | 人人爽人人爱 | 波多在线视频 | 日韩二区视频 | 西西午夜 | av高清在线观看 | 欧美天天色 | 亚洲经典自拍 | 五月婷婷亚洲综合 | 农村搞破鞋视频大全 | 91免费影片 | 精品国精品国产自在久不卡 | 日本高清视频网站 | 色欧美88888久久久久久影院 |