![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
}
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!