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

Docx

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

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

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

Продавец

Bohodir Jalolov

Konteynerlarning adapterlari

Купить
D A S T U R L A S H 1 1DASTURLASH 2 Konteynerlarnig adapterlari.04 MAVZU D A S T U R L A S H 2Mа’ruza rejasi 2Funktorlarning qo’llanilishi. 4 Stack konteyneri.1 Navbat (queue). Priority_queue (ustuvor navbatlar).2 Konteynerlar bilan ishlash algoritmlari.3 Xulosa5 D A S T U R L A S H 2 3Stek Stek deb shunday strukturaga aytiladiki, stekka kelib tushgan oxirgi elementga birinchi bo’lib xizmat ko’rsatiladi va stekdan chiqariladi. Mazkur ko’rinishdagi xizmat ko’rsatishni LIFO (Last input-First output, ya’ni oxirgi kelgan – birinchi ketadi) nomlash qabul qilingan. Stek bir tomondan ochiq bo’ladi. Stack = g’aram, to’p, bo’glam (angl.) Masalan: D A S T U R L A S H 2 4Stekga misol Masala: [] , {} va () uchta tiplardan tashkil topgan satr berilgan . Qavslar to’g’ri qo’yilganligini tekshiring (boshqa simvollarga qaramagan holda). Masalan: [()]{} ][ [({)]} Yechim: qavslar ichma ichligini hisoblagich. Agarda hisoblagich 0 bo’lsa, qavs to’gri qo’yilgan bo’ladi.Masala: [] , {} va () uchta tiplardan tashkil topgan satr berilgan . Qavslar to’g’ri qo’yilganligini tekshiring (boshqa simvollarga qaramagan holda). Masalan: [()]{} ][ [({)]} Yechim: qavslar ichma ichligini hisoblagich. Agarda hisoblagich 0 bo’lsa, qavs to’gri qo’yilgan bo’ladi. Bu masalani uchta hisoblagich bilan qilsa bo’ladimi ?? [ ( { ) ] } (: 0 1 0 [: 0 1 0 {: 0 1 0[ ( { ) ] }[ ( { ) ] }( ( ) ) ( ) 1 2 1 0 1 0( ( ) ) ( )( ( ) ) ( ) ( ( ) ) ) ( 1 2 1 0 -1 0( ( ) ) ) (( ( ) ) D A S T U R L A S H 2 5Davomi… [ ( ( ) ) ] { }[ ( ( ) ) ] { } [ [( [(( [(( [( [ { { Algoritm: 1) Boshida stek bo’sh; 2) Sikl boshida satr barcha simvollarini tartib bo’yiicha ko’rib chiqamiz; 3) Agar navbatdagi simvol ochiladigan qavs bo’lsa, uni stek boshiga o’tkazamiz; 4) Agar simvol yopiladigan qavs bo’lsa, stek boshini tekshiramiz: u yerda berilgan qavsga mos ochiluvchi qavs bo’lishi lozim (agarda bunday bo’lmasa, u holda xatolik); 5) Agar stek oxiri bo’sh bo’lmasa, u holda ifoda noto’g’ri. { D A S T U R L A S H 2 6Stekni amalga oshirish (massiv) Struktura-stek: const MAXSIZE = 100; struct Stack { char data[MAXSIZE]; // 100 ta simvolli stek int size; // elementlar soni };const MAXSIZE = 100; struct Stack { char data[MAXSIZE]; // 100 ta simvolli stek int size; // elementlar soni }; Element qo’shish: int Push ( Stack &S, char x ) { if ( S.size == MAXSIZE ) return 0; S.data[S.size] = x; S.size ++; return 1; }int Push ( Stack &S, char x ) { if ( S.size == MAXSIZE ) return 0; S.data[S.size] = x; S.size ++; return 1; } xatolik: stekni to’ldirishxatolik: stekni to’ldirish Element qo’shishElement qo’shish Xatolik yo’qXatolik yo’q D A S T U R L A S H 2 7Stekni amalga oshirish (massiv) char Pop ( Stack &S ) { if ( S.size == 0 ) return char(255); S.size --; return S.data[S.size]; }char Pop ( Stack &S ) { if ( S.size == 0 ) return char(255); S.size --; return S.data[S.size]; }Boshidan elementni o’chirish: Bo’shmi yoki yo’q? int isEmpty ( Stack &S ) { if ( S.size == 0 ) return 1; else return 0; }int isEmpty ( Stack &S ) { if ( S.size == 0 ) return 1; else return 0; } xatolik: stek bo’sh xatolik: stek bo’sh int isEmpty ( Stack &S ) { return (S.size == 0); }int isEmpty ( Stack &S ) { return (S.size == 0); } D A S T U R L A S H 2 8 D A S T U R L A S H 2 9Stek Universal stek har bir tuguni axborot qismi void turidagi ko’rsatkichdan iborat strukturadir struct slist_node { void* info; struct slist_node* pred; };struct slist_node { void* info; struct slist_node* pred; }; Stek tuguni ro’yxat tugunidan farqi shundaki , o’zidan oldingi tugun adresini saqlovchi ko’rsatkich ishlatilgan. D A S T U R L A S H 2 10Stek Stek o’zi alohida struktura sifatida kiritilgan struct stack { struct slist_node* end; int size; int width; };struct stack { struct slist_node* end; int size; int width; }; stackda end oxirgi tugunga ko’rsatkich, width ma’lumot hajmi, size navbatdagi elementlar soni. D A S T U R L A S H 2 11Stek (asosiy funksiyalar) void pop(struct stack*p) – stek oxiridagi elementni o’chirish. void push(struct stack*p, void* val) –stek oxiriga element qo’shish. Bu yerda val kiritilayotgan ma’lumotga ko’rsatkich. char* top(struct stack p) – stek oxiridagi tugun axborot qismiga ko’rsatkich qaytarish. int empty(struct stack p) – stek bo’shligini tekshirish. int size (struct stack p) – stek elementlari soni. Bundan tashqari stekni inisiallash uchun quyidagi sarlavhali funksiya kiritilgan void ini_stack (struct stack* p, int n) - n kiritilayotgan ma’lumotlar hajmi.void pop(struct stack*p) – stek oxiridagi elementni o’chirish. void push(struct stack*p, void* val) –stek oxiriga element qo’shish. Bu yerda val kiritilayotgan ma’lumotga ko’rsatkich. char* top(struct stack p) – D A S T U R L A S H 2 12Navbat Biz navbat bilan ko’p joylarda duch kelamiz: magazinda, o’qishda, ishda va hokazo. Odatda biz unga e’tibor bermaymiz. Dasturiy tizimlarda ham bu navbat tushunchasi ishlatiladi. Masalan, hujjatni chop etish uchun printerga jo’natsak, u navbatga turadi. Navbat bizga nima uchun kerak!! Alabatta navbat 1-o’rinda tartib o’rnatish uchun zarur. Navbat qanday ishlaydi!! D A S T U R L A S H 2 13Navbat 123456 Navbat – chiziqli ma’lumotlar strukturasi bo’lib, elementni faqat navbat oxiridan kiritish (navbat oxiri), elementni o’chirish esa faqat navbat boshqa oxiridan amalga oshiriladi (navbat boshi). FIFO = First In – First Out «Birinchi kelgan, birinchi ketadi». Navbat ustida amallar: 1) Navbat oxiridan element qo’shish ( PushTail = oxiridan kiritish) ; 2) Navbat boshidan elementni o’chirish (Pop). D A S T U R L A S H 2 14Navbatni amalga oshirish (massiv) 1 1 2 1 2 3 1 2 3 Eng oddiy usul 1) Oldindan massivni belgilash; 2) Navbatdan tanlashda barcha elementlarni surish lozim. D A S T U R L A S H 2 15Navbatni amalga oshirish(xalqali massiv) 1 2HeadHead TailTail 1 2 3 2 3 2 3 4 3 4 Bunday navbatda nechta element saqlash mumikin ?? «navbat bo’sh» va «navbat to’la» qanday farqlash mumkin??3 45 09 35 0E 221F 36 01 09 48 48 3914 01 D A S T U R L A S H 2 16Navbatni amalga oshirish(xalqali massiv) const MAXSIZE = 100; struct Queue { int data[MAXSIZE]; int head, tail; };const MAXSIZE = 100; struct Queue { int data[MAXSIZE]; int head, tail; };Ma’lumotlar strukturasi: Navbatga qo’shish: int PushTail ( Queue &Q, int x ) { if ( Q.head == (Q.tail+2) % MAXSIZE ) return 0; Q.tail = (Q.tail + 1) % MAXSIZE; Q.data[Q.tail] = x; return 1; }int PushTail ( Queue &Q, int x ) { if ( Q.head == (Q.tail+2) % MAXSIZE ) return 0; Q.tail = (Q.tail + 1) % MAXSIZE; Q.data[Q.tail] = x; return 1; } xalqani berkitish xalqani berkitish % MAXSIZE Navbat to’la, qo’shib bo’lmaydiNavbat to’la, qo’shib bo’lmaydi Muvaffaqiyatli qo’shildiMuvaffaqiyatli qo’shildi D A S T U R L A S H 2 17Navbatni amalga oshirish(xalqali massiv) Navbatdan tanlash: int Pop ( Queue &Q ) { int temp; if ( Q.head == (Q.tail + 1) % MAXSIZE ) return 32767; temp = Q.data[Q.head]; Q.head = (Q.head + 1) % MAXSIZE; return temp; }int Pop ( Queue &Q ) { int temp; if ( Q.head == (Q.tail + 1) % MAXSIZE ) return 32767; temp = Q.data[Q.head]; Q.head = (Q.head + 1) % MAXSIZE; return temp; } navbat bo’shnavbat bo’sh birinchi elementni olishbirinchi elementni olish uni navbatdan o’chirishuni navbatdan o’chirish D A S T U R L A S H 2 18Ustuvor Navbat (Priority_queue) Biz hammamiz “Metan”da navbatda turganmiz. Navbatni har xil turlari mavjud. Masalan, prioritet bo’yicha navbat. Hayotdan misol: veteranlar va nogironlar navbatsiz o’tkaziladi (ularni prioriteti yuqori). Klassik navbatni ko’rib chiqamiz: birinchi kelgan birinchi ketadi (FIFO – first input, first output) Navbat har ikkala tomondan ochiq bo’ladi. D A S T U R L A S H 2 19Ustuvor Navbat (Priority_queue) Universal navbat har bir tuguni axborot qismi void turidagi ko’rsatkichdan iborat strukturadir: Bu yerda beg birinchi tugunga ko’rsatkich, end oxirgi tugunga ko’rsatkich, width ma’lumot hajmi, size navbatdagi elementlar soni struct slist_node { void* info; struct slist_node* next; }; struct slist_node { void* info; struct slist_node* next; }; struct que { struct slist_node* beg; struct slist_node* end; int size; int width; };struct que { struct slist_node* beg; struct slist_node* end; int size; int width; }; D A S T U R L A S H 2 20Ustuvor Navbat (asosiy funksiyalar) void pop(struct que*p) – navbat oxiridagi elementni o’chirish. void push(struct que*p, void* val) –navbat boshiga element qo’shish. Bu yerda val kiritilayotgan ma’lumotga ko’rsatkich. char* top(struct que p) – navbat boshidagi tugun axborot qismiga ko’rsatkich qaytarish. int empty(struct que p) – navbat bo’shligini tekshirish. int size (struct que p) – navbat elementlari soni. Bundan tashqari navbatni inisiallash uchun quyidagi sarlavhali funksiya kiritilgan. void ini_que(struct que* p,int n) – Bu yerda n kiritilayotgan ma’lumotlar hajmi. D A S T U R L A S H 2 21DEK(deque) Dek(deque = double ended queue, ikki tomonlama navbat) – bu ham chiziqli struktura bo’lib unda yangi elementni ikki tomonidan qo’shish mumkin. 12 34 56 Dek ustida amallar: 1) Boshidan element qo’shish (Push); 2) Boshidan element o’chirish (Pop) ; 3) Oxiridan element qo’shish (PushTail) ; 4) Oxiridan element o’chirish (PopTail) . D A S T U R L A S H 2 22Funktorlar • Funktorlar - bu funksiyalar kabi murojaat qilish (chaqirish) mumkin bo’lgan ixtiyoriy tipdagi obyektlardir. Ya’ni () amali qayta yuklangan obyektlardir. D A S T U R L A S H 2 231.Funktorlarga oid dastur D A S T U R L A S H 2 24Davomi… D A S T U R L A S H 2 252.Funktorlarga oid dastur D A S T U R L A S H 2 26Davomi… D A S T U R L A S H 2 XULOSA 27Xulosa o’rnida shuni ta’kidlab o’tish joizki, konteynerli adapterlarning xotira jihatidan chegaralanmaganligi hamda bu konteynerlarga ma’lumot qo’shish va o’chirish qulayligi bor. Bugungi darsimizda:  Stack konteyneri  Navbat  Ustuvor Navbat (Priority_queue)  DEK(deque) konteynerlari bilan tanishdik. D A S T U R L A S H 1 28E’TIBORINGIZ UCHUN RAXMAT!
Купить
  • Похожие документы

  • 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