資源簡介
采用鏈表,根據ER隨機圖模型建立隨機圖,并計算它的平均度以及平均聚集度
代碼片段和文件信息
#include?
#include?
#define?MAXN?10000???????//MAXN?determine?the?node?of?the?graph
#define?MAXM?50000000??
#define?P?10
long?firstEdge[MAXN]now[MAXN]degree[MAXN]CC[MAXN];
long?nextEdge[MAXM]endNode[MAXM];
long?distribute[MAXN];
long?edgeNumber?nodeNumber;
float?averDegreeaverCC;
int?addEdge(long?aNode?long?bNode)//creat?a?neighbor?list?in?an?descending?order
{
long?p;
p?=?random()?%?100;
if?(p?>?P)?return?0;
nextEdge[++edgeNumber]?=?firstEdge[aNode];
firstEdge[aNode]?=?edgeNumber;
endNode[edgeNumber]?=?bNode;
nextEdge[++edgeNumber]?=?firstEdge[bNode];
firstEdge[bNode]?=?edgeNumber;
endNode[edgeNumber]?=?aNode;
return?1;
}
void?calcDegree()
{
long?i;
long?curEdge;
for?(i=0;?i {
curEdge?=?firstEdge[i];
while?(curEdge)
{
degree[i]?++;
curEdge?=?nextEdge[curEdge];
}
distribute[degree[i]]?++;
}
for?(i=0;?i averDegree?+=?degree[i];
averDegree?=?(float)(averDegree?/?MAXN);
}
void?calcCC()
{
long?ijk;
long?curEdgeIcurEdgeJ;
long?tempNode;
int?tri?notri;
long?nodeI?nodeJ;
for?(i=0;?i {
curEdgeI?=?firstEdge[i];
while?(curEdge
- 上一篇:Qt Quick之美圖秀秀
- 下一篇:矩陣算法相關代碼
評論
共有 條評論