Alex_Dep
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 2
|
|
#1 | |
Удаление всех отрицательных в односвязном списке - C++19.06.2012, 01:47. Просмотров 498. Ответов 0
Метки нет Все метки)
(
не могу понять как мне сделать так что бы если введены все отрицательные числа он удалял их и выводил что список пусто. В моей программе он удаляет все отрицательные, но если все элементы отрицательные выдает ошибку. подскажите чего не хватает моей программе, заранее при много благодарен.
Код
#include <iostream> #include <windows.h> #include <locale> using namespace std; class Node { public: int numer; Node* next; }; void main() { setlocale(LC_ALL,"rus"); Node* head = NULL; Node* body = NULL; short action = -1; while (1) { cout<<"1. Добавить элемент"<<endl; cout<<"2. Просмотр списка"<<endl; cout<<"3. Поиск отрицательных элементов"<<endl; cout<<"4. Удаление первого отрицательного элемента"<<endl; cout<<"0. Выход"<<endl; cout<<"Ваш Выбор: "; cin>>action; if (action == 0) { system("CLS"); break; } if (action == 1) { Node* ptr = new Node; int m; cout<<"Введите Число: "; cin>>m; ptr->numer = m; ptr->next = NULL; if (head == 0) { head = ptr; body = ptr; system("CLS"); continue; } body->next = ptr; body = ptr; system("CLS"); continue; } if (action == 2) { Node* ptr = NULL; if (head == NULL) { cout<<"СПИСОК ПУСТ"<<endl; system("PAUSE"); system("CLS"); continue; } cout<<" СПИСОК "<<endl; ptr = head; while (1) { cout<<ptr->numer<<" "; if (ptr->next == NULL) break; ptr = ptr->next; } cout<<"\n\n"; system("PAUSE"); system("CLS"); continue; } if (action == 3) { body=head; while (body!=NULL) { if (body->numer<0) cout<<body->numer<<" "; body = body->next; } cout<<endl; system("PAUSE"); system("CLS"); } if (action == 4) { system("CLS"); Node* del = NULL; Node* last = head; body=head; while (body!=NULL) { if (body->numer<0) { del=body; body=body->next; last->next=body; if (del==head) head=body; delete del; } else if(body && (body->numer<0 && body->next==NULL)) { head==NULL; } else { last=body; body=body->next; } } } cout<<endl; } }
0
|
|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
19.06.2012, 01:47 |
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Удаление всех отрицательных в односвязном списке (C++):
0
Удаление/добавление записи по ключу в односвязном списке - C++ Как можно сместить ID в односвязном списке после удаление элемента - C++ |
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
19.06.2012, 01:47 |
Привет! Вот еще темы с ответами:
1
Ошибка в односвязном списке - C++ Сортировка вставками в односвязном списке - C++ Использование деструктора в односвязном списке с++ - C++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |