|
Модераторы: bsa |
|
Nsom |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 11.11.2018 Репутация: нет Всего: нет |
Здравствуйте. Помогите пожалуйста , нужно изменить функцию чтоб она удаляла не отрицательные элементы а положительные (с++)
#include "pch.h" #include <iostream> using namespace std; struct node { int info; node *link; }; class List { protected: node *head; // Указатель на начало списка node *tail; // Указатель на конец списка public: List(); ~List(); void fillingList(int); void searchNegative(); void elementRemove(node*, node*); void outputList(); }; List::List() { head = NULL; tail = NULL; } List::~List() { node *temp = head; // Временный указатель на начало списка while (temp != NULL) { temp = head->link; delete head; head = temp; } } void List::fillingList(int n) { int number; for (int i = 0; i < n; i++) { node *temp = new node; // Выделение памяти cin >> number; temp->info = number; // Временное запоминание принятого числа temp->link = NULL; // Указание, что следующее звено новосозданной структуры пока пустое if (head != NULL) // Если список не пуст { tail->link = temp; // Указание, что следующее звено списка это новосозданная структура tail = temp; } else { head = tail = temp; // Если список не пуст, добавление первого элемента } } } void List::searchNegative() { node *temp = head; // Временный указатель на начало списка node *prev = temp; while (temp != NULL) // Пока в списке что-то встречается { if (temp->info < 0) { node* ptrToNext = temp->link; //added elementRemove(temp, prev); temp = ptrToNext; //added continue; } prev = temp; temp = temp->link; // Сдвигаем указатель на начало на адрес следующего элемента } } void List::elementRemove(node *temp, node *prev) { if (temp == head) { head = temp->link; delete temp; } else if (temp == tail) { tail = prev; delete temp; } else { //prev = temp->link; prev->link = temp->link; // added delete temp; //temp = prev; } } void List::outputList() { node *temp = head; // Временный указатель на начало списка while (temp != NULL) // Пока в списке что-то встречается { cout << temp->info << " "; // Выводим значения из списка на экран temp = temp->link; // Сдвигаем указатель на начало на адрес следующего элемента } cout << endl; } int main() { setlocale(LC_ALL, "russian"); system("color F0"); int n; List queue; cout << "Введите кол-во элементов списка: "; cin >> n; cout << "Введите числа: "; queue.fillingList(n); queue.searchNegative(); queue.outputList(); system("pause"); return 0; } |
|||
|
||||
kapbepucm |
|
||||
Опытный Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: нет Всего: 12 |
Без подсветки не читабельно!
Если по теме, попробуй заменить
-------------------- (С) kapbepucm |
||||
|
|||||
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |