konteynerlar adapterlari

PPT 40 pages 3.9 MB Free download

Page preview (5 pages)

Scroll down 👇
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

Want to read more?

Download all 40 pages for free via Telegram.

Download full file

About "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...

This file contains 40 pages in PPT format (3.9 MB). To download "konteynerlar adapterlari", click the Telegram button on the left.

Tags: konteynerlar adapterlari PPT 40 pages Free download Telegram