konteynerlar adapterlari

PPT 40 стр. 3,9 МБ Бесплатная загрузка

Предварительный просмотр (5 стр.)

Прокрутите вниз 👇
1 / 40
slayd 1 mavzu: konteynerlar adapterlari konteynerlar adapterlari reja: konteyner adapterlari haqida; asosiy ma’lumotlar tarkibi; stack sinfi; queue sinfi; priority_queue sinfi; xulosa. * konteyner adapterlari haqida c++ standart kutubxonasida konteyner adapterlarining uch turi aniqlangan: stack, navbat(queue); priority_queue. har biri standart ma'lumotlar tuzilishi uchun aniq boshqariladigan interfeysni ta'minlash uchun ba'zi bazaviy konteynerlar sinfining funktsional imkoniyatlarini cheklaydi. * stek 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: * 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. bu masalani uchta hisoblagich bilan qilsa bo’ladimi? ? [ ( { …
2 / 40
{ if ( s.size == maxsize ) return 0; s.data[s.size] = x; s.size ++; return 1; } xatolik: stekni to’ldirish element qo’shish xatolik yo’q stekni amalga oshirish (massiv) * * stekni amalga oshirish (massiv) 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; } xatolik: stek bo’sh int isempty ( stack &s ) { return (s.size == 0); } * * dastur void main() { char br1[3] = { '(', '[', '{' }; char br2[3] = { ')', ']', '}' }; char s[80], upper; int i, k, error = 0; stack s; s.size = 0; printf(“qavsli ifodani kiriting > "); gets ( s ); ... // qayta ishlovchi asosiy sikl if ( ! error && …
3 / 40
n, 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! ! * navbat 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: navbat oxiridan element qo’shish (pushtail = oxiridan kiritish); navbat boshidan elementni o’chirish (pop). 1 2 3 4 5 6 * * que uchun aniqlangan funksiyalar * back() funksiyasi * front() funksiyasi * queue orqali stack yaratish * queue orqali stack yaratish * navbatni amalga oshirish (massiv) eng oddiy usul oldindan massivni belgilash; navbatdan tanlashda barcha elementlarni surish lozim. 1 1 2 1 2 3 1 2 3 * * navbatni amalga oshirish(xalqali massiv) 1 2 head tail 1 2 3 2 3 2 …
4 / 40
* * navbatni amalga oshirish (ro’yxatlar) struct node { int data; node *next; }; typedef node *pnode; struct queue { pnode head, tail; }; tugun strukturasi: «navbat» ma’lumotlar tiplari: * * void pushtail ( queue &q, int x ) { pnode newnode; newnode = new node; newnode->data = x; newnode->next = null; if ( q.tail ) q.tail->next = newnode; q.tail = newnode; if ( q.head == null ) q.head = q.tail; } element qo’shish: sozdaem noviy uzel esli v spiske uje chto-to bilo, dobavlyaem v konets esli v spiske nichego ne bilo, … navbatni amalga oshirish (ro’yxatlar) * * int pop ( queue &q ) { pnode top = q.head; int x; if ( top == null ) return 32767; x = top->data; q.head = top->next; if ( q.head == null ) q.tail = null; delete top; return x; } element tanlash: agar ro’yxat bo’sh, … 1-element qo’shildi agar ro’yxatda …
5 / 40
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. * priority_queue sinfi priority_queue - har doim eng yuqori yoki eng yuqori ustuvorlikka ega bo'lgan ba'zi bir asosiy konteyner turining yuqori elementiga kirishni cheklaydigan funktsiyani cheklashni ta'minlaydigan shablon konteyner adapteri sinfidir. priority_queue-ga yangi elementlar qo'shilishi mumkin, va prioritet_queue ustki elementi tekshirilishi yoki olib tashlanishi mumkin. sintaksisi: template , class compare= less > class priority_queue * priority_queue::empty() * push(), pop() va top() funksiyalaridan foydalanish * dijkstra’s shortest path algorithm using priority_queue * asosiy ma'lumotlar tuzilmalari 4 ta: stack – last in first out navbat(queue) - first in first out priority_queue. que va priority_queue ning farqi: priority_queue da kirilayaorgan elementlar tartiblangan shaklda joylashtiriladi. xulosa

Хотите читать дальше?

Скачайте все 40 страниц бесплатно через Telegram.

Скачать полный файл

О "konteynerlar adapterlari"

slayd 1 mavzu: konteynerlar adapterlari konteynerlar adapterlari reja: konteyner adapterlari haqida; asosiy ma’lumotlar tarkibi; stack sinfi; queue sinfi; priority_queue sinfi; xulosa. * konteyner adapterlari haqida c++ standart kutubxonasida konteyner adapterlarining uch turi aniqlangan: stack, navbat(queue); priority_queue. har biri standart ma'lumotlar tuzilishi uchun aniq boshqariladigan interfeysni ta'minlash uchun ba'zi bazaviy konteynerlar sinfining funktsional imkoniyatlarini cheklaydi. * stek 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 o...

Этот файл содержит 40 стр. в формате PPT (3,9 МБ). Чтобы скачать "konteynerlar adapterlari", нажмите кнопку Telegram слева.

Теги: konteynerlar adapterlari PPT 40 стр. Бесплатная загрузка Telegram