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



Pdf көрінісі
бет206/465
Дата09.01.2023
өлшемі3,66 Mb.
#60709
түріПрограмма
1   ...   202   203   204   205   206   207   208   209   ...   465
Байланысты:
аибм сплюс

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   ...   202   203   204   205   206   207   208   209   ...   465




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

    Басты бет