Texnologiyalari ha’m kommunikatsiyani rawajlandiriw ministirligi muxammed al-xorezmiy atindag’i tashkent informatsiyaliq texnologiyalari universiteti
Download 0.88 Mb.
|
O\'z betinshe jumis Shukirallaev Ixlas Graflardi ańlatıw usılları
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[s].push_back (d); adj[d].push_back (s);} // Grafiktı baspadan shıǵarıń void printGraph (vector 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 // 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[u].push_back (v); adj[v].push_back (ol);} // an-dagi shetti óshiriw ushın járdemshi funktsiya // jóneltirilmagan grafik. void delEdge (vector // 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 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 // 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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling