Exemplo n.º 1
0
	int bipartite(int s){
		int temp,temp2;
		int k=1;//red
		qu->Add_node(s);
		f[s]=k;
		while(qu->Getsize()!=0){
				temp=qu->Del_node();
				k=f[temp];
				if(k==1){
					k=2;
				}else if(k==2){
					k=1;
				}
				for(int i=1;i<=list1[temp]->getsize();i++){
					temp2=list1[temp]->peekele(i);
					if(f[temp2]==0){
						qu->Add_node(temp2);
						f[temp2]=k;
					}else{
						if(f[temp2]!=k){
							return 1;
						}
					}
				}
				
		}
		return 0;	
	}
Exemplo n.º 2
0
	void BFS(int s){
		int temp,temp2;
		qu->Add_node(s);
		f[s]=1;
		while(qu->Getsize()!=0){
				temp=qu->Del_node();
				cout<<temp<<" ";
				for(int i=1;i<=list1[temp]->getsize();i++){
					temp2=list1[temp]->peekele(i);
					if(f[temp2]==0){
						qu->Add_node(temp2);
						f[temp2]=1;
					}
				}
		}	
	}