1 / 16

Кыргыз -Т үрк “Манас” университети Инженердик факультет Компьютердик инженерия бөлүмү

Кыргыз -Т үрк “Манас” университети Инженердик факультет Компьютердик инженерия бөлүмү. Тема: Тизмелүү структуралар (Сызыктуу тизменин түшүнүгү. Сызыктуу тизменин үстүнөн жүргүзүлгөн амалдар. Стек, кезек, дек түшүнүктөрү жана аларды колдонуу. Приоритеттүү кезектер ). 1 3 04.010 10

Download Presentation

Кыргыз -Т үрк “Манас” университети Инженердик факультет Компьютердик инженерия бөлүмү

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Кыргыз-Түрк “Манас” университетиИнженердик факультетКомпьютердик инженерия бөлүмү Тема: Тизмелүү структуралар (Сызыктуу тизменин түшүнүгү. Сызыктуу тизменин үстүнөн жүргүзүлгөн амалдар. Стек, кезек, дек түшүнүктөрү жана аларды колдонуу. Приоритеттүү кезектер). 1304.01010 Канат Муратов Окутуучу: Айбек Аданбаев БИШКЕК 2014

  2. Сызыктуу тизме: • Бир-бирине байланышкан бир түрдөгү элементтердин тобу сызыктуу тизме деп аталат жана бул топтун ичиндеги ар бир элемент кандайдыр бир жол менен өзүнөн кийинки элементти аныктап берет. Стек жана кезектен айырмаланып, тизмеде жаңы элементти каалаган жерге кошсо болот жана каалаган жерден өчүрүп таштаса болот. • Тизмелүү структуралар башкаларга салыштырмалуу ийкемдүү болушат, бирок ишке ашырылышы татаалыраак. Стек жана кезектер сызыктуу тизменин жеке учуру деп айтсак жаңылышпайбыз, себеби айырмасы: элементтерди кошуп-чийүү амалдары стек жана кезектин аяктарында аткарылат. Тизме менен төмөнкү амалдарды аткарсак болот: • Көрсөтүлгөн элементтен кийин же ага чейин жаңы элементти кошуу жана элементти кошууга текшерүүсүн жүргүзүү; • Көрсөтүлгөн элементти өчүрүү; • Тизменин биринчи элементинен тартып акыркы элементке чейин берилген амалдарды иштетип өтүү; • Берилген элементти тизмеден издөө. • Тизмелерди ишке ашыруунун эки түрү бар: • 1.Статикалык • 2.Динамикалык • Массивдин базасында эки жол менен статикалык түрүн ишке ашырса болот. Тизмелер

  3. 1-жолу: • Бир бош уяча бар экендигин же массивде жок дегенде бир элемент бар экендигин тизмедеги элементтердин санын чыгарган эсепчинин жардамы менен аныктайбыз. Берилген элементти издөөнү дагы массивдеги издөө алгоритмдерин колдонуп жасасак болот. • Жаңы элементти кыстаруу үчүн, мисал катары i < N , i номеринен N-ге чейинки элементтерди бирден оңго жылдырабыз (бул жерде массивде бир ашыкча элемент болушу керек). Амалды эң аягынан баштоо керек, б.а. N-ди N+1 ордуна, N-1 – N ордуна ж.б. Бошогон i-чи уячага жаңы элементти жазабыз. • Ушул ирээтти тетирисинен буруп, каалаган элементти өчүрүп койсок болот. Мисал үчүн, i-ни өчүрүү үчүн i-элементти бошотобуз жана кийинки элементтерди бирден солго жылдырабыз, б.а.  i+1 – iнин ордуна, i+2 – i+1дин ордуна ж.б.у.с.

  4. Массивдин уячалардын маанилерин которуу амалдары компьютерге оор болуп калышы мүмкүн. Бул учурда көрсөткүчтөрдү колдонсок болот. Ошондо маанилер ордунда эле калып, ал эми которуу болсо көрсөткүчтөрдүн арасында эле жүргүзүлөт.

  5. Стек (англ.stack — стопка)- LIFO принциби боюнча уюштурулган элементтеренинин тизмеси (англ.last in — first out, «акыркы кирди — биринчи чыкты»). Кобунчо стекти бири-бирине коюлган табактар же мылтыктын магазини менен салыштырышат, устунон экинчини жетиш учун эн устункуну алып салыш керек. Стек

  6. 1946 жылы Алан Тьюринг стек деген тушунукту киргизди. Бирок 1957 немистер Клаус Самельсон и Фридрих Л. Бауэр патент алышты. • Кээбиртилдерде (мисалы:Lisp, Pythonж.б.) ар кандайтизмени стек депайтаалабыз, анткени POP жана PUSH операцияларыколдонулат. • push Стектинаягынакошуужаныэлементтикошуу • pop Акыркыэлементтичыгаруу • back Акыркыэлементтинмаанисинбилуу (очурбойтуруп) • Size элементтердин саны • Clear Элементтердиочуруу

  7. Program Stack_Test;const • N=30; • var • stack: array[0..N] of char;slen, pos: integer; • procedure push(i:char);begin • if pos < slen thenbegin • stack[pos] := i;pos := pos + 1 • endelse • writeln('Стек полон.'); • end;function pop():char;begin • if pos=0 thenbegin • writeln('Стек пуст.');pop := 0 • endelsebegin • pos := pos - 1;pop := stack[pos] • end; • end; Pos – алдынкыачыкпозициясыныниндекси . ЭгердеPos = 0 – стек бош. Паскальда стекти ишке ашыруу:

  8. FIFO принциби боюнча уюштурулган элементтеренинин тизмеси (англ.firstin — first out, « биринчи кирди — биринчи чыкты») . Элементтерди кошуу (enqueue деген соз менен белгиленет — кезекке коюу) кезектин аягына коюлат, тандоо-кезектин башынан эле болот (enqueue деген соз менен белгиленет  — кезектен алуу),ошондо тандалган элемент очурулот. Кезек учун мисал катары дукондуже жононкойтрубаныалсак болот. Кезек

  9. Кезектердинклассификациясы: • Архитектурасыбоюнча (СызыктуужанаАйлана) • Жазууларынпозицияларынын саны боюнча (Жонокойжанаприорететуу) Тажрыйбадакезектербиролчомдуу массив мененишкеашырылат

  10. Programm Queue_Test;var q:array[0..30] of Integer;  qnext, (* Индекс занесения *)  qindex, (* Индекс извлечения *)  qlength:Integer; (* Длина очереди *)procedure qstore(i:Integer); (* Процедура записи в очерель *)begin if (qnext+1)<qlength then begin  qnext:=qnext+1;  q[qnext]:=i end else  writeln('Мест нет')end;function qretrieve():Integer; (* Функция считывания из очереди *)begin if qindex=qnext then begin  writeln('Очередь пуста');  qretrieve:=0; end else begin  qindex:=qindex+1;  qretrieve:=q[qindex] end;end; Паскальда кезекти колдонуу:

  11. Функция qretrieve() кезектен биринчи элементти анан очуруп салат. Эгерде кезектен бут элементтер алынса анда аны бош десек болот.

  12. Приоритеттуу кезек- (англ.priority queue) — 3 операцияны камтыган абстрактык берилиштер туру(АБТ) Приоритеттуу кезек-

  13. Деком (англ. deque – аббревиатура  double-endedqueue, Эки-тараптуукезек), LIFOжанаFIFOпринциби боюнча уюштурулган элементтеренинин тизмеси. Дектинкомандалары: • push_front Жаны элемент киргизуу • push_back Жаны элемент аягынакиргизуу • pop_front Биринчиэлементтичыгаруу • pop_back Акыркыэлементтичыгаруу • front Биринчиэлементтинмаанисинбилуу (очурбойтуруп) • back Акыркыэлементтинмаанисинбилуу (очурбойтуруп) • size элементтердинсаны • clear Элементтердиочуруу Дек

  14. Print “THE END!”

More Related