Texnologiyalari ha’m kommunikatsiyani rawajlandiriw ministirligi muxammed al-xorezmiy atindag’i tashkent informatsiyaliq texnologiyalari universiteti


Download 0.88 Mb.
bet3/4
Sana28.12.2022
Hajmi0.88 Mb.
#1012152
1   2   3   4
Bog'liq
O\'z betinshe jumis Shukirallaev Ixlas Graflardi ańlatıw usılları

E0

E1

E2

E3

E4

E5

E6

E7

E8

0

1

1

0

0

0

0

0

0

0

1

0

0

1

1

1

0

0

0

0

2

0

0

1

0

0

1

1

0

0

3

0

1

0

0

0

1

0

1

0

4

1

0

0

1

0

0

0

0

1

5

0

0

0

0

1

0

1

1

1

Algorithm
add_edge (ol, v)
Kirisiw - shettiń ol hám v {u, v}
Shıǵıw - G qanasınıń incedence matritsasi
Daslep, incidene matritsasi ushın ed_cnt 0 ge teń shet esaplaw bar.
#include
using namespace std;
int inc_arr[20][20]; // incidence matritsasini ustap turıw ushın dáslepki dızbek
int ed_no = 0;
void displayMatrix (int v, int e) {
int i, j;
for (i = 0; i < v; i++) {
for (j = 0; j < e; j++) {
cout << inc_arr[i][j] << " ";}
cout << endl;}}
void add_edge (int ol, int v) { // shet nomeri menen matritsaga shet qosıw funktsiyası
inc_arr[u][ed_no] = 1;
inc_arr[v][ed_no] = 1;
ed_no++; // shet nomerin asırıw
}
main (int argc, char* argv[]) {
int v = 6 ; // qanada 6 tóbelik ámeldegi
int e = 9 ; // qanada 9 shet ámeldegi
add_edge (0, 4);
add_edge (0, 3);
add_edge (1, 2);
add_edge (1, 4);
add_edge (1, 5);
add_edge (2, 3);
add_edge ();
add_edge (5, 3);
add_edge (5, 4);
displayMatrix (v, e);
}
Qońsılıq (qońsılas túyinler) dizimi - bul A[n] dızbek bolıp, A[i] xar bir elementi i túyin menen qońsılas túyinler dizimin ózinde saqlaydı.
Qońsılıq (qońsılas túyinler) dizimi qolaylıq tárepleri tómendegilerde:
 Ámeldegi (berilgen) túyinge qońsılas túyindi izlew;
 Túyin yamasa qır (ayqulaq) larni qushish;
 Siyrek graflar menen islew.
Qońsılıq (qońsılas túyinler) dizimi qolaysızlıqları bolsa tómendegishe:
 Qır (ayqulaq) dıń bar ekenligin tekseriw;
 Túyin yamasa qır (ayqulaq) larni óshiriw.
Adjacency List
Tómende grafik hám oǵan teń keletuǵın qońsılas dizimdiń kórgezbesi kórsetilgen.

// Adjascency List C++
#include
using namespace std;
// shet qosıw
void addEdge (vector adj[], int s, int d) {
adj[s].push_back (d);
adj[d].push_back (s);}
// Grafiktı baspadan shıǵarıń
void printGraph (vector adj[], int v) {
for (int d = 0; d < v; ++d) {
cout << " \n Tóbelik "
<< d << ":";
for (auto x : adj[d])
cout << "-> " << x;
printf (" \n");}}
int main () {
int v = 5;
// Grafik jaratıw
vector adj[v];
// Qırlardıń qosıw
addEdge (adj, 0, 1);
addEdge (adj, 0, 2);
addEdge (adj, 0, 3);
addEdge (adj, 1, 2);
printGraph (adj, v);
}

Qırlar dizimi - qırlardıń qońsılas túyinler juplıqlarınan ibarat sızıqlı dizim bolıp tabıladı.
Qońsılıq (qońsılas túyinler) dizimi qolaylıq tárepleri tómendegilerde:
 Qır (ayqulaq) larni qushish yamasa óshiriw;
 Ayqulaqlardıń júkleniwi boyınsha tártiplew;
 Siyrek graflar menen islew.
Qońsılıq (qońsılas túyinler) dizimi qolaysızlıqları bolsa tómendegishe:
 Túyin hám qır (ayqulaq) dıń qońsılaslıǵın anıqlaw ;
 Berilgen túyinge intsidient qır (ayqulaq) larni tańlaw.

Grafni qońsılas dizim degi qosıw hám alıp taslaw


Tómende grafik jáne onıń qońsılas dizimi kórsetilgen:

Eger 1 hám 4 arasındaǵı shetti alıp taslaw kerek bolsa, joqarıdaǵı grafik hám qońsılas dizim tómendegine aylanadı :

Jantasıw : Ideyanı grafikanı vektorlar qatarı retinde kórsetiw bolıp tabıladı, sonda hár bir vektor tóbeliktiń qońsılas dizimin sáwlelendiredi.
Shegaranı qosıw : shet qosıw sol shet menen baylanısqan eki tóbelikti bir-biriniń dizimine kirgiziw arqalı ámelge asıriladı. Mısalı, (ol, v) arasındaǵı shet qosılıwı kerek bolsa, ol v dıń vektorlar diziminde hám v ol dıń vektorlar diziminde saqlanadı. (Keyin basıp jıljıtıw )
Shegaranı óshiriw: (ol, v) arasındaǵı shetti óshiriw ushın ol dıń qońsılas dizimi v tapilguncha hám odan óshirilguncha ótedi. Tap sol ámel v. (Óshiriw) ushın da ámelge asıriladı.

// Joqarıdaǵı jantasıwdı C ++ programmasında ámelge asırıw


#include
using namespace std;
// ga shet qosıw ushın járdemshi funktsiya
// jóneltirilmagan grafik.
void addEdge (vector adj[], int ol, int v) {
adj[u].push_back (v);
adj[v].push_back (ol);}
// an-dagi shetti óshiriw ushın járdemshi funktsiya
// jóneltirilmagan grafik.
void delEdge (vector adj[], int ol, int v) {
// Birinshi vektor dizimi arqalı ótiw
// hám odan ekinshi elementti alıp taslaw
for (int i = 0; i < adj[u]. size (); i++) {
if (adj[u][i] == v) {
adj[u]. erase (adj[u]. begin () + i);
break;}}
// Ekinshi vektor dizimi arqalı ótiw
// hám odan birinshi elementti alıp taslaw
for (int i = 0; i < adj[v]. size (); i++) {
if (adj[v][i] == ol) {
adj[v]. erase (adj[v]. begin () + i);
break;}}}
// Qońsılas dizimdi baspadan shıǵarıw ushın járdemshi funktsiya
// qananı sáwlelendiriw
void printGraph (vector adj[], int v) {
for (int v = 0; v < v; ++v) {
cout << " vertex " << v << " ";
for (auto x : adj[v])
cout << "-> " << x;
printf (" \n");}
printf (" \n");}
int main () {
int v = 5;
vector adj[v];
// Mısal suwretde kórsetilgen sıyaqlı shet qosıw
addEdge (adj, 0, 1);
addEdge (adj, 0, 4);
addEdge (adj, 1, 2);
addEdge (adj, 1, 3);
addEdge (adj, 1, 4);
addEdge (adj, 2, 3);
addEdge (adj, 3, 4);
// adjacency matrix shıǵarıw
printGraph (adj, v);
// edge ni óshiriw (1, 4)
// mısal suwretde kórsetilgen sıyaqlı
delEdge (adj, 1, 4);
// adjacency matrix ni shıǵarıw
printGraph (adj, v);
return 0;}


Download 0.88 Mb.

Do'stlaringiz bilan baham:
1   2   3   4




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