Mavzu: Graflar bilan ishlovchi sodda algoritmlar. Graflarni tasvirlash. Eniga va tubiga qarab qidirish


Download 110,69 Kb.
bet1/2
Sana03.06.2020
Hajmi110,69 Kb.
#114166
  1   2
Bog'liq
AL lab 2graf


O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
«Kompyuter injiniringi» fakulteti
Algoritmlarni loyihalashtirish fanidan

LABORATORIYA ISHI
Mavzu: Graflar bilan ishlovchi sodda algoritmlar.Graflarni tasvirlash. Eniga va tubiga qarab qidirish

Bajardi: CAL008-L2 guruhi talabasi

Tolipov Bohodir

Tekshirdi: Muhsinov Sh.

Toshkent 2020


Laboratoriya mashg’uloti № 2
Variant 12

Masalaning quyilishi: berilgan n = 4, e = 6 2 -> 0, 0 -> 2, 1 -> 2, 0 -> 1, 3 -> 3, 1 -> 3 grafning 2 uchidan boshlab chuqurligini aniqlash;
Dastur kodi:

#include

using namespace std;

class Graph

{

int V;


list *adj;

void DFSUtil(int v, bool visited[]);

public:

Graph(int V); // Constructor

// function to add an edge to graph

void addEdge(int v, int w);

void DFS(int v);

};


Graph::Graph(int V)

{ this->V = V;

adj = new list[V];

}


void Graph::addEdge(int v, int w)

{


adj[v].push_back(w);

}


void Graph::DFSUtil(int v, bool visited[])

{


visited[v] = true;

cout << v << " ";

list::iterator i;

for (i = adj[v].begin(); i != adj[v].end(); ++i)

if (!visited[*i])

DFSUtil(*i, visited);

}

void Graph::DFS(int v)



{

bool *visited = new bool[V];

for (int i = 0; i < V; i++)

visited[i] = false;

DFSUtil(v, visited);

}


int main()

{


Graph g(4);

g.addEdge(0, 1);

g.addEdge(0, 2);

g.addEdge(1, 2);

g.addEdge(2, 0);

g.addEdge(2, 3);

g.addEdge(3, 3);

cout << "gragning chuqurliga"

" (2 dan boshlab) \n";

g.DFS(2);



return 0;

}



Download 110,69 Kb.

Do'stlaringiz bilan baham:
  1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2025
ma'muriyatiga murojaat qiling