15-Laboratoriya mashg’uloti Bog'langan ro'yxat. Ikkala bog'langan ro'yxat bilan ishlash


ta alohida bog'langan ro'yxat berilgan. Berilgan ikkita bog'langan ro'yxatni birlashtirish uchun funktsiyani hosil qilamiz ketma-ket o’sish tartibda



Yüklə 31,7 Kb.
səhifə2/3
tarix27.01.2023
ölçüsü31,7 Kb.
#81161
1   2   3
15-Laboratoriya mashg’uloti Bog\'langan ro\'yxat. Ikkala bog\'langa

#Misol. 5
2 ta alohida bog'langan ro'yxat berilgan. Berilgan ikkita bog'langan ro'yxatni birlashtirish uchun funktsiyani hosil qilamiz ketma-ket o’sish tartibda

List1: 10->15->17->20


List2: 5->9->13->19
Natija: 5->9->10->13->15->17->19->20

Dastur kodi


#include
#include
#define SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
using namespace std;
struct node {
int data;
struct node *next;
};
node *createList(int *arr, int n){
node *head, *p;
p = head = new node;
head->data = arr[0];
head->next = NULL;
for (int i = 1; i < n; ++i) {
p->next = new node;
p = p->next;
p->data = arr[i];
p->next = NULL;
}
return head;
}
void displayList(node *head){
while (head != NULL) {
cout << head->data << " ";
head = head->next;
}
cout << endl;
}
node *mergeSortedLists(node *head1, node *head2){
node *result = NULL;
if (head1 == NULL) {
return head2;
}
if (head2 == NULL) {
return head1;
}
if (head1->data < head2->data) {
result = head1;
result->next = mergeSortedLists(head1->next, head2);
} else {
result = head2;
result->next = mergeSortedLists(head1, head2->next);
}
return result;
}
int main(){
int arr1[] = {10, 15, 17, 20};
int arr2[] = {5, 9, 13, 19};
node *head1, *head2, *result = NULL;
head1 = createList(arr1, SIZE(arr1));
head2 = createList(arr2, SIZE(arr1));
cout << " Birinchi tartiblangan ro'yxat:" << endl;
displayList(head1);
cout << " Ikkinchi tartiblangan ro'yxat:" << endl;
displayList(head2);
result = mergeSortedLists(head1, head2);
cout << " Yakuniy tartiblangan ro'yxat:" << endl;
displayList(result);
return 0;
}

Yuqoridagi dasturni kompilyatsiya qilganingizda va bajarganingizda. U quyidagi natijani hosil qiladi


Birinchi tartiblangan ro'yxat:
10 15 17 20
Ikkinchi tartiblangan ro'yxat:
5 9 13 19
Yakuniy tartiblangan ro'yxat:
5 9 10 13 15 17 19 20

Yüklə 31,7 Kb.

Dostları ilə paylaş:
1   2   3




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