Umuman olganda, ikki bog’lamli ro’yhat bu elementlari soni bir xil, faqatgina o’zaro teskari ketma-ketlikda yozilgan ikkita bir bog’lamli ro’yhatdir.
Bir va ikki bog’lamli ro’yhatlarni e’lon qilish
Bir bogʼlamli roʼyxat tuzilmasi:
struct Node {
BT inf;
Node* ptr;
};
Ikki bogʼlamli roʼyxat tuzilmasi:
struct Node {
BT inf;
Node* next;
Node* prev;
};
Ro'yhat oxiriga element qo'shish
Node* p = new Node;
cin>>numb;
p->info = numb;
p->next = NULL;
if (Lst == NULL)
{ Lst = p;
lastPtr = p;
}
else { lastPtr->next = p;
lastPtr = p;
}
Ro'yhat boshidan element o‘chirish
Node* p = new Node;
if (lst == NULL)
cout<<"ro'yhat bo'sh";
else {
p = lst;
lst = p->next ;
delete(p);
}
Ro'yhatdan elementni qidirish
Node* Find(Node *Lst, int x)
{
Node *P=Lst;
while(P)
if (P->inf==x) return P;
else P = P->ptr;
return 0;
}
Ro'yhat elementlarini ekranga chiqarish
void print(Node *Lst)
{
Node* P = Lst;
while(P) {
cout <<" "<< P->inf<<"-> ";
P = P->ptr;
}
cout << endl;
}
Mavzu bo’yicha nazorat savollar
Chiziqli bog’langan roy’hatlar nima?
Bir bog’lamli ro’yhatlar haqida tushuncha.
Bir bo’glamli xalqasimon ro’yhatlar.
Ikki bog’lamli ro’yhatlar haqida tushuncha.
Bog’langan ro’yhatlarga element kiritish qanday amalga oshiriladi?
Bog’langan ro’yhatlardan element o’chirish qanday amalga oshiriladi?
Bog’langan ro’yhatlardan element qidirish qanday amalga oshiriladi?
Bog’langan ro’yhat elementlarini chop etish qanday amalga oshiriladi?
Massivga nisbatan bog’langan ro’yhatlarning kamchiligi nimadan iborat?
Bir bog’lamli ro’yhatlarning o’ziga xosligi nimalardan iborat?
Bir bog’lamli ro’yhatlarning o’ziga xosligi nimalardan iborat?
Ko’rsatkich nima?
Bir bog’lamli ro’yhatga element kiritish uning elementlar soniga bog’liqmi?
Element kiritish va chiqarish amali qaysi holda samaraliroq: ro’yhatdami yoki massivda?
Chiziqli bog'langan ro'yxatlar. Bir va ikki bog‘lamli ro‘yxatlar ustida amallar va ularning algoritmlari.
Ma’ruzachi: D.Z.Ganihodjayeva
REJA:
Bog'langan chiziqli ro'yxatlar bo'yicha operatsiyalarni amalga oshirish
Ro'yxat tuzilmalarini xotirada ko'rsatish.
Ro'yxat tuzilmalarini xotirada ko'rsatish.
Ro'yxatni qayta ishlash operatsiyalari
Barcha operatsiyalarda ko'rsatgichni to'g'rilash ketma-ketligi juda muhim, bu boshqa elementlarga ta'sir qilmasdan ro'yxatni to'g'ri o'zgartirishni ta'minlaydi. Tuzatish tartibi noto'g'ri bo'lsa, ro'yxatning bir qismini yo'qotish oson.
Barcha operatsiyalarda ko'rsatgichni to'g'rilash ketma-ketligi juda muhim, bu boshqa elementlarga ta'sir qilmasdan ro'yxatni to'g'ri o'zgartirishni ta'minlaydi. Tuzatish tartibi noto'g'ri bo'lsa, ro'yxatning bir qismini yo'qotish oson.
Dasturlash misollarida quyidagi ma'lumotlar turlari aniqlangan deb taxmin qilinadi:
ro'yxatning axborot qismining har qanday tuzilishi: type data = ...;
bir bog'langan ro'yxat elementi (sll - single linked list):type