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){ // Тізім басынан өшіру
Достарыңызбен бөлісу: |