logo

Chiziqli bog’langan ro’yxatlar. Bog’langan ro’yxatlar haqida tushunchalar. Bog’langan ro'yxatlar klassifikatsiyasi, chiziqli bog’langan ro’yhatlarni mantiqiy tasvirlash

Загружено в:

08.12.2024

Скачано:

0

Размер:

345.41015625 KB
Chiziqli bog’langan ro’yxatlar. Bog’langan ro’yxatlar haqida tushunchalar. Bog’langan ro&#39;yxatlar klassifikatsiyasi, chiziqli bog’langan ro’yhatlarni mantiqiy tasvirlash 1)А) богланган -руйхатлар Б) богланмаган –вектор,массив,стек,дек 2) А) чизикли -вектор,массив,стек,дек В) чизиксиз -дарахт,куп богламли руйхат,граф 3) А) статик -езув,вектор,массив Б) яримстатик -стек,дек,навбат В) динамик -руйхат,дарахт,графМАЬЛУМОТЛАР ТУЗИЛМАСИ Классификацияси Чизикли МТ-бу тартибланган тузилма булиб,хар бир элементи аник номерга эга. Бундай тузилмани куйидаги хоссалари мавжуд:хар бир элемент факатгина битта олдинги элементи булади ва иккита хар хил элементни бир хил кейинги элементи булиши мумкин эмас. Чизикли МТ- массив,сатр,езув,туплам,руйхат,стек, навбат,дек. Массив бу-номланган,бир турга тегишли элементлар туплами булиб,хар бир элемент индексга эга .Массив ОХ да битта ячейкада давомий блок куринишда сакланади. Сатр бу-символлар кетма-кетлиги. Езув бу-номланган майдонлар ва функциялар мажмуаси. Туплам бу-бир турга тегишли элементлар мажмуасси Жадвал бу-бир улчамли массив(вектор)булиб,элементларга мурожаат калит оркали утказилади. Roʼyxatlar Roʼyxatning umumiy koʼrinishiga misol : E 1 , E 2 , ..., E n , (n ≥0 boʼlib n fiksirlanmagan). Roʼyxat elementlari soni dastur bajarilishi davomida oʼzgarib turishi mumkin. Def. 1. Roʼyxat deb bir turga tegishli boʼlgan elementlar ketma- ketligiga aytiladi. Eslatm a Roʼyxatni tashkil etuvchi elementlar soni chegaralanmagan boʼlishi mumkin. Roʼyxatni mantiqiy tasvirlash Oshkormas(m assiv ) Oshkor(koʼrs atkichli) Def.1.1 . Roʼyxatni tashkil etuvchi elementlar soni n ga roʼyxat uzunligi deyiladi.  Bog&#39;langan ro&#39;y&#39;hatlar Def.1. Agar ro&#39;yhat elementlari ko&#39;rsatkichlar orqali bog&#39;langan bo&#39;lsa, u holda bunday tuzilmaga bog&#39;langan ro&#39;y&#39;hatlar deyiladi. Eslatm a Bog&#39;langan ro&#39;yhatlarning har bir elementi ikki xil maydonga ega tuzilma hisoblanadi. izoh Informatsion maydonda ro&#39;y&#39;hat elementi ma&#39;lumotlari, ko&#39;rsatkichlar maydonida esa mazkur element bilan bog&#39;langan tuzilmaning boshqa elementlari manzillari joylashgan bo&#39;ladi. P 1 va P 2 – o&#39;zaro bog&#39;langan elementlarni adreslarini o&#39;z ichiga oluvchi ko&#39;rsatkichlardir. Ma&#39;lumotlar Р 1 Р 2 Ma&#39;lumotlar Р 1 Р 2 Ma&#39;lumotlar Р 1 Р 2Misol. izoh Bog&#39;langan ro&#39;yhat elementining ko&#39;rsatkichlari maydoni soni bir nechta va turli xil bo&#39;lishi mumkin . Def.2. Ro&#39;yhat m bog&#39;lamli deyiladi, agar ro&#39;yhatning hech bo&#39;lmaganda bitta elementi ko&#39;pi bilan tuzilmaning m ta elementi bilan o&#39;zaro bog&#39;langan bo&#39;lsa.3 bog&#39;lamli ro&#39;yhatga misol Def.3. Agar bog&#39;langan ro&#39;yhat elementlari mavjud bo&#39;lmasa, u holda bunday ro&#39;yhat bo&#39;sh ro&#39;yhat deyiladi. - bo&#39;sh ro&#39;yhat Def.4. Agar element ko&#39;rsatkichi 0 yoki bo&#39;sh (NULL) bo&#39;lsa, u holda bu element ro&#39;yhatning eng so&#39;nggi elementi hisoblanadi. Def.5. Bog&#39;langan ro&#39;yhatda yana shunday bir ko&#39;rsatkich mavjud bo&#39;lib, u ro&#39;yhat boshini ko&#39;rsatadi ( Lst ). Lst=NULLDef.3. Ro&#39;yhatn ing afzalligi  Elementlarni qo&#39;shish, o&#39;chirish qulay va oson;  Ro&#39;yhat uzunligi faqatgina kompyuter hotirasi xajmi va ko&#39;rsatkich razryadiga bog&#39;liq;  Elementlarni dinamik tarzda qo&#39;shish va o&#39;chirish mumkin.  Ro&#39;yhatda element manzilini ro&#39;yhatdagi raqami bo&#39;yicha aniqlash murakkab;  Ko&#39;rsatkichlar maydoniga qo&#39;shimcha xotira vzarur bo&#39;ladi ( massivda kerak emas);  Ro&#39;yhatda ishlash massivga nisbatan sekinroq amalga oshadi (sababi, ro&#39;yhat elementiga murojaat undan oldingi elementlar orqali bo&#39;ladi);  Ro&#39;yhat elementlari xotirada tartibsiz joylashgan, bu esa protsessorni keshlashtirishga salbiy ta&#39;sir ko&#39;rsatadi;  Bog&#39;langan ro&#39;yhatlarda vektor amallarni bajarish qiyinroq (masalan, yig&#39;indini hisoblash); Ro&#39;yhatning kamchiligi Bog&#39;langan royhatlar chiziqli chiziqsiz Бир боғламли Ikki bog&#39;lamli Bir bog&#39;lamli Ko&#39;p bog&#39;lamli Ikki bog&#39;lamli Chiziqli ro&#39;yhatlarda elementlar orasidagi bog&#39;liqlik qat;iy tartiblangan bo&#39;lib, element ko&#39;rsatkichi o&#39;zidan navbatdagi yoki oldingi element adresini o&#39;z ichiga oladi. Misol. Chiziqli ro&#39;yhat Bog&#39;langan ro&#39;yhatlar ustida amallar  Ro&#39;yhatga yangi element qo&#39;shish;  ro&#39;yhatdan elementni o&#39;chirish;  ro&#39;yhatdan element qidirish;  ro&#39;yhat elementlarini chop etish mumkin. Eslatma: ro&#39;yhatning ixtiyoriy elementini o&#39;chirish, ixtiyoriy joyiga element qo&#39;shish mumkin. Bogʼlangan roʼyxat elementlari mantiqiy tasvirlanishda yozuv kabi ifodalanadi. Dasturda class orqali ifodalash mumkin: class Node{  public://klass ma&#39;lumotlariga tashqaridan bo&#39;ladigan murojaatga ruxsat berish  int info; // informatsion maydon  Node* next;// ko&#39;rsatkichli maydon  };  int main(){  Node *lst = NULL;// ro&#39;yhat boshi ko&#39;rsatkichi  } Bir bog&#39;lamli ro&#39;yhatlar Def.1 . Agar ro&#39;yhat elementlari (tuguni) faqatgina bitta ko&#39;rsatkichlar maydoniga ega bo&#39;lsa, u holda bunday tuzilmaga bir bog&#39;lamli yoki bir tomonlama yo&#39;naltirilgan ro&#39;yhat deyiladi. Eslatma Ro&#39;yhat elementlariga murojaat faqat ro&#39;yhat boshidan amalga oshiriladi. Teskari aloqa yo&#39;q. Eslatm a Ro&#39;yhat elementlari garchi ketma-ket tuzilmani tashkil etsada, ular xotirada tartibsiz joylashgan bo&#39;lishi mumkin. Ikki bog&#39;lamli ro&#39;yhat Ikki bog&#39;lamli ro&#39;yhat bu elementlari soni bir xil, faqatgina o&#39;zaro teskari ketma-ketlikda yozilgan ikkita bir bog&#39;lamli ro&#39;yhatdir. Bir va ikki bog&#39;lamli ro&#39;yhatlarni e&#39;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&#39;yhat oxiriga element qo&#39;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&#39;yhat boshidan element o&#39;chirish Node* p = new Node; if (lst == NULL) cout<<&#34;ro&#39;yhat bo&#39;sh&#34;; else { p = lst; lst = p->next ; delete(p); } Ro&#39;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&#39;yhat elementlarini ekranga chiqarish void print(Node *Lst) { Node* P = Lst; while(P) { cout <<&#34; &#34;<< P->inf<<&#34;-> &#34;; P = P->ptr; } cout << endl; }