SlideShare a Scribd company logo
1 of 37
LOGO
Лекц №12
Дараалал, түүнийг массив
ашиглан зохион байгуулах
Хичээлийн агуулга
Дараалал /Queue/
 Дараалал нь стекийн адил хязгаарлагдмал
үйлдэлтэй өгөгдлийн бүтэц юм.
 Элемэнт оруулах буюу шинээр элемэнт нэмэх
үйлдэл нь төгсгөлдөө хийгддэг, элемэнт гаргах
буюу устгах үйлдэл нь эхэндээ хийгддэг
өгөгдлийн бүтэцийг дараалал гэнэ.
 Дараалалыг FIFO /First-In-First-Out/ төрлийн
жагсаалт ч гэж нэрлэлдэг. Өөрөөр хэлбэл эхэлж
орсон нь эхэлж гарна гэсэн үг.
Амьдрал дээрх дарааллын жишээ:
Дарааллын
төгсгөл
Төлбөр төлөх
Дарааллын
эхлэл
Дараагийнх
нь...
Дарааллын компьютер дахь жишээ
 Үйлдлийн систем процессууд буюу санах ойд
ачаалагдсан програмуудыг хугацааны
хуваарилалтаар зохиоцуулан ажиллуулах
 Принтерт хэвлэх файлуудын цуваа
Дарааллыг нэвтрүүлэх
 Дарааллын үндсэн үйлдлүүд болох
 Элемэнт нэмэх буюу оруулах үйлдэл нь
дарааллын төгсгөлд хийгдэх тул төгсгөлийг
тодорхойлох rear гэсэн хувьсагч
 Элемэнт устгах буюу гаргах үйлдэл нь
дарааллын эхэнд хийгдэх тул эхлэлийг
тодорхойлох front гэсэн хувьсагчийг
ашиглана.
Дарааллыг нэвтрүүлэх аргууд
Компьютерийн програмчлалд
дарааллыг нэвтүүлэхдээ стекийн нэгэн
адил дараах аргуудыг ашигладаг.
Массив ашиглан
нэвтрүүлэх
Нэг холбоост жагсаалт
ашиглан нэвтрүүлэх
Дарааллыг массиваар
илэрхийлэх хийсвэрлэлт
• Дарааллын өгөгдөл / *items /
• Дарааллын хэмжээ / MaxQue /
• Дарааллын эхлэл / front /
• Дарааллын төгсгөл / rear /
Дарааллын
өгөгдөл:
• Дараалалд элемэнт нэмэх /Enqueue/
• Дарааллаас элемэнт устгах /Dequeue/
• Дараалал хоосон эсэхийг шалгах /Emptyqueue/
• Дараалал дүүрсэн эсэхийг шалгах /Fullqueue/
• Дарааллын элемэнтүүдийг харах /Viewqueue/
Дарааллын
үйлдэл:
Дарааллыг массиваар
илэрхийлэх хийсвэрлэлт
[0] [1] [2] [3] [4] [5]
A B C
дараалал
массив
Дарааллыг массив
ашиглан нэвтрүүлэх
 Дарааллыг массив ашиглан нэвтрүүлэх үед
массивын хэмжээгээр дараалалд хадгалагдах
элемэнтийн тоо хязгаарлагдана. Тиймээс
 Дараалалд элемэнт нэмэх бүртээ дараалал
дүүрсэн эсэхийг шалгах хэрэгтэй болно.
 Дарааллаас элемэнт устгах бүртээ дараалал
элемэнттэй эсэхийг шалгана.
 Дараалалд элемэнт нэмэх болон устгахад rear
болон front хувьсагчдийн утга харгалзан нэг
нэгээр нэмэгдэнэ.
Дарааллыг массив
ашиглан нэвтрүүлэх
Дарааллыг массив
ашиглан нэвтрүүлэх
 Тэгвэл
ямар үед дарааллыг
дүүрсэн байна гэж үзэх
вэ?
ямар үед дарааллыг
хоосон байна гэж үзэх вэ?
Дарааллыг массив
ашиглан нэвтрүүлэх
Анхны нөхцөл
Дарааллаас элемэнт устгав
Дараалал хоосон болох тохиолдол
Дарааллыг массив
ашиглан нэвтрүүлэх
Анхны нөхцөл
Дараалалд элемэнт нэмэв
Дараалал дүүрэх тохиолдол
Дарааллыг массив
ашиглан нэвтрүүлэх
 Энэ байдлыг шийдэхийн тулд дарааллын эхний
элемэнтийг хоосоноор тодорхойлно. Ингэснээр
 front==rear үед дараалал хоосон байх нөхцөл
биелнэ.
 (rear + 1) % maxQue == front үед дараалал
дүүрэн байх нөхцөл биелэнэ.
Дарааллыг массив
ашиглан нэвтрүүлэх
Анхны нөхцөл
Дарааллаас элемэнт устгав
Дараалал хоосон байх нөхцөл
Дарааллыг массив
ашиглан нэвтрүүлэх
Дараалал дүүрэн байх нөхцөл
class Queue{
int maxQue, front, rear;
ItemType* queItems;
public:
Queue(int max);
~Queue();
void MakeEmpty();
bool Emptyqueue();
bool Fullqueue() ;
void Enqueue(ItemType newItem);
void Dequeue(ItemType& item);
void Viewqueue();
};
Дарааллыг массиваар илэрхийлэх
хийсвэр төрлийг тодорхойлох
Queue::Queue(int max){
maxQue = max + 1;
front = maxQue - 1;
rear = maxQue - 1;
queItems = new ItemType[maxQue];
}
Тайлбар:
Queue Q(10);
10 хэмжээтэй Q гэсэн нэртэй дарааллыг үүсгэж
байна.
Дарааллыг үүсгэх
байгуулагч функц:
Cтекийг үүсгэх
байгуулагч функц:
MaxQue
front
rear 10
11
10
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
queItems
Дарааллыг үүсгэх
байгуулагч функц:
Дараалал үүсгэсэн байна.
Үүссэн дараалал хоосон байна.
Queue.Car(2);
Car.Emptyqueue()==true
Queue::~Queue(){
delete [] queItems;
}
Дарааллыг санах ойгоос
чөлөөлөх устгагч функц:
Дарааллыг санах ойгоос
чөлөөлөх устгагч функц:
MaxQue
front
rear 10
11
10
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
queItems
bool Queue::Emptyqueue()
{
if (rear == front)
return true;
else
return false;
}
Дараалал хоосон
эсэхийг шалгах
Дарааллыг үүсгэх
байгуулагч функц:
дараалал хоосон байна.
Car.Emptyqueue()==true
bool Queue::Fullqueue()
{
if((rear + 1) % maxQue == front)
return true;
else
return false;
}
Дараалал дүүрэн
эсэхийг шалгах
Дараалал дүүрэн
эсэхийг шалгах
Эхлэл төгсгөл
Car.Fullqueue()==true
void Queue::MakeEmpty()
{
front = maxQue - 1;
rear = maxQue - 1;
}
Дарааллыг хоослох
Дарааллыг хоослох
Мөнгө хураагч цайндаа гарахдаа
Дараалал дахь бүх машинуудыг явуулжээ
Эхлэл
Car.MakeEmpty();
void Queue::Enqueue(ItemType newItem)
{
if (Fullqueue())
cout<<"duuren, bolomjgui"<<endl;
else
{
rear = (rear +1) % maxQue;
queItems[rear] = newItem;
}
}
Дараалалд элемэнт нэмэх
Дараалалд элемэнт нэмэх
MaxQue
front
rear 3
11
1
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
A G
queItems (3+1)%11=4
4
Q.Enqueue(‘E’);
E
Дараалалд элемэнт нэмэх
Дараалалд А машин зогслоо.
Дараалал хоосон биш боллоо.
Эхлэл ба төгсгөл
Car.Enqueue(A);
Дараалалд элемэнт нэмэх
Дараалалд B машин нэмэгдэж зогслоо.
Эхлэл төгсгөл
Car.Enqueue(B);
void Queue::Dequeue(ItemType& item)
{
if (Emptyqueue())
cout<<"hooson,
bolomjgui"<<endl;
else
{
front = (front + 1) % maxQue;
item = queItems[front] ;
}
}
Дарааллаас элемэнт устгах
Дарааллаас элемэнт устгах
MaxQue
front
rear 4
11
1
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
A G E
queItems
(1+1)%11=2
Q.Dequeue(k);2
K=‘A’
Дарааллаас элемэнт устгах
Дарааллаас B машин явлаа.
Эхлэл ба төгсгөл
Car.Dequeue(A);
void Queue::Viewqueue(){
if(Emptyqueue())
cout<<"daraalal hooson bna"<<endl;
else
for(int i=(front + 1) % maxQue;
i< (rear +1) % maxQue;i++)
cout<<queItems[i]<<endl;
}
Стекийн элемэнтүүдийг харах

More Related Content

What's hot

U.cs101 алгоритм программчлал-14
U.cs101   алгоритм программчлал-14U.cs101   алгоритм программчлал-14
U.cs101 алгоритм программчлал-14Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-13
U.cs101   алгоритм программчлал-13U.cs101   алгоритм программчлал-13
U.cs101 алгоритм программчлал-13Badral Khurelbaatar
 
Small basic үзүүлэн
Small basic үзүүлэнSmall basic үзүүлэн
Small basic үзүүлэнbaterden
 
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргуудBayalagmaa Davaanyam
 
давталттай алгоритм
давталттай алгоритмдавталттай алгоритм
давталттай алгоритмEnkh Gvnj
 
өгөгдлийн сан үүсгэх
өгөгдлийн сан үүсгэхөгөгдлийн сан үүсгэх
өгөгдлийн сан үүсгэхTsoomoo Myagmar
 
Dsi lec5
Dsi lec5Dsi lec5
Dsi lec5ggmo86
 
Давталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогуудДавталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогуудБаярсайхан Л
 
Presentation1 өгөгдлийн сан
Presentation1 өгөгдлийн санPresentation1 өгөгдлийн сан
Presentation1 өгөгдлийн санbaterden
 
U.cs101 алгоритм программчлал-3
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3Badral Khurelbaatar
 
11 р анги хөтөлбөр
11 р анги хөтөлбөр 11 р анги хөтөлбөр
11 р анги хөтөлбөр shulam
 
Өгөгдлийн бүтэц
Өгөгдлийн бүтэцӨгөгдлийн бүтэц
Өгөгдлийн бүтэцMuuluu
 
Ogogdliin sangiin zohion baiguulalt lekts
Ogogdliin sangiin zohion baiguulalt lektsOgogdliin sangiin zohion baiguulalt lekts
Ogogdliin sangiin zohion baiguulalt lektsАлдарболд Э.
 

What's hot (20)

Өгөгдлийн бүтэц 14
Өгөгдлийн бүтэц 14Өгөгдлийн бүтэц 14
Өгөгдлийн бүтэц 14
 
Өгөгдлийн бүтэц 2-3
Өгөгдлийн бүтэц 2-3Өгөгдлийн бүтэц 2-3
Өгөгдлийн бүтэц 2-3
 
U.cs101 алгоритм программчлал-14
U.cs101   алгоритм программчлал-14U.cs101   алгоритм программчлал-14
U.cs101 алгоритм программчлал-14
 
U.cs101 алгоритм программчлал-13
U.cs101   алгоритм программчлал-13U.cs101   алгоритм программчлал-13
U.cs101 алгоритм программчлал-13
 
Small basic үзүүлэн
Small basic үзүүлэнSmall basic үзүүлэн
Small basic үзүүлэн
 
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
 
Datastructure algoritm
Datastructure algoritmDatastructure algoritm
Datastructure algoritm
 
давталттай алгоритм
давталттай алгоритмдавталттай алгоритм
давталттай алгоритм
 
өгөгдлийн сан үүсгэх
өгөгдлийн сан үүсгэхөгөгдлийн сан үүсгэх
өгөгдлийн сан үүсгэх
 
Dsi lec5
Dsi lec5Dsi lec5
Dsi lec5
 
Давталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогуудДавталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогууд
 
Presentation1 өгөгдлийн сан
Presentation1 өгөгдлийн санPresentation1 өгөгдлийн сан
Presentation1 өгөгдлийн сан
 
Database 3
Database 3Database 3
Database 3
 
U.cs101 алгоритм программчлал-3
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3
 
11 р анги хөтөлбөр
11 р анги хөтөлбөр 11 р анги хөтөлбөр
11 р анги хөтөлбөр
 
2
22
2
 
алгоритм 8
алгоритм 8алгоритм 8
алгоритм 8
 
Өгөгдлийн бүтэц
Өгөгдлийн бүтэцӨгөгдлийн бүтэц
Өгөгдлийн бүтэц
 
Ms access
Ms accessMs access
Ms access
 
Ogogdliin sangiin zohion baiguulalt lekts
Ogogdliin sangiin zohion baiguulalt lektsOgogdliin sangiin zohion baiguulalt lekts
Ogogdliin sangiin zohion baiguulalt lekts
 

Similar to Өгөгдлийн бүтэц 12

Similar to Өгөгдлийн бүтэц 12 (9)

Лекц №15
Лекц №15Лекц №15
Лекц №15
 
Dsi lec12
Dsi lec12Dsi lec12
Dsi lec12
 
Lecture 5
Lecture 5Lecture 5
Lecture 5
 
Лаборатор-3
Лаборатор-3Лаборатор-3
Лаборатор-3
 
Lecture
LectureLecture
Lecture
 
Өгөгдлийн бүтэц 11
Өгөгдлийн бүтэц 11Өгөгдлийн бүтэц 11
Өгөгдлийн бүтэц 11
 
Java lecture4
Java lecture4Java lecture4
Java lecture4
 
Java lecture4
Java lecture4Java lecture4
Java lecture4
 
Lec04
Lec04Lec04
Lec04
 

More from International Ulaanbaatar University (20)

Lec8
Lec8 Lec8
Lec8
 
Lec7
Lec7 Lec7
Lec7
 
Lec5 6
Lec5 6 Lec5 6
Lec5 6
 
Lec4
Lec4 Lec4
Lec4
 
Lec3
Lec3 Lec3
Lec3
 
Lec2
Lec2 Lec2
Lec2
 
Lec1
Lec1 Lec1
Lec1
 
Визуаль програмчлал бие даалт
Визуаль програмчлал бие даалтВизуаль програмчлал бие даалт
Визуаль програмчлал бие даалт
 
ОХШЗ - Бие Даалт
ОХШЗ - Бие ДаалтОХШЗ - Бие Даалт
ОХШЗ - Бие Даалт
 
Ood lesson12.1 ---------
Ood lesson12.1  ---------Ood lesson12.1  ---------
Ood lesson12.1 ---------
 
Ood lesson11 sequence
Ood lesson11 sequenceOod lesson11 sequence
Ood lesson11 sequence
 
Ood lesson10 statechart
Ood lesson10 statechartOod lesson10 statechart
Ood lesson10 statechart
 
Ood lesson9 activity
Ood lesson9 activityOod lesson9 activity
Ood lesson9 activity
 
Ood lesson7,8 class
Ood lesson7,8 classOod lesson7,8 class
Ood lesson7,8 class
 
Ood lesson6 class
Ood lesson6 classOod lesson6 class
Ood lesson6 class
 
Ood lesson5
Ood lesson5Ood lesson5
Ood lesson5
 
Ood lesson4
Ood lesson4Ood lesson4
Ood lesson4
 
Ood lesson3
Ood lesson3Ood lesson3
Ood lesson3
 
Ood lesson2
Ood lesson2Ood lesson2
Ood lesson2
 
Ood lesson1
Ood lesson1Ood lesson1
Ood lesson1
 

Өгөгдлийн бүтэц 12