-
大小: 2KB文件類型: .cpp金幣: 1下載: 0 次發(fā)布日期: 2024-01-26
- 語言: C/C++
- 標(biāo)簽: 點介數(shù)??PPI??C++??Betweenness??
資源簡介
蛋白質(zhì)相互作用網(wǎng)絡(luò)中求解Betweenness Centrality的簡單方法,用C++實現(xiàn),需改進(jìn)
代碼片段和文件信息
#include?
using?namespace?std;
#include?
#include?
#include?
//執(zhí)行函數(shù)
void?excute(int?m[][5]int?v[]int?n)
{
double?CB[5]?;
????for(int?i?=?0?;i? {
CB[i]?=?0;
}
for(int?s?=?0;?s? {
??vector?>?p(5);//用于存儲最短路徑到達(dá)節(jié)點在最短路徑上的前一個節(jié)點。一個鏈表數(shù)組
??stack?S;
??queue?Q;
????
??double?a[5];
??? ??for(int?h?=?0?;?h? ??{
a[h]?=?0.0;//從s出發(fā),到達(dá)頂點t的最短路徑數(shù)目
??}
??a[s]?=?1.0;
??int?b[5];//從s出發(fā),到達(dá)t的路徑的長度
??for(int?e?=?0?;?e? ??{
b[e]?=?-1;
??}
??b[s]?=?0;
??Q.push(s);
??while(!Q.empty())
??{
??int?v?=?Q.front();
??Q.pop();
??S.push(v);
??//cout?<“S??“?< ??for(int?w?=?0;?w? ??if(m[v][w]!=0)
??{
??if(b[w]?0)
??{
??Q.push(w);
??b[w]?=?b[v]?+1;
??}
??//shortest?path?to?w?via?v
???
??if(b[w]?==?b[v]?+1)
??{
??a[w]?=?a[w]?+a[v];
??p[w].push_back(v);
??}
??}//內(nèi)部for
??
??}//while循環(huán)
?//S中存的是從s出發(fā)到各定點的最短路徑。
??double?sum[5];
??int?v;
??for(v?=?0;?v? ??{
??sum[v]=0;
??}
??while(
評論
共有 條評論