Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Return pv;



}

Return 0;

}

Метод remove удаляет узел с заданным ключом из списка и возвращает значение true в случае успешного удаления и false, если узел с таким ключом в списке не найден:

bool List::remove(int key){

if(Node *pkey = find(key))

{

if (pkey == pbeg){ // Удаление из начала списка

pbeg = pbeg->next;

pbeg->prev = 0;}

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;

cout << endl << "list: ";

while (pv){

cout << pv->d << ' ';

pv = pv->next;

}

cout << endl;

}

void List::print_back(){

Node *pv = pend;

cout << endl << " list back: ";

while (pv){

cout << pv->d << ' ';

pv = pv->prev;

}

cout << endl:

}

Деструктор списка освобождает память из-под всех его элементов:

List:: ~List () {

i f (pbeg!= 0){

Node *pv = pbeg;

while (pv){

pv = pv->next:

Delete pbeg;

pbeg = pv;}

}

}

Ниже приведен пример программы, использующей класс List. Программа формирует список из 5 чисел, выводит его на экран, добавляет число в список, удаляет число из списка и снова выводит его на экран:

int main(){





Дата публикования: 2014-11-28; Прочитано: 238 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...