Submit Search
Upload
Dsi lec7
•
0 likes
•
268 views
International Ulaanbaatar University
Follow
Өгөгдлийн бүтэц 7
Read less
Read more
Education
Report
Share
Report
Share
1 of 53
Recommended
Өгөгдлийн бүтэц 11
Өгөгдлийн бүтэц 11
International Ulaanbaatar University
Өгөгдлийн бүтэц 8,9
Өгөгдлийн бүтэц 8,9
International Ulaanbaatar University
Өгөгдлийн бүтэц 10
Өгөгдлийн бүтэц 10
International Ulaanbaatar University
Өгөгдлийн бүтэц 15
Өгөгдлийн бүтэц 15
International Ulaanbaatar University
Өгөгдлийн бүтэц 14
Өгөгдлийн бүтэц 14
International Ulaanbaatar University
Өгөгдлийн бүтэц 13
Өгөгдлийн бүтэц 13
International Ulaanbaatar University
Lecture 5
Lecture 5
Muuluu
Dsi lec5,6
Dsi lec5,6
International Ulaanbaatar University
Recommended
Өгөгдлийн бүтэц 11
Өгөгдлийн бүтэц 11
International Ulaanbaatar University
Өгөгдлийн бүтэц 8,9
Өгөгдлийн бүтэц 8,9
International Ulaanbaatar University
Өгөгдлийн бүтэц 10
Өгөгдлийн бүтэц 10
International Ulaanbaatar University
Өгөгдлийн бүтэц 15
Өгөгдлийн бүтэц 15
International Ulaanbaatar University
Өгөгдлийн бүтэц 14
Өгөгдлийн бүтэц 14
International Ulaanbaatar University
Өгөгдлийн бүтэц 13
Өгөгдлийн бүтэц 13
International Ulaanbaatar University
Lecture 5
Lecture 5
Muuluu
Dsi lec5,6
Dsi lec5,6
International Ulaanbaatar University
Өгөгдлийн бүтэц
Өгөгдлийн бүтэц
Muuluu
Sw203 Lecture8 Interface
Sw203 Lecture8 Interface
Jargalsaikhan Alyeksandr
It101 lec6 10.06
It101 lec6 10.06
Nergui Batjargal
u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7
Khuder Altangerel
Өгөгдлийн бүтэц 2-3
Өгөгдлийн бүтэц 2-3
International Ulaanbaatar University
Lec5 angi
Lec5 angi
Turuu Tsogt
Lesson 7
Lesson 7
Lha Bolorerdene
Өгөгдлийн бүтэц 12
Өгөгдлийн бүтэц 12
International Ulaanbaatar University
database 12
database 12
Usukhuu Galaa
Лекц 9(Заагч)
Лекц 9(Заагч)
Мөнхбаярын Цэцэнцэнгэл
001 c++ class охп
001 c++ class охп
Mijiddorj Renchin-Ochir
Dsi lec5
Dsi lec5
ggmo86
Эрэмбэлэлт хайлтын аргууд
Эрэмбэлэлт хайлтын аргууд
Bayalagmaa Davaanyam
Day 1 database
Day 1 database
ETC
U.cs101 алгоритм программчлал-9
U.cs101 алгоритм программчлал-9
Badral Khurelbaatar
Database 11
Database 11
Usukhuu Galaa
Мод, графын ерөнхий зарчим
Мод, графын ерөнхий зарчим
Bayalagmaa Davaanyam
Pp Lect3 1
Pp Lect3 1
ulziibaatar
Datastructure algoritm
Datastructure algoritm
Nergui Batjargal
Lec 02 - copy (2)
Lec 02 - copy (2)
Enhmandah Hemeelee
Lec8
Lec8
International Ulaanbaatar University
Lec7
Lec7
International Ulaanbaatar University
More Related Content
What's hot
Өгөгдлийн бүтэц
Өгөгдлийн бүтэц
Muuluu
Sw203 Lecture8 Interface
Sw203 Lecture8 Interface
Jargalsaikhan Alyeksandr
It101 lec6 10.06
It101 lec6 10.06
Nergui Batjargal
u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7
Khuder Altangerel
Өгөгдлийн бүтэц 2-3
Өгөгдлийн бүтэц 2-3
International Ulaanbaatar University
Lec5 angi
Lec5 angi
Turuu Tsogt
Lesson 7
Lesson 7
Lha Bolorerdene
Өгөгдлийн бүтэц 12
Өгөгдлийн бүтэц 12
International Ulaanbaatar University
database 12
database 12
Usukhuu Galaa
Лекц 9(Заагч)
Лекц 9(Заагч)
Мөнхбаярын Цэцэнцэнгэл
001 c++ class охп
001 c++ class охп
Mijiddorj Renchin-Ochir
Dsi lec5
Dsi lec5
ggmo86
Эрэмбэлэлт хайлтын аргууд
Эрэмбэлэлт хайлтын аргууд
Bayalagmaa Davaanyam
Day 1 database
Day 1 database
ETC
U.cs101 алгоритм программчлал-9
U.cs101 алгоритм программчлал-9
Badral Khurelbaatar
Database 11
Database 11
Usukhuu Galaa
Мод, графын ерөнхий зарчим
Мод, графын ерөнхий зарчим
Bayalagmaa Davaanyam
Pp Lect3 1
Pp Lect3 1
ulziibaatar
Datastructure algoritm
Datastructure algoritm
Nergui Batjargal
Lec 02 - copy (2)
Lec 02 - copy (2)
Enhmandah Hemeelee
What's hot
(20)
Өгөгдлийн бүтэц
Өгөгдлийн бүтэц
Sw203 Lecture8 Interface
Sw203 Lecture8 Interface
It101 lec6 10.06
It101 lec6 10.06
u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7
Өгөгдлийн бүтэц 2-3
Өгөгдлийн бүтэц 2-3
Lec5 angi
Lec5 angi
Lesson 7
Lesson 7
Өгөгдлийн бүтэц 12
Өгөгдлийн бүтэц 12
database 12
database 12
Лекц 9(Заагч)
Лекц 9(Заагч)
001 c++ class охп
001 c++ class охп
Dsi lec5
Dsi lec5
Эрэмбэлэлт хайлтын аргууд
Эрэмбэлэлт хайлтын аргууд
Day 1 database
Day 1 database
U.cs101 алгоритм программчлал-9
U.cs101 алгоритм программчлал-9
Database 11
Database 11
Мод, графын ерөнхий зарчим
Мод, графын ерөнхий зарчим
Pp Lect3 1
Pp Lect3 1
Datastructure algoritm
Datastructure algoritm
Lec 02 - copy (2)
Lec 02 - copy (2)
More from International Ulaanbaatar University
Lec8
Lec8
International Ulaanbaatar University
Lec7
Lec7
International Ulaanbaatar University
Lec5 6
Lec5 6
International Ulaanbaatar University
Lec4
Lec4
International Ulaanbaatar University
Lec3
Lec3
International Ulaanbaatar University
Lec2
Lec2
International Ulaanbaatar University
Lec1
Lec1
International Ulaanbaatar University
Визуаль програмчлал бие даалт
Визуаль програмчлал бие даалт
International Ulaanbaatar University
ОХШЗ - Бие Даалт
ОХШЗ - Бие Даалт
International Ulaanbaatar University
Ood lesson12.1 ---------
Ood lesson12.1 ---------
International Ulaanbaatar University
Ood lesson11 sequence
Ood lesson11 sequence
International Ulaanbaatar University
Ood lesson10 statechart
Ood lesson10 statechart
International Ulaanbaatar University
Ood lesson9 activity
Ood lesson9 activity
International Ulaanbaatar University
Ood lesson7,8 class
Ood lesson7,8 class
International Ulaanbaatar University
Ood lesson6 class
Ood lesson6 class
International Ulaanbaatar University
Ood lesson5
Ood lesson5
International Ulaanbaatar University
Ood lesson4
Ood lesson4
International Ulaanbaatar University
Ood lesson3
Ood lesson3
International Ulaanbaatar University
Ood lesson2
Ood lesson2
International Ulaanbaatar University
Ood lesson1
Ood lesson1
International Ulaanbaatar University
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
Dsi lec7
1.
LOGO Лекц №8 Цикл жагсаалт
2.
Хичээлийн агуулга
3.
Нэг холбоост жагсаалтын бэрхшээл
Нэг холбоост жагсаалтын зангилаа бүр нь өмнөх(сүүлчийн элемэнтээс бусад нь) болон дараагийн(эхний элемэнтээс бусад нь) зангилаатай байдаг. Тиймээс нэг холбоост жагсаалтад нэг бэрхшээл байдаг: Нэг холбоост жагсаалтын аль нэг зангилаанаас түүний дараагийн бүх зангилаанд хандаж болох боловч түүний өмнө орших нэг ч зангилааруу хандаж чадахгүй. Аливаа зангилаанд хандахын тулд жагсаалтын эхлэлийн заагчийг ашиглан эхнээс нь дараалан хандана.
4.
Цикл жагсаалт Нэг
холбоост жагсаалтын сүүлчийн элемэнтийн заагч талбар нь NULL утгыг агуулахын оронд буцаад эхний элемэнтийг зааж байхаар өөрчлөн зохион байгуулж болно. Ингэснээр нэг холбоост жагсаалтаас давуу талтай цикл жагсаалт гэсэн бүтцийг бий болгоно. Зангилаа бүр нь дараагийн зангилаатай байх жагсаалтыг цикл жагсаалт /ЦЖ/ гэнэ. 100 56 34 456
5.
Цикл холбоост
жагсаалтын зангилааг дараах CLNode классаар тодорхойлъё class CLNode { Data element; CLNode *next; CLNode(Data evalue, CLNode *nvalue){ element=evalue; next=nvalue; } friend class CircularLinkedList; }; Цикл холбоост жагсаалтын зангилааг илэрхийлэх:
6.
Цикл жагсаалтын
аль ч зангилаанаас эхэлсэн тухайн жагсаалтын бүх элемэнтээр дамжих боломжтой. Гадаад заагчаар эхний элемэнтийг заалгаснаас сүүлчийн элемэнтийг заалгасан нь давуу талтай. Ингэснээр эхний болон сүүлчийн хоёр элемэнтэд аль нь ч шууд хандах боломжтой. Цикл жагсаалтыг зохион байгуулах 100 56 34 456
7.
ЦЖ-ыг хоосон эсэхийг
шалгах – IsEmpty() ЦЖ-ыг хоослох – MakeEmpty() ЦЖ-д элемэнт нэмэх - InsertItem() ЦЖ-аас элемэнт устгах - DeleteItem() ЦЖ-аас элемэнт хайх – FindItem() Жагсаалтын элемэнтүүдийг хэвлэх – Print() Нэг холбоост жагсаалтад хийгдэх үйлдлүүд
8.
class CircularLinkedList { CLNode *listData; public: CircularLinkedList
(); ~CircularLinkedList (); bool IsEmpty() ; void MakeEmpty(); void InsertItem (Data item); bool FindItem(Data key); void DeleteItem(Data item); void Print(); }; ЦЖ-ыг илэрхийлэх хийсвэр төрлийг тодорхойлох
9.
CircularLinkedList::CircularLinkedList() { listData= NULL; } Тайлбар: CircularLinkedList CList; //
CList нэртэй цикл жагсаалт үүсгэж байна. ЦЖ-ыг үүсгэх байгуулагч функц: listData
10.
CircularLinkedList::~CircularLinkedList(){ MakeEmpty(); } ЦЖ-ыг санах ойгоос чөлөөлөх
устгагч функц:
11.
void CircularLinkedList::MakeEmpty(){ CLNode *location=listData; while
(listData->next != listData){ location = listData->next; listData->next=location->next; delete location; } if(listData->next==listData){ location=listData; listData=NULL; delete location; } } ЦЖ-ыг хоослох
12.
Тайлбар: Устгагч функц
нь MakeEmpty() функцийг дуудна. MakeEmpty() функц нь үүсгэсэн цикл жагсаалтын элемэнтүүдийг санах ойгоос чөлөөлөх буюу цикл жагсаалтыг хоослоно. MakeEmpty() функц нь туслах заагч/location/- ийг ашиглан эхлэлийн элемэнтээс эхлэн элемэнтүүдийг нэг нэгээр санах ойгоос чөлөөлнө. Бүх элемэнтүүдийг чөлөөлсний дараа хоосон цикл жагсаалт үлдэнэ. ЦЖ-ыг санах ойгоос бүрэн чөлөөлөх устгагч функц:
13.
ЦЖ-ыг санах ойгоос бүрэн
чөлөөлөх устгагч функц: 100 56 34. . . location listData 456
14.
ЦЖ-ыг санах ойгоос бүрэн
чөлөөлөх устгагч функц: 100 56 34. . . location listData 456
15.
ЦЖ-ыг санах ойгоос бүрэн
чөлөөлөх устгагч функц: 56 34. . . location listData 456
16.
ЦЖ-ыг санах ойгоос бүрэн
чөлөөлөх устгагч функц: 34. . . location listData 456
17.
ЦЖ-ыг санах ойгоос бүрэн
чөлөөлөх устгагч функц: 34 location listData 456
18.
ЦЖ-ыг санах ойгоос бүрэн
чөлөөлөх устгагч функц: location listData 456
19.
Цикл жагсаалт Устгагч функц: Тайлбар: Устгагч
функц нь байгуулагч функцээр болон тухайн хийсвэр төрлөөр санах ойд хуваарилагсдсан хувьсагчдыг санах ойгоос чөлөөлнө. location listData
20.
bool CircularLinkedList::IsEmpty(){ if( listData
== NULL ) return true; return false; } Тайлбар: Гадаад заагч/listData/ нь хоосон/NULL/ утгатай бол цикл жагсаалт хоосон байна буюу true утга, хоосон/NULL/-оос ялгаатай бол хоосон биш буюу false утга буцаана. ЦЖ-ыг хоосон эсэхийг шалгах
21.
void CircularLinkedList::InsertItem(Data item) { if(IsEmpty()==true){ CLNode
*location=new CLNode(item,location); location->next=location; listData=location; } else{ CLNode*location=new CLNode(item,listData->next) listData->next=location; listData=location; } } Цикл жагсаалтад элемэнт нэмэх
22.
Тайлбар: 1. Цикл жагсаалтыг
хоосон эсэхийг шалгана. 2. А.1. Хэрвээ жагсаалт хоосон бол шинэ элемэнтийг санах ойд хуваарилах ба уг зангилааны заагч талбараар өөрийг нь заалгана. 2. А.2. гадаад заагчаар шинэ элемэнтийг заалгана. Цикл жагсаалтад элемэнт нэмэх
23.
Тайлбар: 2. В.1. Харин
жагсаалт хоосон биш буюу элемэнттэй бол шинэ элемэнтийг санах ойд хуваарилах ба уг зангилааны заагч талбараар гадаад зангилаа байрлаж буй элемэнтийн заагч талбарын зааж байгаа зангилааг заалгана. 2. В.2. Гадаад зангилаа байрлаж буй элемэнтийн заагч талбараар шинэ элемэнтийг заалгана. 3. Гадаад заагчийг шинэ элемэнтэд шилжүүлнэ. Цикл жагсаалтад элемэнт нэмэх
24.
Цикл жагсаалтад элемэнт нэмэх 100 location 100
56 34. . . listData 456 location listData
25.
void SinglyLinkedList::InsertLast (Data
item) { SLNode *curr = new SLNode (item, NULL); if (IsEmpty()==true) head = curr; else tail->next = curr; tail = curr; } НХЖ-ын төгсгөлд элемэнт нэмэх
26.
void CircularLinkedList::Print(){ if(IsEmpty()==false){ CLNode *location=listData; cout<<"CircularLinkedList:
"; if(location==listData){ cout<<location->element<<"->"; location=location->next; } while(location!=listData){ cout<<location->element<<"->"; location=location->next; } cout<<endl; }else cout<<"CircularLinkedList is empty"<<endl; } ЦЖ-ын элемэнтүүдийг хэвлэх
27.
Тайлбар: 1. Жагсаалт хоосон
эсэхийг шалгана. 2. А. Жагсаалт хоосон бол CircularLinkedList is empty мэдээллийг хэвлэнэ. 2. В. Хоосон биш бол дараах алхамуудыг гүйцэтгэнэ. 2. 1. Гадаад заагч байрлаж буй зангилаанаас эхлэн түүний өмнө орших зангилаа хүртэл бүх зангилаанд туслах заагчийн тусламжтайгаар дараалан хандаж, зангилаа бүрийн element талбарын утгыг хэвлэнэ. ЦЖ-ын элемэнтүүдийг хэвлэх
28.
ЦЖ-ын элемэнтүүдийг хэвлэх 100
56 34 listData 42 CircularLinkedList: 456 location 34->
29.
ЦЖ-ын элемэнтүүдийг хэвлэх 100
56 34 listData 42 CircularLinkedList: 456 location 34-> 100->
30.
ЦЖ-ын элемэнтүүдийг хэвлэх 100
56 34 listData 42 CircularLinkedList: 456 location 34-> 100->56->
31.
ЦЖ-ын элемэнтүүдийг хэвлэх 100
56 34 listData 42 CircularLinkedList: 456 location 34-> 100->56->456->
32.
ЦЖ-ын элемэнтүүдийг хэвлэх 100
56 34 listData 42 CircularLinkedList: 456 location 34-> 100->56->456->42->
33.
ЦЖ-ын элемэнтүүдийг хэвлэх 100
56 34 listData 42 CircularLinkedList: 456 location 34-> 100->56->456->42->
34.
bool CircularLinkedList::FindItem(Data key){ if(IsEmpty()==false){ CLNode
*location = listData; while (location->element!=key && location->next!=listData) { location=location->next; } if (location->element == key) return true; return false; }else return false; } ЦЖ-аас өгөгдсөн элемэнт хайх
35.
Тайлбар: 1. Жагсаалт хоосон
эсэхийг шалгана. 2. А. Жагсаалт хоосон бол CircularLinkedList is empty мэдээллийг хэвлэнэ. 2. В. Хоосон биш бол дараах алхамуудыг гүйцэтгэнэ. 2. 1. гадаад заагч байрлаж буй элемэнтээс эхлэн туслах заагчийн тусламжтайгаар өгөгдсөн утгыг зангилаа бүрийн элемэнт талбарын утгатай жиших замаар элемэнт олдох хүртэл эсвэл гадаад заагч байрлаж байгаа зангилааны өмнөх зангилаа хүртэл зангилаануудад дараалан хандах замаар хайлтыг явуулна. ЦЖ-аас өгөгдсөн элемэнт хайх
36.
Тайлбар: 2. 2. Хайлтыг
явуулж буй давталт дуусах үед туслах заагчын зааж буй зангилааны элемэнт талбарын утга өгөгдсөн элемэнттэй тэнцүү үед өгөгдсөн утга жагсаалтад байна. 2. 3. Бусад тохиолдолд жагсаалтад хайж буй утга жагсаалтаас олдсонгүй гэсэн утга буцаана. ЦЖ-аас өгөгдсөн элемэнт хайх
37.
ЦЖ-аас өгөгдсөн элемэнт хайх 100
56 34 listData 42456 location 56
38.
ЦЖ-аас өгөгдсөн элемэнт хайх 100
56 34 listData 42456 location 56
39.
ЦЖ-аас өгөгдсөн элемэнт хайх 100
56 34 listData 42456 location 56 Хайсан элемэнт олдлоо!!!
40.
void CircularLinkedList::DeleteItem(Data item) { if(IsEmpty()==false){ CLNode
*predLoc=listData; CLNode *location=listData; while(location->element!=item && location->next!=listData){ predLoc=location; location=location->next; } if(location->next==listData) cout<<"Ugugdsun element bhguia bna"<<endl; ЦЖ-аас өгөгдсөн элемэнтийг устгах
41.
else if(location->element==item){ if(location==listData){ while(predLoc->next!=location) predLoc=predLoc->next; listData=listData->next; } predLoc->next=location->next; delete location; } }else cout<<"CircularLinkedList is
empty"<<endl; } ЦЖ-аас өгөгдсөн элемэнтийг устгах
42.
Тайлбар: 1. Жагсаалт хоосон
эсэхийг шалгана. 2. А. Жагсаалт хоосон бол CircularLinkedList is empty мэдээллийг хэвлэнэ. 2. В. Хоосон биш бол дараах алхамуудыг гүйцэтгэнэ. 2. 1. Өгөгдсөн элемэнтийг хайна. Үүний тулд хоёр туслах заагчийг ашиглана. • location– устгах зангилааг заалгана. • predLoc – устгах элемэнтийн өмнөх зангилааг заалгана. ЦЖ-аас өгөгдсөн элемэнтийг устгах
43.
Тайлбар: 2. 2. Хайлт
зогссон үед хэрвээ location->next заагч listData утгыг зааж байвал өгөгдсөн элемэнт жагсаалтад байхгүй байна. 2. 3. Хайлт зогссон үед хэрвээ location заагчийн зааж буй зангилааны element талбарын утга өгөгдсөн элемэнттэй тэнцүү буюу хайсан зангилаа олдсон бол: 2. 3. 1. хэрвээ устгах элемэнтийг гадаад заагч зааж байвал түүний өмнөх элемэнтийг олно. 2. 3. 2. гадаад заагчийг дараагийн элемэнтэд шилжүүлнэ. ЦЖ-аас өгөгдсөн элемэнтийг устгах
44.
Тайлбар: 2. 3. 3.
устгах элемэнтийн өмнөх элемэнтийн заагч талбараар устгах элемэнтийн дараагийн элемэнтийг заалгана. 2. 4. location заагчийн зааж буй зангилааг санах ойгоос чөлөөлөх буюу устгана. ЦЖ-аас өгөгдсөн элемэнтийг устгах
45.
ЦЖ-аас өгөгдсөн элемэнтийг устгах 100
56 34 listData 42456 location predLoc Устгах элемэнт: 34
46.
ЦЖ-аас өгөгдсөн элемэнтийг устгах 100
56 34 listData 42456 predLoc location Устгах элемэнт: 34
47.
ЦЖ-аас өгөгдсөн элемэнтийг устгах 100
56 34 listData 42456 predLoc location Устгах элемэнт: 34
48.
ЦЖ-аас өгөгдсөн элемэнтийг устгах 100
56 34 listData 42456 predLoc location Устгах элемэнт: 34
49.
ЦЖ-аас өгөгдсөн элемэнтийг устгах 100
56 34 listData 42456 predLoc location Устгах элемэнт: 34
50.
ЦЖ-аас өгөгдсөн элемэнтийг устгах 100
56 34 listData 42456 predLoc location Устгах элемэнт: 34
51.
ЦЖ-аас өгөгдсөн элемэнтийг устгах 100
56 34 listData 42456 location predLoc Устгах элемэнт: 56
52.
ЦЖ-аас өгөгдсөн элемэнтийг устгах 100
56 34 listData 42456 predLoc location Устгах элемэнт: 56
53.
ЦЖ-аас өгөгдсөн элемэнтийг устгах 100
56 34 listData 42456 predLoc location Устгах элемэнт: 56