![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 2 Всего: 40 |
Зачем нужны рекурсивные структуры?
Вот, например есть у меня рекурсивная стурктура:
Ведь теперь я могу написать что-то вроде этого: s1._s->_s->_s->_s->..., где ... - всё тоже _s-> повторяемое любое кол-во раз. Не злитесь, если вопрос глупый, я просто ещё не все основы понять могу. -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: нет Всего: 35 |
Вопрос касается структур данных.
Эта структура называется List. Обычно его сравливают с массивом Достоинства листа по сравнению с массивом: 1) Вставка и удаление происходит элемента происходит за О(1) 2) Неограничен максимальный размер (всегда можно добавить доп.элемент, в отличии от массива) Недостаток: 1) поиск элемента i занимает O(n) 2) в твоем случае, двигаться по листу можно только от начало в конец. (Проблему можно решить двух сторонним листом) Это основные моменты. -------------------- Никогда не говори никогда |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 3 Всего: 317 |
эта структура - не рекурсивная (потому, что в рекурсии выход нужен
то что ты описал это элементарная структура данных, основа многого, называется "one way linked list", (не знаю как по-русски, сорри) самый первый указатель сохраняют и называют "голова" можно сохранить и последний и назвать "хвост" так можно использовать для хранения данных:
-------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
Связный список - это динамическое множество, элементы которого линейно упорядочены, но порядок определяется не номерами, а указателями, входящими в состав списка. Проще говоря, это некоторая структура, определенная пользователем, одним из полей которой будет указатель на экземпляр такой же структуры. Обработка информации содержащейся в списке сводится к тому, что бы пройти по всему списку, используя указатель, как связующее звено между элементами. Последнему элементу(обычно называют Tail) связного списка в поле указателя на следующий экземпляр структуры, присваивается пустой указатель NULL. Вот тута про структуры данных: http://alglib.manual.ru/articles/struct.php to bilbobagginz А я бы использовал std::list Это сообщение отредактировал(а) bel_nikita - 7.6.2004, 10:29 |
|||
|
||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: нет Всего: 35 |
Или последний элемент может указывать на первый, тогда получается Circularly Linked List. -------------------- Никогда не говори никогда |
|||
|
||||
| gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 2 Всего: 40 |
Спасибо, уважаемые, всем спасибо.
-------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Боевик, это по-русски зовется односвязный список.
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: нет Всего: 35 |
Baa , спасибо.
-------------------- Никогда не говори никогда |
|||
|
||||
| cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
Зачем? Просто будет бесконеная рекурсия...
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
З.Ы, с пом. таких "рекурсивных структур" можно организовывать не только списки, но и деревья (пример - сбалансированное двоичное дерево, где в каждом элементе хранится указатель на "красный" и "чёрный" соседние элементы).
-------------------- ![]() |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |