Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 08.01.2018, 19:40   #1
Ko1iN
Новичок
 
Регистрация: 08.01.2018
Сообщений: 1
Репутация: 10
По умолчанию Удаление элементов из списка

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

Цитата:
#include <iostream>
#include <list>
#include <stdio.h>
#include <Windows.h>
#include <cstdlib>

using namespace std;

struct List
{
double a;
List *next;

List* Read(List *L) //Запись элементов в список
{
List *a = new List;
a->next = NULL;
cout << "Введите элемент: ";
cin >> a->a;
if (L == NULL)
{
L = a;
}
else
{
List *c = L;
while (c->next != NULL) c = c->next;
c->next = a;
}
return L;
}

void Delete(int p, List *&L) // Удаление элементов из списка по их позиции
{
List*& a = L;
List* b = a->next;
if (p == 1) {
a = a->next;
cout << "Элемент удален" << endl;
}
else{

while (p>2)
{
p--;
a = a->next;
b = b->next;
if (b == NULL) break;
}
if (b != NULL) {
a->next = b->next;
cout << "Элемент удален" << endl;
}
else cout << "Такой позиции нет" << endl;
}
}
};

void Printlist(List *L)
{
cout<<"\nВаш список: ";
while (L != NULL)
{
cout << L->a << " ";
L = L->next;
}
cout << endl;
}

void menu(List *L)
{
int choice;
do
{

cout << "\nВыберите необходимое действие:\n1-Ввод элементов в список\n2-Удаление элементов списка\n3-Вывод списка\n" << endl;
cin >> choice;
switch (choice)
{
case 1:
L = Read(L);
break;

case 2:
int p;
cout << "Введите p: ";
cin >> p;
Delete(p, L);
break;

case 3:

Printlist(L);
break;
}
int main()
{
List* list = NULL;
setlocale(LC_ALL, "Rus");
int choice, i;
cout << "Здравствуйте, хотите создать новый список?\n1-да\n0-нет\n" << endl;
cin >> choice;
if (choice == 1)
{
menu(list);
}
getchar();getchar();
return 0;
}
Ko1iN вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление элементов списка Kir94 Паскаль 2 17.10.2015 13:00
Удаление из линейного списка элементов kalosha-stepa Паскаль 3 08.11.2012 21:16
С++ Строки - списки. Удаление элементов списка. Daramos Помощь студентам 0 16.12.2010 10:05
Удаление элементов из списка. grave123 Общие вопросы C/C++ 0 10.03.2010 16:33
Удаление элементов из списка Wi1D Помощь студентам 0 18.05.2009 00:23


15:32.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru