Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 2
Регистрация: 28.04.2013
Сообщений: 11
1

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

02.06.2013, 18:33. Просмотров 746. Ответов 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);
}
};  //введення даних з клавіатури


Помогите реализовать функцию удаление элемента списка . Не могу понять , как это можно сделать. я так понимаю , сначала нужно создать указатель на элемент списка , который мы хотим удалить , ну а дальше что делать ?
Помогите , пожалуйста , разобраться с этим вопросом.
Заранее огромное спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.06.2013, 18:33
Ответы с готовыми решениями:

Реализация списка.Удаление хвостового элемента.Поиск элемента
Всем привет,мое задание выглядит так : В класс List&lt;T&gt; из классной работы добавить следующие...

Удаление элемента списка и всего списка
Компилируется, но не работает. Что и как исправить? #include &lt;cstdlib&gt; #include &lt;iostream&gt;...

Удаление элемента из списка и поиск элемента
Нужно удалить определенный элемент из списка. Найти элемент в списк и вывести на него всю...

Удаление элемента из списка
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; struct...

1
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
02.06.2013, 20:17 2
Цитата Сообщение от Nastya_GGG Посмотреть сообщение
Помогите реализовать функцию удаление элемента списка
Т.к. список односвязный, то перебором с головы находим элемент для удаления.
При этом нужно еще запомнить указатель на предыдущий элемент, чтобы переустановить связи.
Т.е. имеем цепочку элементов: prev -> cur -> next. Для prev устанавливаем next в качестве следующего, после этого удаляем память, занимаемую cur элементом.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.06.2013, 20:17

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Удаление элемента из списка
В чем ошибка? Проблема с функцией Tree_Delete .exe вызвал срабатывание точки останова., произошло...

Удаление элемента из списка
необходимо удалить первый элемент из списка, помогите пожалуйста переписать функцию и помогите с...

Удаление элемента из списка
Нужно удалить всех студентов с оценками 2. Entry *begin = new Entry; int mark=2; Entry...

Удаление элемента из списка
Нужно удалить из списка элемент, стоящий после элемента на который указывает Р. Очень срочно надо!...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.