Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Alexandr93
2 / 2 / 1
Регистрация: 09.11.2010
Сообщений: 65
1

Двунаправленный список

02.03.2011, 09:47. Просмотров 726. Ответов 3
Метки нет (Все метки)

Помогите пожалуйста удалить заданный элемент из двунаправленного списка...
Напишите как это делается
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2011, 09:47
Ответы с готовыми решениями:

двунаправленный список
Двунаправленный список.Найти сумму первого и последнего элементарных.Заранее...

Двунаправленный список
Вопросы: Почему ругается при таком описании, говорит ; пропустил spis_fam *...

Двунаправленный список
Люди, объясните пжлст, что такое двунаправленный список?

двунаправленный список
Используя двунаправленный список, написать программу сложения двух длинных...

Двунаправленный список!
Не Класс! Помогите создать список (Двунаправленный хоронящий int a ) сама...

3
silent_1991
Эксперт С++
5009 / 3069 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
02.03.2011, 13:06 2
Если не ошибаюсь, вот так. Писал с нуля, не имея перед глазами самого класса List, поэтому, возможно, что-то упустил. Если так, думаю, коллеги поправят.

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
template< typename T >
bool List< T >::delete_need_elem(const T& need)
{
    List< T > *i = _head;
    
    while (i->next != 0)
    {
        if (i->value == need)
        {
            if (i != _head)
                i->prev->next = i->next;
            
            if (i != _tail)
                i->next->prev = i->prev;
 
            delete i;
 
            return true;
        }
 
        i = i->next;
    }
 
    return false;
}
1
Alexandr93
2 / 2 / 1
Регистрация: 09.11.2010
Сообщений: 65
02.03.2011, 16:49  [ТС] 3
Assembler
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
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <fstream>
#include <locale>
using namespace std;
struct point
{int key;//значение элемента структуры
point *next, *ppred;
};
 
 
point* make_point( int n)
{
point *first, *first1,*p;
first=NULL;
for (int i=n;i>0;i--)
 {
 p=new(point);//создание нового элемента структуры
 p->key=i;//значение элемента структуры
 p->next=first;//ссылается на следующий
 first=p;
 if (i!=n){
     first1=p;
     p=p->next;
     p->ppred=first1;
     p=p->ppred;};
}
p->ppred=NULL;
return first;
}
 
point* print_point(point*first)
{
if (first==NULL)return NULL;
point*p=first;
while(p!=NULL)
{
cout<<p->key<<" ";
p=p->next;
}
cout << endl;
 
return first;
}
Добавлено через 1 минуту
Вот начало программы, помогите удалить заданный элемент и добавить в конец один
0
silent_1991
Эксперт С++
5009 / 3069 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
02.03.2011, 17:08 4
Alexandr93, я вам уже написал код, поправьте его так, чтобы работал с вашей структурой, уберите шаблон и всё. Вставка в конех вообще никакого труда не составляет:
C++
1
2
3
4
5
6
List *new_elemt = new List;
new_elem->value = value;
tail->next = new_elem;
new_elem->prev = tail;
new_elem->next = 0;
tail = new_elem;
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2011, 17:08

Двунаправленный список
Чемпион мира по футболу. Страна, год последней победы, число побед. Сортировка...

Двунаправленный список
Вот в примере елем в список добавл в конец, а как сдел чтобы они добавл в...

Двунаправленный список
Как в этом списке поменять ввод элементов с ручного на рандомный, помогите...


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

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

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