Войти Регистрация

Docx

  • Рефераты
  • Дипломные работы
  • Прочее
    • Презентации
    • Рефераты
    • Курсовые работы
    • Дипломные работы
    • Диссертациии
    • Образовательные программы
    • Инфографика
    • Книги
    • Тесты

Информация о документе

Цена 3000UZS
Размер 967.6KB
Покупки 0
Дата загрузки 02 Декабрь 2024
Расширение pptx
Раздел Презентации
Предмет Информатика и ИТ

Продавец

Bohodir Jalolov

Xalqasimon bog‘langan ro‘yxatlar

Купить
Xalqasimon bog‘langan ro‘yxatlar Reja: 1. Bir bog‘lamli va ikki bog‘lamli xalqasimon ro‘yxatlar haqida tushuncha. 2. Ularni mantiqiy tasvirlash va ular ustida amallar bajarish algoritmlari Halqasimon ro‘yxatlar Halqasimon ro‘yxatlar oddiy ro‘yxat kabi bo‘lib, farqi shuki, unda ro‘yxat oxiri ro‘yxat boshiga ulangan bo‘ladi. Halqasimon ro‘yxatlar ikki xil bo‘ladi:  Halqasimon bir bog‘lamli  Halqasimon ikki bog‘lamli Halqasimon ro‘yxatlar ustida bajariladigan amallar  element qo‘shish  Element o‘chirish  Ro‘yxatni ko‘ruvdan o‘tkazish  Ro‘yxatni o‘chirish  Bo‘shlikka tekshirish Halqasimon bir bog‘lamli ro‘yxatlar  Halqasimon bir bog‘lamli ro‘yxat oddiy bir bog‘lamli ro‘yxatda eng so‘ngi element ko‘rsatkichiga ro‘yxat boshi elementi ko‘rsatkichi qiymatini o‘zlashtirish orqali hosil qilinadi. Halqasimon bir bog‘lamli ro‘yxatni C++ da e’lon qilish  struct Node{  int data; //информацион майдон  Node *Next;  };  Node *Head=NULL;//рўйхат боши кўрсаткичи  Node *Tail=NULL;//рўйхат охири кўрсаткичи Halqasimon bir bog‘lamli ro‘yxatga element qo‘shish  Bo‘sh bo‘lgan ro‘yxatga elementlar rasmdagi kabi kiritilishi kerak bo‘lsin: Yangi elementni e’lon qilamiz:  Node *temp=new Node; temp Algoritm dasturi  void Add(int x)  {  Node *temp=new Node; //янги элемент учун хотирадан жой ажратиш  temp->Next=Head;  temp->data=x;  if (Head!=NULL) {  Tail->Next=temp;  Tail=temp;  }  else Head=Tail=temp;  } Halqasimon bir bog‘lamli ro‘yxat boshidan element o‘chirish algoritmi  Quyidagi rasmda ro‘yxat boshidagi elementni o‘chirish amali ko‘rsatilgan:  1- elementni o‘chirish uchun uni ko‘rsatuvchi Head ni 2-elementga to‘g‘irlaymiz;  oxirgi element, ya’ni Tail ko‘rsatayotgan elementni ko‘rsatkich maydonini 2-elementga to‘g‘irlab qo‘yamiz;  1-elementni xotiradan o‘chirib tashlaymiz. Element o‘chirish algoritmining C++ da dasturi  void Del(){  Node *delItem=Head;//ўчириладиган элементни белгилаб олиш  Head=Head->Next;//рўйхат бошини кейинги элементга кўчириш  Tail->Next=Head;//охирги элемент кўрсаткичини 2-элементга кўчириш  delete delItem;//рўйхат бошидаги элементни ўчириш  } Halqasimon bir bog‘lamli ro‘yxat ni ekranga chiqarish  void Show()  {  Node *p=Head;  while (p!=Tail)  {  cout<<p->data<<&#34; &#34;;  p=p->Next;  }  cout<<p->data<<endl;  } Halqasimon ikki bog‘lamli ro‘yxat  Halqasimon ikki bog‘lamli ro‘yxatda xar bir element ikkita ko‘rsatkichli maydonga ega bo‘lib, ular o‘zidan oldingi va keyingi elementlarga ko‘rsatkich xisoblanadi. Birinchi elementning chap ko‘rsatkichi oxirgi elementni, oxirgi elementning o‘ng ko‘rsatkichi birinchi elementni ko‘rsatadi. Halqasimon ikki bog‘lamli ro‘yxatni C++ da e’lon qilish  struct Node  {  int info;  Node* next;// кейинги элементга кўрсаткич  Node* prev;//олдинги элементга кўрсаткич  };  Node *List=NULL, LastPtr=NULL; Halqasimon ikki bog‘lamli ro‘yxatga element kiritish algoritmi Yangi element yaratamiz: Node *r= new Node; 2. Bu element informatsion maydoniga ma’lumot kiritamiz: p->data = x ; 3. Bu elementni quyidagi rasmdagi 2- elementdan keyin qo‘shish uchun 2- element, ya’ni oxirgi element adresi kerak bo‘ladi. Uni List ko‘rsatayotgan 1-elementning prev maydonidan olsa bo‘ladi. ya’ni Node *LastPtr=List- >prev; Demak, oxirgi elementning adresi LastPtr da saqlanayapti. Halqasimon ikki bog‘lamli ro‘yxatga element kiritish algoritmi 4. Oxirgi elementning next maydoniga yangi element r ni adresini o‘zlashtiramiz: LastPtr ->next = p; Yangi elementning prev maydoniga esa shu oxirgi elementning adresini o‘zlashtiramiz, ya’ni: p ->prev= LastPtr; Hozircha ro‘yxatimiz quyidagicha ko‘rinishga ega bo‘ldi: Halqasimon ikki bog‘lamli ro‘yxatga element kiritish algoritmi  5. Navbatdagi qilinadigan ishimiz ro‘yxat boshi va oxirgi elementlarni o‘zaro bog‘lab qo‘yish bo‘ladi, ya’ni;  p->next = List;  List->prev = p;  Ushbu amallardan keyin yangi elementimiz ro‘yxatga qo‘shiladi: Algoritm dasturi void AddList(int value){ Node *p=new Node; //создание нового элемента p->data=value; //присвоение элементу значения if (List==NULL) { p->next=p; //установка указателя next p->prev=p; //установка указателя prev List =p; //определяется голова списка } else { Node *LastPtr= List ->prev; LastPtr->next=p; p->prev=LastPtr; p->next= List; List ->prev=p;} } Halqasimon ikki bog‘lamli ro‘yxatdan element o‘chirish algoritmi  O‘chirilishi kerak bo‘lgan joriy element r dan oldin turgan element adresini prev ko‘rsatkichga o‘zlashtirib olamiz  Node *Prev=p->prev;  oldin turgan elementning next maydoniga r dan keyin turgan element adresini yozamiz:  Prev->next=p->next;  joriy elementdan keyin turgan elementni Next deb belgilab olib, uning prev maydoniga joriy elementdan oldin kelgan elementni adresini o‘zlashtiramiz: Node *Next=p->nextI; Next->prev=Prev; delete(p); Natijada joriy r element o‘chiriladi.  void delete(Node *p){  Node *Prev=p->prev;  Prev->next=p->next;  Node * Next=p->next;  Next->prev=Prev;  delete(p);  } Xalqasimon ikki bog‘lamli ro‘yxat elementlarini ekranga chiqarish algoritmi va dasturi  void printList(Node* List)  {  Node *p=List;  Node *firstItem=List; //чексиз циклга тушиб қолмаслик учун 1- элементни сақлаб оламиз  while(p)  {  cout<<p->data<<“ ”;  p=p->next;  if(p==firstItem) break;  };  }
Купить
  • Похожие документы

  • Operatsion tizimlarda journaling file system
  • I/O scheduling algoritmlari
  • O‘rta Osiyo kutubxonalarining o‘rganilish masalalari
  • Funksiyalar va arrow function
  • Tashkilot xodimlari ma’lumotlarini jamlovchi tizim

Подтвердить покупку

Да Нет

© Copyright 2019-2026.

  • Инструкция по снятию с баланса
  • Контакты
  • Инструкция использования сайта
  • Инструкция загрузки документов
  • O'zbekcha