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

Связные списки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 118, средняя оценка - 4.92
Skies
0 / 0 / 0
Регистрация: 30.06.2012
Сообщений: 23
06.09.2012, 02:07     Связные списки #1
Доброго времени суток. И у меня такая проблема - не могу разобраться со связными списками.
Не могли бы вы помочь мне с этим, допустим, привести в пример какую-нибудь структуру и показать пример создания\удаления списка, добавление\удаление элемента списка и еще какие нибудь действия со списками и структурами.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2012, 02:07     Связные списки
Посмотрите здесь:

Связные списки C++
C++ Связные списки
C++ Связные списки
Связные списки C++
C++ Связные списки.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
06.09.2012, 02:18     Связные списки #2
В книге "Фридман. C++ архив программ" есть подробно прокомментированные примеры односвязного и двусвязного списка
Skies
0 / 0 / 0
Регистрация: 30.06.2012
Сообщений: 23
06.09.2012, 02:55  [ТС]     Связные списки #3
так-то да, но с классами еще не знаком поэтому эта книга для меня еще рановата
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
06.09.2012, 03:15     Связные списки #4
Цитата Сообщение от Skies Посмотреть сообщение
но с классами еще не знаком поэтому эта книга для меня еще рановата
Ну тогда вот пример на си
Вложения
Тип файла: rar Simple list.rar (4.3 Кб, 447 просмотров)
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
06.09.2012, 12:43     Связные списки #5
Простенький пример реализации связного списка

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
#include <iostream> 
using namespace std; 
 
struct link 
{ 
    int data; 
    link* next; 
}; 
 
link* first = NULL; 
 
void additem(int d) // добавление элементов список
{ 
    link* newlink = new link; 
    newlink->data = d; 
    newlink->next = first; 
    first = newlink; 
} 
 
void display() // вывод на экран
{ 
    link* current = first; 
    while(current) 
    { 
        cout << current->data << endl; 
        current = current->next; 
    }  
}  
 
void del() // удаление элементов
{ 
    link* current = first; 
    while(current != NULL) 
    { 
        link* temp = current; 
        current = current->next; 
        delete temp; 
    }  
    cout << "Elementi Udaleni " << endl;
}
 
int main() 
{ 
    additem(13); 
    additem(12); 
    additem(11);  
 
    display();  
}
Skies
0 / 0 / 0
Регистрация: 30.06.2012
Сообщений: 23
06.09.2012, 17:03  [ТС]     Связные списки #6
а если мне нужно удалить один элемент без разрыва цепи, как это сделать?
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
06.09.2012, 17:24     Связные списки #7
Удаление элемента в Списке По этой ссылке тема обсуждалась
EricJForster
1 / 1 / 0
Регистрация: 10.06.2016
Сообщений: 32
Завершенные тесты: 1
04.07.2016, 16:15     Связные списки #8
Подскажите пожалуйста, а для чего они вообще нужны? ведь того же результата можно добиться гораздо более удобными и быстрыми способами...
_Ivana
2192 / 1397 / 124
Регистрация: 01.03.2013
Сообщений: 4,159
Записей в блоге: 2
04.07.2016, 16:18     Связные списки #9
Цитата Сообщение от EricJForster Посмотреть сообщение
ведь того же результата можно добиться гораздо более удобными и быстрыми способами...
подкупом или угрозами?
Новичок
Модератор
 Аватар для Новичок
1141 / 712 / 148
Регистрация: 17.07.2012
Сообщений: 4,044
Записей в блоге: 1
Завершенные тесты: 2
04.07.2016, 22:42     Связные списки #10
Цитата Сообщение от EricJForster Посмотреть сообщение
а для чего они вообще нужны?
Ну вставка и удаление работают за константное время в отличие от массивов...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2016, 23:42     Связные списки
Еще ссылки по теме:

Стэк и связные списки C++
Связные списки C++
C++ однонаправленные связные списки

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

Или воспользуйтесь поиском по форуму:
fire_Rising
 Аватар для fire_Rising
10 / 11 / 2
Регистрация: 11.05.2016
Сообщений: 111
04.07.2016, 23:42     Связные списки #11
EricJForster, ну не просто же так они существуют С массивами сделать тоже самое намного труднее, то же удаление элемента, здесь перенести указатель и удалить, а в массиве сдвигать весь массив + все это очень ресурсозатратно.

Добавлено через 1 минуту
Skies, советую посмотреть уроки Дениса Маркова на youtube, он подробно разбирает односвязный список без классов, сам смотрел и спокойно разобрался если что это не реклама.
Yandex
Объявления
04.07.2016, 23:42     Связные списки
Ответ Создать тему
Опции темы

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