Submit Search
Upload
Өгөгдлийн бүтэц 10
•
1 like
•
1,004 views
International Ulaanbaatar University
Follow
Өгөгдлийн бүтэц 10
Read less
Read more
Education
Report
Share
Report
Share
1 of 32
Recommended
Өгөгдлийн бүтэц 8,9
Өгөгдлийн бүтэц 8,9
International Ulaanbaatar University
Өгөгдлийн бүтэц 8,9
Өгөгдлийн бүтэц 15
Өгөгдлийн бүтэц 15
International Ulaanbaatar University
Өгөгдлийн бүтэц 15
Dsi lec5,6
Dsi lec5,6
International Ulaanbaatar University
Өгөгдлийн бүтэц 5,6
Өгөгдлийн бүтэц 12
Өгөгдлийн бүтэц 12
International Ulaanbaatar University
Өгөгдлийн бүтэц 12
Өгөгдлийн бүтэц 14
Өгөгдлийн бүтэц 14
International Ulaanbaatar University
Өгөгдлийн бүтэц 14
Эрэмбэлэлт хайлтын аргууд
Эрэмбэлэлт хайлтын аргууд
Bayalagmaa Davaanyam
Түргэн эрэмбэлэх арга – Quick sort Хайлтын тухай Шугаман хайлтын арга Хоёртын хайлтын арга Шугаман хайлтын арга
Лекц 10: (Рекурс)
Лекц 10: (Рекурс)
Мөнхбаярын Цэцэнцэнгэл
Рекурс, Рекурсив функц
Өгөгдлийн бүтэц 13
Өгөгдлийн бүтэц 13
International Ulaanbaatar University
Өгөгдлийн бүтэц 13
Recommended
Өгөгдлийн бүтэц 8,9
Өгөгдлийн бүтэц 8,9
International Ulaanbaatar University
Өгөгдлийн бүтэц 8,9
Өгөгдлийн бүтэц 15
Өгөгдлийн бүтэц 15
International Ulaanbaatar University
Өгөгдлийн бүтэц 15
Dsi lec5,6
Dsi lec5,6
International Ulaanbaatar University
Өгөгдлийн бүтэц 5,6
Өгөгдлийн бүтэц 12
Өгөгдлийн бүтэц 12
International Ulaanbaatar University
Өгөгдлийн бүтэц 12
Өгөгдлийн бүтэц 14
Өгөгдлийн бүтэц 14
International Ulaanbaatar University
Өгөгдлийн бүтэц 14
Эрэмбэлэлт хайлтын аргууд
Эрэмбэлэлт хайлтын аргууд
Bayalagmaa Davaanyam
Түргэн эрэмбэлэх арга – Quick sort Хайлтын тухай Шугаман хайлтын арга Хоёртын хайлтын арга Шугаман хайлтын арга
Лекц 10: (Рекурс)
Лекц 10: (Рекурс)
Мөнхбаярын Цэцэнцэнгэл
Рекурс, Рекурсив функц
Өгөгдлийн бүтэц 13
Өгөгдлийн бүтэц 13
International Ulaanbaatar University
Өгөгдлийн бүтэц 13
Datastructure algoritm
Datastructure algoritm
Nergui Batjargal
ffff
C cons
C cons
Onon Tuul
Давтан суралцагчдад
Лекц №13
Лекц №13
Amarsaikhan Tuvshinbayar
u.cs101
Лекц 9(Заагч)
Лекц 9(Заагч)
Мөнхбаярын Цэцэнцэнгэл
Заагч
Өгөгдлийн бүтэц
Өгөгдлийн бүтэц
Muuluu
12
U.cs101 алгоритм программчлал-2
U.cs101 алгоритм программчлал-2
Badral Khurelbaatar
Лекц2
U.cs101 алгоритм программчлал-3
U.cs101 алгоритм программчлал-3
Badral Khurelbaatar
Лекц 3
Lesson 7
Lesson 7
Lha Bolorerdene
U.cs101 алгоритм программчлал-5 zasvar badral(1)
U.cs101 алгоритм программчлал-5 zasvar badral(1)
Badral Khurelbaatar
lection 5
Өгөгдлийн бүтэц 11
Өгөгдлийн бүтэц 11
International Ulaanbaatar University
Өгөгдлийн бүтэц 11
Sw203 Lecture6 Inheritance
Sw203 Lecture6 Inheritance
Jargalsaikhan Alyeksandr
удамшил
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
Bayalagmaa Davaanyam
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
Bayalagmaa Davaanyam
Dsi lec7
Dsi lec7
International Ulaanbaatar University
Өгөгдлийн бүтэц 7
Лекц №11
Лекц №11
Amarsaikhan Tuvshinbayar
u.cs101
It101 lec6 10.06
It101 lec6 10.06
Nergui Batjargal
6
Day 1 database
Day 1 database
ETC
Давталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогууд
Баярсайхан Л
U.cs101 lecture 6
U.cs101 lecture 6
Badral Khurelbaatar
Лекц 6
Letcure5
Letcure5
Oidov Umbelee
Lec8
Lec8
International Ulaanbaatar University
Lec8
Lec7
Lec7
International Ulaanbaatar University
Lec7
More Related Content
What's hot
Datastructure algoritm
Datastructure algoritm
Nergui Batjargal
ffff
C cons
C cons
Onon Tuul
Давтан суралцагчдад
Лекц №13
Лекц №13
Amarsaikhan Tuvshinbayar
u.cs101
Лекц 9(Заагч)
Лекц 9(Заагч)
Мөнхбаярын Цэцэнцэнгэл
Заагч
Өгөгдлийн бүтэц
Өгөгдлийн бүтэц
Muuluu
12
U.cs101 алгоритм программчлал-2
U.cs101 алгоритм программчлал-2
Badral Khurelbaatar
Лекц2
U.cs101 алгоритм программчлал-3
U.cs101 алгоритм программчлал-3
Badral Khurelbaatar
Лекц 3
Lesson 7
Lesson 7
Lha Bolorerdene
U.cs101 алгоритм программчлал-5 zasvar badral(1)
U.cs101 алгоритм программчлал-5 zasvar badral(1)
Badral Khurelbaatar
lection 5
Өгөгдлийн бүтэц 11
Өгөгдлийн бүтэц 11
International Ulaanbaatar University
Өгөгдлийн бүтэц 11
Sw203 Lecture6 Inheritance
Sw203 Lecture6 Inheritance
Jargalsaikhan Alyeksandr
удамшил
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
Bayalagmaa Davaanyam
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
Bayalagmaa Davaanyam
Dsi lec7
Dsi lec7
International Ulaanbaatar University
Өгөгдлийн бүтэц 7
Лекц №11
Лекц №11
Amarsaikhan Tuvshinbayar
u.cs101
It101 lec6 10.06
It101 lec6 10.06
Nergui Batjargal
6
Day 1 database
Day 1 database
ETC
Давталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогууд
Баярсайхан Л
U.cs101 lecture 6
U.cs101 lecture 6
Badral Khurelbaatar
Лекц 6
Letcure5
Letcure5
Oidov Umbelee
What's hot
(20)
Datastructure algoritm
Datastructure algoritm
C cons
C cons
Лекц №13
Лекц №13
Лекц 9(Заагч)
Лекц 9(Заагч)
Өгөгдлийн бүтэц
Өгөгдлийн бүтэц
U.cs101 алгоритм программчлал-2
U.cs101 алгоритм программчлал-2
U.cs101 алгоритм программчлал-3
U.cs101 алгоритм программчлал-3
Lesson 7
Lesson 7
U.cs101 алгоритм программчлал-5 zasvar badral(1)
U.cs101 алгоритм программчлал-5 zasvar badral(1)
Өгөгдлийн бүтэц 11
Өгөгдлийн бүтэц 11
Sw203 Lecture6 Inheritance
Sw203 Lecture6 Inheritance
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
Dsi lec7
Dsi lec7
Лекц №11
Лекц №11
It101 lec6 10.06
It101 lec6 10.06
Day 1 database
Day 1 database
Давталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогууд
U.cs101 lecture 6
U.cs101 lecture 6
Letcure5
Letcure5
More from International Ulaanbaatar University
Lec8
Lec8
International Ulaanbaatar University
Lec8
Lec7
Lec7
International Ulaanbaatar University
Lec7
Lec5 6
Lec5 6
International Ulaanbaatar University
Lec5 6
Lec4
Lec4
International Ulaanbaatar University
Lec4
Lec3
Lec3
International Ulaanbaatar University
Lec3
Lec2
Lec2
International Ulaanbaatar University
Lec2
Lec1
Lec1
International Ulaanbaatar University
Lec1
Визуаль програмчлал бие даалт
Визуаль програмчлал бие даалт
International Ulaanbaatar University
Визуаль програмчлал бие даалт
ОХШЗ - Бие Даалт
ОХШЗ - Бие Даалт
International Ulaanbaatar University
ОХШЗ - бие даалт
Ood lesson12.1 ---------
Ood lesson12.1 ---------
International Ulaanbaatar University
ОХШЗ 12
Ood lesson11 sequence
Ood lesson11 sequence
International Ulaanbaatar University
ОХШЗ 11
Ood lesson10 statechart
Ood lesson10 statechart
International Ulaanbaatar University
ОХШЗ 10
Ood lesson9 activity
Ood lesson9 activity
International Ulaanbaatar University
ОХШЗ 9
Ood lesson7,8 class
Ood lesson7,8 class
International Ulaanbaatar University
ОХШЗ 7 8
Ood lesson6 class
Ood lesson6 class
International Ulaanbaatar University
ОХШЗ 6
Ood lesson5
Ood lesson5
International Ulaanbaatar University
ОХШЗ 5
Ood lesson4
Ood lesson4
International Ulaanbaatar University
ОХШЗ 4
Ood lesson3
Ood lesson3
International Ulaanbaatar University
ОХШЗ 3
Ood lesson2
Ood lesson2
International Ulaanbaatar University
ОХШЗ 2
Ood lesson1
Ood lesson1
International Ulaanbaatar University
ОХШЗ 1
More from International Ulaanbaatar University
(20)
Lec8
Lec8
Lec7
Lec7
Lec5 6
Lec5 6
Lec4
Lec4
Lec3
Lec3
Lec2
Lec2
Lec1
Lec1
Визуаль програмчлал бие даалт
Визуаль програмчлал бие даалт
ОХШЗ - Бие Даалт
ОХШЗ - Бие Даалт
Ood lesson12.1 ---------
Ood lesson12.1 ---------
Ood lesson11 sequence
Ood lesson11 sequence
Ood lesson10 statechart
Ood lesson10 statechart
Ood lesson9 activity
Ood lesson9 activity
Ood lesson7,8 class
Ood lesson7,8 class
Ood lesson6 class
Ood lesson6 class
Ood lesson5
Ood lesson5
Ood lesson4
Ood lesson4
Ood lesson3
Ood lesson3
Ood lesson2
Ood lesson2
Ood lesson1
Ood lesson1
Өгөгдлийн бүтэц 10
1.
LOGO Лекц №10 Стек, түүнийг
массив ашиглан зохион байгуулах
2.
Хичээлийн агуулга
3.
Стек /Stack/ Жагсаалтын
бүтцүүдийн хувьд элемэнтийг нэмэх, устгах гэх мэтийн элемэнтэд хандах үйлдэл нь дурын байрлалд гүйцэтгэгдэж байсан. Тэгвэл зарим өгөгдлийн бүтцийн хувьд элемэнтэд хандах үйлдэл нь хязгаарлагдмал байдаг. Ийм хязгаарлагдмал хандалт бүхий өгөгдлийн бүтцийн нэг бол стек юм.
4.
Стек Элемэнтийг устгах
ба нэмэх үйлдэл нь орой гэж нэрлэгдэх нэг талаасаа хийгддэг шугаман тогтцыг стек гэнэ. Үүнийг LIFO төрөл гэж ч нэрлэдэг. Энэ нь Last In First Out буюу сүүлд орсон нь эхэлж гарна гэсэн үг юм. Хэдийгээр стек нь маш хязгаарлагдмал үйлдэлтэй боловч компьютерийн програмчлалд чухал үүрэгтэй өгөгдлийн бүтцүүдийн нэг юм.
5.
Амьдрал дээрх стекийн
жишээ: Хоолны тавиуруудын стек Зооснуудын стек Гутлын хайрцагнуудын стек Цэвэрхэн эвхсэн цамцнуудын стек
6.
Стекийг нэвтрүүлэх аргууд Стекийг
програмд нэвтрүүлэхдээ ихэвчлэн • Шугаман массив • Нэг холбоост ашигладаг. Шугаман массив ашиглан нэвтрүүлсэн стек нь компляцийн үед статикаар тодорхойлогдох өгөөд статик стекийн нийт хэмжээ нь тогтмол байдаг Нэг ашиглан нэвтрүүлсэн стек нь програм ажиллах явцад динамикаар тодорхойлогдох бөгөөд динамик стекийн хэмжээ нь өөрчлөгдөж байдаг.
7.
Стекийн массиваар илэрхийлэх хийсвэрлэлт •
Стекийн өгөгдөл / *stack / • Стекийн хэмжээ / MaxSize / • Cтекийн орой / top / Стекийн өгөгдөл: • Стект элемэнт нэмэх /push/ • Стекээс элемэнтийг авах /pop/ • Стек хоосон эсэхийг шалгах /isempty/ • Стек дүүрсэн эсэхийг шалгах /isfull/ • Стекийг элемэнтүүдийг харах /view/ Стекийн үйлдэл:
8.
Стекийг массиваар илэрхийлэх хийсвэрлэлт Массив Стекийн
орой Оройн индекс Стек
9.
class Stack{ int top,MaxSize; Type*stItems; public: Stack(int
Msize); ~Stack(); bool push(Type item); bool pop(Type &item); bool isempty(); bool isfull(); void view(); }; Cтекийг массиваар илэрхийлэх хийсвэр төрлийг тодорхойлох
10.
Stack::Stack(int Msize){ MaxSize=Msize; stItems=new Type[MaxSize]; top=-1; } Тайлбар: Stack
st(10); 10 хэмжээтэй st гэсэн нэртэй стекийг үүсгэж байна. Cтекийг үүсгэх байгуулагч функц:
11.
Cтекийг үүсгэх байгуулагч функц: 0 1 2 3 4 5 6 7 8 9 MaxSize stItems top
-1 10
12.
Stack::~Stack(){ delete[] stItems; } Стекийг санах
ойгоос чөлөөлөх устгагч функц:
13.
Стекийг санах ойгоос чөлөөлөх
устгагч функц: 0 1 2 3 4 5 6 7 8 9 MaxSize stItems top -1 10
14.
bool Stack::isempty(){ if(top<0) return true; else return
false; } Стекийг хоосон эсэхийг шалгах
15.
Стекийг хоосон эсэхийг шалгах 0 1 2 3 4 5 6 7 8 9 MaxSize stItems top
-1 10 Top хувьсагч буюу оройн утга 0-ээс бага тул стек хоосон буюу true утга буцаана.
16.
Стекийг хоосон эсэхийг шалгах 0 1 2 3 4 5 6 7 8 9 MaxSize stItems top
2 10 Top хувьсагч буюу оройн утга 0-ээс их тул стек хоосон биш буюу false утга буцаана. A Z K
17.
bool Stack::isfull(){ if(top>=MaxSize-1) return true; else return
false; } Стекийг дүүрэн эсэхийг шалгах
18.
Стекийг дүүрэн эсэхийг шалгах 0 1 2 3 4 5 6 7 8 9 MaxSize stItems top
2 10 Top хувьсагч буюу оройн утга MaxSize-1-ээс бага тул стек дүүрэн биш буюу false утга буцаана. A Z K
19.
Стекийг дүүрэн эсэхийг шалгах 0 1 2 3 4 5 6 7 8 9 MaxSize stItems top
9 10 Top хувьсагч буюу оройн утга MaxSize-1-тэй тэнцүү тул стек дүүрэн буюу true утга буцаана. A Z K C H L Y O N W
20.
bool Stack::push(Type item){ if(isfull()){ cout<<"Stack
duuren"<<endl; return false; } else{ stItems[++top]=item; return true; } } Стект элемэнт нэмэх
21.
Тайлбар: 1. Стек дүүрэн
эсэхийг шалгана. A. Хэрвээ стек дүүрэн бол Stack duuren мэдээллийг хэвлээд, стект элемэнт нэмж чадаагүй буюу false утга буцаана. B. Хэрвээ стек дүүрэн биш бол стекийн оройн утгыг нэгээр нэмэгдүүлэн, оройд элемэнтийг нэмээд, стект элемэнт нэмж чадсан буюу true утга буцаана. Стект элемэнт нэмэх
22.
Стект элемэнт нэмэх 0 1 2 3 4 5 6 7 8 9 MaxSize stItems top
2 10 St.push(‘E’); A Z K 2+1=3 E
23.
bool Stack::pop(Type &item){ if(isempty()){ cout<<"Stack
hooson"<<endl; return false; } else{ item=stItems[top--]; return true; } } Стекээс элемэнтийг авах
24.
Тайлбар: 1. Стек хоосон
эсэхийг шалгана. A. Хэрвээ стек дүүрэн бол Stack hooson мэдээллийг хэвлээд, стекээс элемэнт устгаж чадаагүй буюу false утга буцаана. B. Хэрвээ стек хоосон биш бол стекийн оройн элемэнтийг аван, оройн утгыг нэгээр хоргодуулаад, стекийн оройн элемэнтийг авч чадсан буюу true утга буцаана. Оройн элемэнтийг авахдаа санах ойн үүрний хаягаар авна. Стекээс элемэнтийг авах
25.
void Stack::view(){ for(int i=0;
i<=Top; i++) cout<<stItems[i]; } Стекийн элемэнтүүдийг харах
26.
Стекээс элемэнтийг авах 0 1 2 3 4 5 6 7 8 9 MaxSize stItems top
3 10 St.view(); A Z K E
27.
Илэрхийллийн хаалтны баланс
шалгах алгоритм Алгоритмын зорилго нь: тэмдэгтүүдийн дараалалд (),{},[] гэсэн хаалтууд оролцох бөгөөд нээх (,{,[ бүрт харгалзан хаах хаалт ),},] байгаа эсэхийг шалгах юм. Cтекийн хэрэглээ
28.
Баланслагдсан буюу зөв
хаагдсан хаалтуудын цуваа •() •{}{} •({[]()}[]) Баланслаагүй буюу буруу хаагдсан хаалтуудын цуваа •) •[ •{[}] Cтекийн хэрэглээ
29.
Энэ асуудлыг
үийдэ хамгийн хялбар ухаалаг зам нь стек ашиглах юм. Алгоритмын хэрэгжүүлэлт нь: Тэмдэгтүүдийн цувааны эхлэлээс тэмдэгт бүрийг уншин, нээх хаалт таарах бүрт түүнийг стект хийх ба хаах хаалт тааралдвал стекээс нэг элемэнт авч харгалзах нээх хаалт мөн эсэхийг шалган, зөв тохиолдолд цааш үргэлжлүүлэн шалгана. Cтекийн хэрэглээ
30.
#include<iostream.h> #include<string.h> #include<stdlib.h> #include<stdio.h> Typedef char Type; enum
bool {false,true}; class Stack{. . .}; char match(char cp){ switch(cp){ case')':return'('; case'}':return'{'; case']':return'['; } } Cтекийн хэрэглээ
31.
void main(){ Stack st(100); char
s[80],ch; int i=0; cout<<"ilerhiilelee oruul;"; cin>>s; while (s[i]){ if (strchr("{[(",s[i])) st.push(s[i]); if (strchr("}])", s[i])){ if((!st.pop(ch))||(ch=!match(s[i]))){ cout<<"balancelaagui"<<endl; exit(-1); } } i++; } Cтекийн хэрэглээ
32.
if (st.isempty()) cout<<"balancelasan"<<endl; else cout<<"balancelaagui"<<endl; } Cтекийн
хэрэглээ