Программалау оқулық Алматы, 012 Қазақстан Республикасы Білім жəне ғылым министрлігінің «Оқулық»



Pdf көрінісі
бет207/466
Дата20.07.2022
өлшемі3,66 Mb.
#37798
түріПрограмма
1   ...   203   204   205   206   207   208   209   210   ...   466
Байланысты:
pavlovskaia-jogargy-dengeili

Node * insert(int key, int d);
bool remove(int key); // Түйінді жою
void print(); // Тізімді тура бағытта 
// басып шығару
void print_back(); // Тізімді кері бағытта 
// басып шығару
};
Класс əдістерінің жүзеге асырылуын қарастырайық. 
add 
əдісі жаңа
Node
типті объектіге жады бөледі жəне тізім басына жəне соңына нұсқауыштарды 
жаңарта отырып, объектіні тізімге қосады:
void List::add(int d){
Node *pv = new Node(d); 
// Жаңа түйінге жады бөлу
if (pbeg == 0) pbeg = pend = pv; // Тізімнің алғашқы 
// түйіні
else{
// Жаңа түйінді алдыңғысымен байланыстыру: 
pv->prev = pend; 
pend->next = pv;
pend = pv;} 
// Тізім соңына нұсқауышты жаңарту
}
Сұрыпталған тізімді алу үшін бұл əдісті «Сызықтық тізімдер» бөлімінде, 
124 б. келтірілген 
add_sort
сұрыпталған тізімді қалыптастыру функциясына 
ұқсас əдіске алмастыруға болады.
Жоғарыдағы мысалда көрсетілген
fi nd
əдісі берілген кілті бойынша 
түйінді іздеуді орындайды да, іздеу сəтті өткен жағдайда нұсқауышты түйінге 
қайтарады, ал тізімде мұндай түйін болмаған жағдайда, 0 мəнін қайтарады:


230
Node * List::fi nd( int d ){ 
Node *pv = pbeg;
while (pv){
if(pv->d == d)break; 
pv = pv->next;
}
return pv;
}
insert 
əдісі тізім ішіне жаңа түйінді 
key
кілті бар түйіннен кейін ор-
наластырады жəне кірістірілген түйінге нұсқауышты қайтарады. Егер мұндай 
түйін тізімде жоқ болса, кірістіру орындалмайды да, 0 мəні қайтарылады:
Node * List::insert(int key, int d){


Достарыңызбен бөлісу:
1   ...   203   204   205   206   207   208   209   210   ...   466




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет