Ma’lumotlar tuzilmasi va algoritmlari fanidan 10-11-12 mavzular yuzasidan amaliyot topshiriqlari



Yüklə 42,07 Kb.
tarix07.01.2024
ölçüsü42,07 Kb.
#202535
Abdug\'aniyev Azizbek Akmaljon o\'g\'li MT 10-11-12


O`ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR VAZIRLIGI


Muhammad Al-Xorazmiy nomidagi Toshkent axborot texnologiyalari universiteti Nurafshon filiali
Ma’lumotlar tuzilmasi va algoritmLARI fanidan
10-11-12 mavzular yuzasidan amaliyot topshiriqlari


Bajardi: 210-22 guruh
Talabasi:Abdug’aniyev Azizbek Akmaljon o’g’li
Tekshirdi: Karimov Sodiqjon
Toshkent -2023

  1. 10-mavzu: Daraxtsimon maʻlumotlar tuzilmalarini qayta ishlash algoritmlari va dasturlarini tuzish.

#include
using namespace std;
int main(){
int a[3] = {}, i;
cout << "Qo'shishdan oldingi massiv:" << endl;
for(i = 0; i < 3; i++)
cout << "a[" << i <<"] = " <
//axlat qiymatlarini chop etadi
cout << "Elementlarni kiritish.." <
cout << "Kiritilgandan keyin massiv:" << endl; // massiv qiymatlarini chop etadi
for(i = 0; i < 5; i++) {
a[i] = i + 2;
cout << "a[" << i <<"] = " << a[i] << endl;
}
return 0;
}


  1. 11-mavzu: Binar daraxtlar bilan ishlash algoritmlari


// C++ tilida rekursiyali Binar Qidiruv
#include
// Rekursiyali qidiruv funksiyasi. U massivdan
// x qaysi o'rinda turganini qaytaradi,
// yoki -1
int binarqidiruv(int arr[], int l, int r, int x)
{
if (r >= l)
{
int mid = l + (r - l)/2;
// Agar element x ga teng bo'lsa
// o'zi qaytadi
if (arr[mid] == x)
return mid;
// Agar element x dan katta bo'lsa,
// u faqat chap qismni oladi
if (arr[mid] > x)
return binarqidiruv(arr, l, mid-1, x);
// Yoki u faqat o'ng qismni oladi
return binarqidiruv(arr, mid+1, r, x);
}
// Bu yerga yetib keladi, qachonki
// x soni massiv ichidan topilmasa
return -1;
}
int main(void)
{
int arr[] = {2, 3, 4, 10, 40};
//massiv ni elementlar sonini topib olayabmiz
int n = sizeof(arr)/ sizeof(arr[0]);
int x = 10;
int natija = binarqidiruv(arr, 0, n-1, x);
(natija == -1)? printf("X soni massivni ichidan topilmadi.")
: printf("X soni massivning %d - elementi.",
natija);
return 0;
}


  1. 12-mavzu: Heap tree ko‘rinishidagi binar daraxtlar bilan ishlash algoritmlari.

// C++ da yig'ma tartiblash
#include
using namespace std;
void heapify(int arr[], int n, int i) {
// Ildiz, chap bola va o'ng bola orasida eng kattasini toping
int largest = i;
int left = 2 * i + 1;
int right = 2 * i + 2;
if (left < n && arr[left] > arr[largest])
largest = left;
if (right < n && arr[right] > arr[largest])
largest = right;
// Agar ildiz katta bo'lmasa, almashtiring va yig'ishni davom eting
if (largest != i) {
swap(arr[i], arr[largest]);
heapify(arr, n, largest);
}
}
// Uyma tartiblash uchun asosiy funktsiya
void heapSort(int arr[], int n) {
// Maksimal to'pni yarating
for (int i = n / 2 - 1; i >= 0; i--)
heapify(arr, n, i);
// Heap sort
for (int i = n - 1; i >= 0; i--) {
swap(arr[0], arr[i]);
// Ildizdagi eng yuqori elementni yana olish uchun ildiz elementini yig'ing
heapify(arr, i, 0);
}
}
//Massivni chop etish
void printArray(int arr[], int n) {
for (int i = 0; i < n; ++i)
cout << arr[i] << " ";
cout << "\n";
}
// Haydovchi kodi
int main() {
int arr[] = {1, 12, 9, 5, 6, 10};
int n = sizeof(arr) / sizeof(arr[0]);
heapSort(arr, n);
cout << "Saralangan massiv \n";
printArray(arr, n);
}

Yüklə 42,07 Kb.

Dostları ilə paylaş:




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin