說明: aoe 網路是有向無環加權圖,其中頂點表示事件,弧表示活動,權表示活動持續的時間,通常可以用來估算工程完成的時間,即圖中從開始點到結束點之間最長的路徑對應的時間。請完成乙個程式,完成下列任務:
1 、計算 aoe 網路對應的拓撲排序。如果排序結果不唯一,請輸出按照從小到大的順序排列的結果。從小到大的順序就是輸入的節點序列順序(參見下面關於輸入格式的說明)。如圖1中滿足要求的拓撲排序是: a-b-c-d-e-f-g-h-k ,圖2中滿足要求的拓撲排序是:v1-v3-v5-v2-v6-v4-v7-v8-v9
2 、計算 aoe 網路的關鍵路徑。注意關鍵路徑可能不唯一,要求輸出所有的關鍵路徑。同樣,按照是按照從小到大的順序輸出。例,如果得到兩條關鍵路徑,分別是0-1-3-6-8-9和0-1-3-4-5-8-9,那麼先輸出後一條路徑,因為兩條路徑中前三個節點相同,而後一條路徑第四個節點的編號小。
測試用例的輸入輸出格式說明:
輸入:節點的個數,邊的條數;
各個節點的名稱序列
邊: < 起點 , 終點 , 權值 > 。說明起點和終點是在各個點在輸入序列中的位置,如圖1中邊 表示為 <0,1,6> 。
輸出:拓撲排序;
關鍵路徑
測試用例0是與圖1相對應的,測試用例1是與圖2相對應的。
#include#include#includeint stack[500] = ;
int tail = -1;
int vnum, enum;
typedef struct node2node2;
node2* node2[500];
typedef struct nodenode;
node node[500];
int topo = 0;
int topolist[500];
int ve[500] = ;
int vl[500] = ;
// typedef struct elelnode;
// elnode el[100];
void criticalpath(int vnum)
}p = p->next;}}
topo++;
}//vl
for(int i = 0; i < vnum; i++)
//i慢慢減小,topolist[i]對應倒序拓撲排序值
for(int i = vnum-1; i >= 0; i--)}}
p = p->next;}}
int topo2[vnum];
for(int i = 0; i < vnum; i++)}}
for(int i = 0; i < vnum; i++)
}p->l = vl[j] - p->value;
p = p->next;}}
}// int flag = 0;
int toposort(int n)
break;}}
}for(int i = 0; i < vnum; i++)
return 0;
}void dfs(node2 *p, int x)
int i = 0;
while(stack[i] != -1)
putchar('\n');
stack[tail] = -1;
tail--;
return;
}else
p = p->next;
}stack[tail] = -1;
tail--;
}}int main()
else
}else}}
}else
ch = getchar();
enum--;
node[x].outdegree++;
node[y].indegree++;
}for(int i = 0; i < 500; i++)
if(toposort(vnum))
else
}criticalpath(vnum);
// for(int i = 0; i < vnum; i++)
for(int i = 0; i < 500; i++)
tail = -1;
stack[++tail] = 0;
dfs(node[0].next, 0);
}
計算工程完成的關鍵路徑
說明 aoe 網路是有向無環加權圖,其中頂點表示事件,弧表示活動,權表示活動持續的時間,通常可以用來估算工程完成的時間,即圖中從開始點到結束點之間最長的路徑對應的時間。請完成乙個程式,完成下列任務 1 計算 aoe 網路對應的拓撲排序。如果排序結果不唯一,請輸出按照從小到大的順序排列的結果。從小到大...
14 計算工程完成的關鍵路徑
說明 aoe 網路是有向無環加權圖,其中頂點表示事件,弧表示活動,權表示活動持續的時間,通常可以用來估算工程完成的時間,即圖中從開始點到結束點之間最長的路徑對應的時間。請完成乙個程式,完成下列任務 1 計算 aoe 網路對應的拓撲排序。如果排序結果不唯一,請輸出按照從小到大的順序排列的結果。從小到大...
H2資料庫的應用
h2是乙個j a編寫的關係型資料庫,它可以被嵌入j a應用程式中使用,或者作為乙個單獨的資料庫伺服器執行。在啟動安裝程式前面,確保pc上已經存在jdk,安裝過程中配置預設就行,當然也可以自己選擇安裝路徑。我這裡選擇安裝到e盤,安裝後h2的目錄如下 在bin目錄下有乙個h2 2.1.210.jar的包...