for(i=0;i<row;i++)// 每次循环寻找安全进程{ worktemp1=worktemp; if(finishtemp->stat==0)// 检测未完成的进程{ for(j=0;j<colum;j++,needtemp=needtemp->next,worktemp=worktemp->next)// 检测安全性 if(needtemp->value<=worktemp->value) processtest++; if(processtest==colum)// 若安全就进入{ for(j=0;j<colum;j++)// 计算 Work+Allocation 的值{ worktemp1->value+=alloctemp->value; worktemp1=worktemp1->next; alloctemp=alloctemp->next; } if(status==0)// 只运行一次{ pathhead=path1=path2=(struct path*)malloc(pathlen); path1->next=path2->next=NULL; path1->value=i;// 记录安全进程序列头 status++; }else { path2=(struct path*)malloc(pathlen); path2->value=i; if(status==1)// 只运行一次{ pathhead->next=path2;// 构建安全进程序列头体连接 status++; } path1->next=path2;// 构建安全进程序列体 path1=path2; } finishtemp->stat=1; } else// 不安全就进入下一个进程{ for(t=0;t<colum;t++) alloctemp=alloctemp->next;