SIR单个节点作为传播源
void SIR(ALGraph* G,int a,double inf,double rec,char* str) //传入的分别为网络,感染节点,感染率,恢复率,写入的文件 { double rate;//传入节点作为感染节点的感染规模 int infTatal=1;//感染节点总数 int Inf[G->vexnum]; int newInf[G->vexnum]; int i=0; FILE* fp; fp=fopen(str,"at"); //给感染数组赋初值 for(i=0;i<infTatal;i++) { Inf[i]=a; G->adjlist[i].nodeState=0;//传入的数组为感染态 } for(i=0;i<infTatal;i++) { newInf[i]=0; } double infection=inf;//感染概率 int count=infTatal;//当前网络中的感染个数 srand((unsigned)time(NULL)); //设置种子,用于随机数产生 while(count>0)//还能继续感染 { int newInfLength=0;//表示新感染节点的个数 for(i=0;i<count;i++) { int vert=Inf[i];//当前的感染点 EdgeNode* p; p=G->adjlist[vert]