#include #include #include #include #include #include using namespace std; #include "graph.h" int Rcvgraph::rx(int *csum) { for(int i=0;i=Pn) return -1; int i = rand()%(Pn-pn); int j = -1; for(;i>=0;i--) { j++; for(;packets[j];j++) ; } packets[j]=1; pn++; return j; } void Rcvgraph::init() { for(int i=0;i-1;i++) for(int j=i+1;j-1;j++) for(int k=j+1;k-1;k++,n--) if(n==0) { S[l].i=i; S[l].j=j; S[l].k=k; l++; } } } void Graph::randomE() { const int K = Nn*(Nn-1)/2; int Set[K]; subset(Set,K,En); int l=0; for(int m=0;m-1;i++) for(int j=i+1;j-1;j++,n--) { if(n==0) { E[l].i=i; E[l].j=j; l++; } } } } Graph::Graph(int Nn_, int En_, int Sn_) { Nn=Nn_; En=En_; Sn=Sn_; E=new Edge[En]; S=new Side[Sn]; randomE(); randomS(); } Graph::~Graph() { delete[] E; delete[] S; } void subset(int *Set, int N, int n) { for(int i=0;i=0;i--) { j++; for(;Set[j];j++) ; } Set[j]=1; } }