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


if(Node *pkey = fi nd(key)){ // key кілті бар



Pdf көрінісі
бет207/465
Дата23.05.2022
өлшемі3.66 Mb.
#458577
түріПрограмма
1   ...   203   204   205   206   207   208   209   210   ...   465
pavlovskaia-jogargy-dengeili

if(Node *pkey = fi nd(key)){ // key кілті бар 
// түйінді іздеу 
// Жаңа түйінге жады бөлу жəне оны инициалдау 
Node *pv = new Node(d);
// Жаңа түйіннің келесі түйінмен байланысын орнату 
pv->next = pkey->next;
// Жаңа түйіннің өзінен бұрынғы түйінмен
// байланысын орнату: 
pv->prev = pkey;
// Алдыңғы түйіннің жаңа түйінмен
// байланысын орнату: 
pkey->next = pv;
// Келесі түйіннің жаңа түйінмен
// байланысын орнату: 
if( pkey != pend) (pv->next)->prev = pv; 
// Егер түйін тізім соңына кірістірілсе,
// тізім соңына нұсқауышты жаңарту: 
else pend = pv; 
'
return pv;
}
return 0;
}
remove
əдісі тізімнен берілген кілті бар түйінді өшіреді жəне өшіру сəтті 
орындалған жағдайда t
rue
мəнін, мұндай кілті бар түйін тізімде табылмаса, 
false
мəнін қайтарады:
bool List::remove(int key){ 
if(Node *pkey = fi nd(key)){
if (pkey == pbeg){ // Тізім басынан өшіру
pbeg = pbeg->next; 
pbeg->prev = 0; } 


231
else if (pkey == pend){ // Тізім соңынан өшіру 
pend = pend->prev; 
pend->next = 0;} 
else { 
// Тізім ортасынан өшіру
(pkey->prev)->next = pkey->next; 
(pkey->next)->prev = pkey->prev;} 
delete pkey; 
return true;} 
return false;
}
Тізімді тура жəне кері бағыттарды басып шығару əдістері соларға сəйкес 
сілтемелер арқылы көше отырып, тізімді жеке элементтер бойынша қарап 
шығады:
void List::print(){ 
Node *pv = pbeg; 


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




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

    Басты бет