Kompyuter ilmlari va dasturlashtirish kafedrasi algoritmlar va berilganlar strukturalari



Yüklə 1,96 Mb.
səhifə8/47
tarix28.11.2023
ölçüsü1,96 Mb.
#136696
1   ...   4   5   6   7   8   9   10   11   ...   47
Algoritmlar va berilganlar strukturasi(ATTs2)

Savol va topshiriqlar.

  1. Algoritm nima?

  2. Blok sxema qanday tuziladi?

  3. Asosiy algoritmik tillar nima?


2-Ma’ruza:
Mavzu: Graflar nazariyasi elementlari. Grafni to‘lik aylanib chiqish algoritmlari. BFS va DFS algoritmlari. Grafda bog‘lamli komponentalari. Labirintdagi eng qisqa yo‘lni topish algoritmi. Li algoritmi.
Graflar nazariyasi elementlari.

1-rasm. Bir bog‗lamli chiziqli ro’yhat tuzilishi
1-rasmdagi ro’yhat boshiga informatsion maydoni D o’zgaruvchi bo’lgan element qo’yamiz. Ushbu ishni amalga oshirish uchun quyidagi amallarni bajarish lozim bo’ladi:
a) p ko’rsatkich murojaat qiladigan, bo’sh element yaratish (2-rasm).

2-rasm. Yangi element hosil qilish
b) Yaratilgan element informatsion maydoniga D o’zgaruvchi qiymatini o’zlashtirish (3-rasm).

3-rasm. Yangi element info maydoniga qiymat kiritish

  1. Yangi elementni ro’yhat bilan bog‗lash: p->ptr=lst; (shu holatda yangi element va lst – ro’yhat boshini ko’rsatyapti)

  2. lst ko’rsatkichni ro’yhat boshiga ko’chirish (4-rasm). lst=p;

Va nihoyat:

4-rasm. Ro’yhat boshiga element qo’shish
Endi shu algoritmni C++ tilidagi realizatsiyasini ko’rib chiqamiz.
Node * p = new Node;
int numb = -1; cout<<"son kiriting: "; cin>>numb;
p->info = numb;
if (lst ==NULL){
p->next = NULL;
lst = p; }
else { p->next = lst;
lst = p;}
2. Bir bog’lamli ro’yhat boshidan elementni o’chirish
Ro’yhatda birinchi element info informatsion maydonidagi ma‘lumotni esda saqlab qolib uni ro’yhatdan o’chiramiz (5-rasm).

5-rasm. Ro’yhat boshidagi elementni o’chirish
Yuqorida aytilganlarni amalga oshirish uchun quyidagi ishlarni bajarish lozim:

  1. o’chirilayotgan elementni ko’rsatuvchi p ko’rsatkich kiritish: p=lst;

  2. p ko’rsatkich ko’rsatayotgan element info maydonini qandaydir x o’zgaruvchida saqlash: x=p->info;

  3. lst ko’rsatkichni yangi ro’yhat boshiga ko’chirish: lst=p->ptr;

  4. p ko’rsatkich ko’rsatayotgan elementni o’chirish: delete(p); Natijada 6-rasmdagi ko’rinishga ega bo’lamiz.


6-rasm. Ro’yhatning natijaviy ko’rinishi

Endi shu algoritmni C++ tilidagi realizatsiyasini koʻrib chiqsak.
Node* p = new Node; if
(lst == NULL){ cout<<"ro'yhat bo'sh"; system("pause"); system("CLS");
}
else { p = lst;
lst = p->next ; delete(p);
}


Yüklə 1,96 Mb.

Dostları ilə paylaş:
1   ...   4   5   6   7   8   9   10   11   ...   47




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə