“Ахборот технологиялари” факультети “Ахборот технологияларини дастурий таъминоти” кафедраси “маълумотлар тузилмаси ва алгоритмлар”


 Бир боғламли рўйхатдан элементни ўчириш


Download 0.64 Mb.
Pdf ko'rish
bet15/28
Sana21.02.2023
Hajmi0.64 Mb.
#1219557
1   ...   11   12   13   14   15   16   17   18   ...   28
4. Бир боғламли рўйхатдан элементни ўчириш 
Рўйхатда ишчи кўрсаткичи р бўлган элементдан кейинги элементни ўчирамиз. 
Буни рўёбга чиқариш учун қуйидаги ишларни амалга ошириш лозим: 
a) Ўчирилаётган элементни кўрсатувчи q кўрсаткични киритиш. 
q=ptr(p) 
b) А элементдан кейин В элементни қўйиш 
ptr(p)=ptr(q) 
c) Ўчирилаётган элемент info мойдонидаги информацияни ёдда сақлаш (агар зарур бўлса) 
k=info(q) 
d) q кўрсаткичли элементни ўчириш. 
Freenode(q) 


20
Натижада: 
Шу алгоритм дастури: 
Node* p = head; 
Node* q = new Node
int k; 
cout<<"k=";cin>>k; 
for(int i=0;inext; 
q = p->next; 
p->next = q->next; 
delete(q); 
Топшириқ 
Вариантлар: 
1. Элементни n позицияга силжитиш дастурини тузинг. 
2. Рўйхат нусхасини яратинг. 
3. Рўйхат бошига элемент қўйиш. 
4. Иккита рўйхат бирлаштирилсин. 
5. Рўйхатнинг n-инчи элементи ўчирилсин. 
6. Рўйхат n-инчи элементидан кейин янги элемент қўйилсин. 
7. Иккита рўйхат умумий элементларидан ташкил топган рўйхат яратилсин. 
8. Рўйхат элементлари ўсиш тартибида жойлаштирилсин. 
9. Рўйхат ҳар иккинчи элементи ўчирилсин. 
10. Рўйхат ҳар учинчи элементи ўчирилсин. 
11. Рўйхат элементлари камайиш тартибида жойлаштирилсин. 
12. Рўйхат тозалансин. 
13. Футбол жамосининг 20 та ўйинчилари фамилияларидан ташкил топган халқасимон рўйхат берилган. 
Ўйинчилар 2 та гурухга 10 тадан ажратилсин. Иккинчи гурухга умумий ўйинчиларни ҳар 12-инчиси 
кирсин. 
14. Спортчи фамилияларидан ташкил топган иккита халқасимон рўйхат берилган. Қура ташлаш амалга 
оширилсин. Биринчи гуруҳдаги ҳар n-инчи спортчи, иккинчи гуруҳдаги ҳар m-инчи спортчи билан 
рақиб бўлсин. 
15. Лотеря иштирокчилари фамилиялари ва мукофотлар номларидан ташкил топган 2 та ҳалқасимон 
рўйхат берилган. N та иштирокчи ғолиб бўлсин (ҳар К-инчи). Мукофотларни қайта ҳисоблаш сони - t. 
16. Ўқувчилар фамилиялари ва имтиҳон билетлари рақамларидан ташкил топган 2 та ҳалқасимон рўйхат 
берилган. Ўқувчилар томонидан олинган билет рақамлари аниқлансин. Имтиҳон билетлари учун қайта 
ҳисоблаш сони - Е, ўқувчилар учун эса - К.
17. Маҳсулот номларидан ташкил топган рўйхат берилган. Рўйхат элементлари SONY фирмасида ишлаб 
чиқилган маҳсулотлардан ташкил топган янги рўйхат яратинг. 
18. 2 та гуруҳ талабалари фамилияларидан ташкил топган 2 та рўйхат берилган. Биринчи гуруҳ L талабаси 
иккинчи гуруҳга ўтказилсин. Қайта ҳисоблашлар сони -К. 
19. BOSH ва FILIPS концернлари томонидан ишлаб чиқилган маҳсулот номларидан ташкил топган иккита 
рўйхат берилган. Ҳар иккала фирма томонидан ишлаб чиқилган бир ҳил маҳсулотлар рўйхати 
тузилсин. 
20. Футбол жамоасининг асосий ва заҳира таркиби ўйинчилари фамилияларидан ташкил топган иккита 
рўйхат берилган. К та ўйинчи алмаштирилсин. 
21. 1-чи ва 2-чи взвод аскарлари фамилияларидан ташкил топган иккита рўйхат берилган. Хужум 
натижасида 1-чи взводдан М та аскар ҳалок бўлди. Иккинчи взвод аскарларидан биринчи взвод 
тўлдирилсин. 
22. Маҳсулот номлари ва харидорлар фамилияларидан ташкил топган иккита рўйхат берилган. Ҳар бир N-
чи харидор М-чи маҳсулотни сотиб олади. Ҳарид қилинган маҳсулотлар рўйхатини чиқаринг. 
23. SONY ва SHARP фирмалари томонидан ишлаб чиқилган маҳсулот номларидан ташкил топган иккита 
рўйхат берилган. Ўзаро рақобат қилувчи маҳсулотлар рўйхатини тузинг. 
Энди ушубу топшириқларга ўхшаш битта мисолни ечиш алгоритма ва дастурини кўриб чиқамиз. 
Қуйидагича масала қўйилган бўлсин. Рўйхатнинг максимал элементи топилсин. Ушбу масаланинг дастури ва 
натижаси қуйида келтирилган. 


21
#include  
using namespace std; 
class Node 

public: int number; 
Node* next; 
}; 
int main() 

Node* head = NULL; 
Node* lastPtr = NULL; 
short action = -1; 
while (1) 
{ cout<<"1. element qo'shish\n"; 
cout<<"2. ro'yhatni ko'rish\n"; 
cout<<"3. ro'yhat maksimalini topish\n"; 
cout<<"0. chiqish\n\n"; 
cout<<"tanlang: "; 
cin>>action; 
if (action == 0) 

system("CLS"); 
break; 

if (action == 1) 

system("CLS"); 
Node* ptr = new Node; 
int numb = -1; 
cout<<"son kiriting: "; 
cin>>numb; 
ptr->number = numb; 
ptr->next = NULL; 
if (head == 0) 

head = ptr; 
lastPtr = ptr; 
system("CLS"); 
continue

lastPtr->next = ptr; 
lastPtr = ptr; 
system("CLS"); 
continue; 

if (action == 2) 

Node* ptr = NULL; 
system("CLS"); 
if (head == 0) 

cout<<"\t!!! ro'yhat bo'sh !!!\n\n"; 
system("PAUSE"); 
system("CLS"); 
continue; 

cout<<"* * * * * ro'yhat * * * * *\n\n"; 
ptr = head; 
while (1) 

cout<
number<<" "; 

if (ptr->next == 0) 
break; 


22
ptr = ptr->next; 

cout<<"\n\n"; 
system("PAUSE"); 
system("CLS"); 
continue; 

if (action == 3) 

system("CLS"); 
Node* p = head; 
Node* q = new Node; 
Node* last = new Node; 
 
int max=p->number; q=head; 
while(p){ 
if(max
number){ max=p->number;} 

p=p->next; 

system("CLS"); 
cout<<"max="<
system("pause"); 
continue; 

}} 
 
 
 


23
4-Тажриба иши. "ДАРАХТСИМОН ТУЗИЛМАЛАР" 
Ишдан мақсад: бинар дарахтлар билан ишлашда фойдаланиладиган процедураларни тадқиқ қилиш ва ўрганиш. 
Қўйилган масала: Бинар дарахтларни тадқиқ қилишга оид дастурни яратиш кўникмасига эга бўлиш. 
Иш тартиби: 
 Тажриба иши тавсифини ўрганиш; 
 Берилган топшириқни дастури алгоритмини ишлаб чиқиш; 
 С++ тилида дастурни яратиш
 Дастурни ишлатиш; 
натижани олиш
 хисоботни тайёрлаш. 

Download 0.64 Mb.

Do'stlaringiz bilan baham:
1   ...   11   12   13   14   15   16   17   18   ...   28




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling