AOE網 關鍵路徑和關鍵活動

2021-08-28 09:00:48 字數 2457 閱讀 2646

// 全域性棧

seqstacksq2;

typedef struct edgenode

edgenode;

typedef struct vertexnode

vertexnode, adjlist[maxvex];

typedef struct

graphadjlist, *graphadjlist;

// 構建節點

edgenode* buynode()

// 初始化圖

void initgraph(graphadjlist& g)

}// 建立圖

void creategraph(graphadjlist& g)

cout << "輸入13條弧的資訊(起點 終點 權值):" << endl;

for (i = 0; i < maxedge; ++i)

}// 列印輸入資訊的邏輯圖

void printgraph(graphadjlist &g)

cout << endl;

}}// 求拓撲序列

bool topologicalsort(graphadjlist g, int* petv)

for (i = 0; i < maxvex; ++i)

while (!sq1.isempty())

cout << g.adjlist[gettop].data << "-->";

pnode = g.adjlist[gettop].firstedge;

while (pnode != null)

}return ncnt != maxvex;

}// 關鍵路徑

void criticalpath(graphadjlist g, int* petv, int* pltv)

while (!sq2.isempty())

}// 求 ete, lte, 和 關鍵路徑

for (j = 0; j < maxvex; ++j)

}}void main()

cout << endl << "關鍵路徑:" << endl;

criticalpath(myg, petv, pltv);

cout << endl;}/*

建立圖:

輸入10個頂點資訊(頂點 入度):

0 01 1

2 13 2

4 25 1

6 17 2

8 19 2

輸入13條弧的資訊(起點 終點 權值):

0 1 3

0 2 4

1 3 5

1 4 6

2 3 8

2 5 7

3 4 3

4 6 9

4 7 4

5 7 6

6 9 2

7 8 5

8 9 3

列印圖的鄰接表邏輯結構:

列印aoe網的鄰接表邏輯圖:

0 0 -->[2 4] [1 3]

1 1 -->[4 6] [3 5]

1 2 -->[5 7] [3 8]

2 3 -->[4 3]

2 4 -->[7 4] [6 9]

1 5 -->[7 6]

1 6 -->[9 2]

2 7 -->[8 5]

1 8 -->[9 3]

2 9 -->

求拓撲序列(全域性棧sq2的值):

0-->1-->2-->3-->4-->6-->5-->7-->8-->9

列印陣列petv(各個事件的最早發生時間):

0 3 4 12 15 11 24 19 24 27

關鍵路徑:

:4:8

:3:4

:5:3

*/

AOE網 關鍵路徑

aov網中 無環有向圖中,頂點表示活動 邊表示先後順序。aoe網中 帶權有向圖中,頂點表示事件,有向邊表示活動,邊上的權值表示活動的持續時間。我們成為aoe網 activity on edge network aoe網中沒有入邊的頂點表示源點或始點,沒有出邊的叫終點或匯點。aoe網要建立在活動之間制...

aoe網關鍵路徑

總時間限制 10000ms 單個測試點時間限制 1000ms 記憶體限制 65536kb 描述求出所給的aoe 網的關鍵路徑。輸入若干行整數,第一行有2個數,分別為頂點數v和弧數a,接下來有a行,每一行有3個數,分別是該條弧所關聯的兩個頂點編號和弧的權值 輸出若干個空格隔開的頂點構成的序列 用小寫字...

AOE網 關鍵路徑

aov網中 無環有向圖中,頂點表示活動 邊表示先後順序。aoe網中 帶權有向圖中,頂點表示事件,有向邊表示活動,邊上的權值表示活動的持續時間。我們成為aoe網 activity on edge network aoe網中沒有入邊的頂點表示源點或始點,沒有出邊的叫終點或匯點。aoe網要建立在活動之間制...