Cod sursa(job #2697304)

Utilizator kovacsvictorKovacs Victor kovacsvictor Data 18 ianuarie 2021 09:54:50
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 2.08 kb
#include <iostream>
#include <fstream>
#include <iostream>
#include <vector>
#include <fstream>
#include <algorithm>
using namespace std;

ifstream in("traversare.in");



vector<int> la[1001];
int n, mat[1001][1001];

void afisare(vector<int> v)
{
	for (int i = 0; i < v.size(); i++)
	{
		cout << v[i] << " ";
	}
	cout << endl;
}
int adiacente(int x, int y)//Afiseaza lista de adiacente
{
	for (int i = 0; i < la[x].size(); i++)
	{
		if (la[x][i] == y) { return 1; }
	}
	return 0;
}
int adiacente1(int x, int y)//Verifica daca x e adiacent cu y
{
	return binary_search(la[x].begin(), la[x].end(), y);
}

/*int grad(int x)//Verifica cate grade are x daca avem deja lista
{
	return la[x].size();
}
*/
int grad(int x)//Verifica cate grade are x daca avem deja lista
{
	int ct = 0;
	for (int i = 0; i < la[x].size(); i++)
		ct++;
	return ct;
}

void mat_adiacent(vector<int> la[], int n, int a[1001][1001])//Graf adiacent -> Mat Adiacent
{
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= n; j++)
			a[i][j] = 0;
	//Varianta mai veche de C++
	/*for (int i = 1; i <= n; i++)
		for (int j = 0; j < la[i].size(); j++)
			a[i][la[i][j]] = 1;
	*/

	//Varianta noua pentru C++ mai noi
	for (int i = 1; i <= n; i++)
		for (int j : la[i])
			a[i][j] = 1;
}


int n;
bool viz[101];


void dfs(int nod) {
	cout << nod << " ";
	viz[nod] = 1;
	for (int vecin = 1; vecin <= n; vecin++) {
		if (mat[nod][vecin] == 1) {
			if (viz[vecin] == false) {
				viz[vecin] = true;
				dfs(vecin);
			}
		}
	}
}
void dfs(int nod) {
	cout << nod << " ";
	viz[nod] = 1;
	for (int i = 1; i<= n; i++)
	{
        for(int j=0;j<=v[i].;j++)
        {


		if ( == 1) {
			if (viz[vecin] == false) {
				viz[vecin] = true;
				dfs(vecin);
			}
		}
	}
}


int main() {
	int x, y;
	fin >> n;
	while (fin >> x >> y)
	{
		la[x].push_back(y);
		la[y].push_back(x);
	}
	for(int i=1;i<=n;i++)
    {
        sort(la[i].begin(),la[i].end());
    }






	cout << "Dati nodul de plecare" << endl;
	cin >> nod;

	dfs(nod);

     return 0;
}