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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Nastya_GGG
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 11
#1

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

02.06.2013, 18:33. Просмотров 436. Ответов 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++
Нужно удалить всех студентов с оценками 2. Entry *begin = new Entry; int mark=2; Entry *current=begin; while(current){ ...

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

Удаление элемента из списка - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; struct FileStruct //Структура файла { ...

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

Удаление элемента из двусвязного списка - C++
Помогите пожалуйста найти где я ошибся. Элементы в список добавляются, вывод на экран тоже работает, но после удаления любого элемента:...

Удаление элемента из двусвязного списка - C++
Надо удалить элемент из двусвязного списка, если выполняется условие (2013-(current-&gt;god)&lt;3). Я пытаюсь как могу, но что то все равно...

Удаление последнего элемента списка - C++
А вот когда удаляешь последний элемент списка, обязательно в предпоследнем присваивать указатель на NULL?

Удаление последнего элемента из списка - C++
Есть функция void List::DeleteElement(void) { Element *vsp; if (!begin) { cout &lt;&lt; &quot;Is empty!\n&quot;; return; } else...

Удаление минимального элемента списка - C++
Помогите, пожалуйста, переделать или исправить удаление мин. элемента списка. #include&lt;iostream&gt; #include&lt;stdlib.h&gt; #include&lt;time.h&gt; ...

Удаление максимального элемента списка - C++
Есть двусвязный список, нужно удалить в нем максимальный элемент. Подскажите, где ошибка. class Spisok { struct Entry { ...


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

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

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