![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
FortMax |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 2.10.2006 Где: Россия, г. Бироби джан ЕАО Репутация: нет Всего: 5 |
Кто-нибудь может на пальцах обьяснить что такое связанные списки ???
![]() -------------------- ![]() |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
||||
|
||||
FortMax |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 2.10.2006 Где: Россия, г. Бироби джан ЕАО Репутация: нет Всего: 5 |
zim22, это-то понятно, а вот как и для чего их применять ???
-------------------- ![]() |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
FortMax, тебе их применять не надо
|
|||
|
||||
FortMax |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 2.10.2006 Где: Россия, г. Бироби джан ЕАО Репутация: нет Всего: 5 |
-------------------- ![]() |
|||
|
||||
Static |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 6.11.2008 Репутация: нет Всего: 2 |
имеется в виду, что если б было надо - вопрос стоял бы по-другому
![]() Например - а как сделать ОТАК? А в ответ - используй связный список ![]() --------------------
Я не настолько безнадежен, как кажется... |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
это динамическая структура данных. она испольуется тогда, когда необходима. если она вам не нужна - не заморачивайтесь ![]() |
|||
|
||||
FortMax |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 2.10.2006 Где: Россия, г. Бироби джан ЕАО Репутация: нет Всего: 5 |
я просто пока теорию штудирую=) вот на них и наткнулся, но так муторно написано, хотелось просто узнать когда и как их используют
![]() Добавлено через 1 минуту и 19 секунд ладно пока не буду -------------------- ![]() |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
FortMax, это такая фигня для хранения данных. и все данные связаны между собой одним или двумя узлами ( ну это все грубо говоря ) эх, помню долго врубался в эти указатели. если что спрашивай )
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
FortMax, есть несколько типов контейнеров:
vector - динамический массив list - двусвязный список и др. вектор - простейший массив, размеры которого могут меняться во время выполнения программы. Все значения хранятся в непрерывном участке памяти в порядке заполнения (т.е. это аналог обычному выделению памяти через new[], только с автоматическим управлением памятью). Время доступа к каждому элементу постоянно (не зависит от размера массива и номера элемента). Добавление/вставка/удаление не с конца могут быть довольно продолжительными. Все эти операции могут вызвать инвалидацию итераторов (т.е. сделают их не валидными). лист (список) - это двусвязный список, доступ к случайному элементу которого занимает линейное время (зависит от номера элемента), вставка/удаление элементов - константна. Любая такая операция не приводит к инвалидации итераторов (кроме того, который указывал на удаляемый элемент). В простейшем виде, он делается путем добавления в структуру, описывающую элемент списка, указателей prev и next, которые указывают на предыдущий и следующий элемент списка соответственно. |
|||
|
||||
Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 5 Всего: 32 |
Напугали человека, теперь он будет связные списки всячески избегать.
На самом деле если разобраться, то это абсолютно просто. Есть минимум два класса (хотя, можно обойтись и одним, но это сложнее и запутаннее), первый класс имеет указатель на объект второго класса и называется головным. Второй класс, в нашем случае (довольно упрощённом), является телом. В нём находится указатель на объект того же класса. Когда мы добавляем к списку новый объект, мы сообщаем об этом головному классу. Тот смотрит, если в его указатель уже что-то записано, то он делегирует размещение нового элемента этому объекту (иначе новый элемент заносится в этот указатель). Объект проверяет свой указатель и если он пуст, присваивает ему адрес нового элемента, если нет - передаёт дальше. Преимуществом такого подхода является манипулирование группой объектов из головного класса и наличие только одного указателя. Недостатком - время выполнения, чтобы получить доступ к определённому объекту, нужно найти его какой-либо идентификатор (конечно нужно позаботится о его создании заранее) перебирая по порядку все объекты.
нельзя применять контейнеры не зная, что они делают... имхо Это сообщение отредактировал(а) Cheloveck - 6.4.2009, 16:18 -------------------- ![]() |
|||
|
||||
Slammer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.3.2006 Репутация: 1 Всего: 1 |
Всем привет. Решил не создавать новую тему, потому что тоже начал учить связной список, поскольку надо выполнить задачку:
Сделать односторонний связной список, в который вводим целые числа. И к ней функцию, которая выкидывает из списка те элементы, за которыми идут парные числа. Можно попросить пдправить ошибки в этом коде, чтобы хотябы компилятор не ругался?(( Спасибо!
|
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
не ругается.
|
|||
|
||||
FortMax |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 2.10.2006 Где: Россия, г. Бироби джан ЕАО Репутация: нет Всего: 5 |
![]() -------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |