Форум программистов, компьютерный форум CyberForum.ru

Удаление элемента со списка - C++

Восстановить пароль Регистрация
 
Nastya_GGG
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 11
02.06.2013, 18:33     Удаление элемента со списка #1
Вот у меня есть код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
struct OS
{   char Name [20];
    int Roz;
    int Op;
};
struct TList
{   OS info;         //інформаційне поле
    TList *next;     //адреса наступного елемента
};
class CList 
{   TList *head;        //адреса голови списку
 public:
    CList(){ head =new TList;
    head=NULL;
};
void ReadConsole()
    {int i=0;
     char nam[20];
     int roz;
     int op;
     TList *pv,*pn;
     int flag;
     cout<<"Введите элементы списка "<<endl;
     cout<<"Введите имя операционной системы :";
     cin>>nam;
     cout<<"Введите розрядность операционной системы :";
     cin>>roz;
     cout<<"Введите минимальный объём памяти :";
     cin>>op;
     head=Head(nam,roz,op);
     cout<<"Продолжать ?Для продолжения введите 1"<<endl;
     cin>>flag;
     if (flag==1)
       {cout<<"Введите элементы списка "<<endl;
        cout<<"Введите имя операционной системы :";
        cin>>nam;
        cout<<"Введите розрядность операционной системы :";
        cin>>roz;
        cout<<"Введите минимальный объём памяти :";
        cin>>op;
        pv=Head(nam,roz,op);//выделяем память для второго эл. списка 
        head->next=pv;//записываеи адресс 2-го эл. в предыдущий элемент 
     do{
     cout<<"Продолжать ?Для продолжения введите 1"<<endl;
     cin>>flag;
     if (flag==1){
        cout<<"Введите элементы списка "<<endl;
        cout<<"Введите имя операционной системы :";
        cin>>nam;
        cout<<"Введите розрядность операционной системы :";
        cin>>roz;
        cout<<"Введите минимальный объём памяти :";
        cin>>op;
     pn=Head(nam,roz,op);
     pv->next=pn;}
     else break;
     pv=pn;
     }while (1);
}
};  //введення даних з клавіатури


Помогите реализовать функцию удаление элемента списка . Не могу понять , как это можно сделать. я так понимаю , сначала нужно создать указатель на элемент списка , который мы хотим удалить , ну а дальше что делать ?
Помогите , пожалуйста , разобраться с этим вопросом.
Заранее огромное спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2013, 18:33     Удаление элемента со списка
Посмотрите здесь:

C++ Удаление элемента из списка
C++ Удаление максимального элемента списка
C++ Удаление элемента из списка и поиск элемента
Удаление элемента списка и всего списка C++
Удаление элемента из списка C++
C++ Удаление элемента из списка
Удаление элемента из списка C++
C++ Удаление элемента из списка
C++ Удаление элемента из начала списка
C++ Удаление элемента из односвязного списка
Реализация списка.Удаление хвостового элемента.Поиск элемента C++
C++ Удаление элемента из списка

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
02.06.2013, 20:17     Удаление элемента со списка #2
Цитата Сообщение от Nastya_GGG Посмотреть сообщение
Помогите реализовать функцию удаление элемента списка
Т.к. список односвязный, то перебором с головы находим элемент для удаления.
При этом нужно еще запомнить указатель на предыдущий элемент, чтобы переустановить связи.
Т.е. имеем цепочку элементов: prev -> cur -> next. Для prev устанавливаем next в качестве следующего, после этого удаляем память, занимаемую cur элементом.
Yandex
Объявления
02.06.2013, 20:17     Удаление элемента со списка
Ответ Создать тему
Опции темы

Текущее время: 19:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru