| Список на основе массива | 
|  | 
| 
| Ramilyanamana | Дата: Среда, 14 Октября 2015, 11:46 | Сообщение # 1 |  |   Биззи Джей Ужасный Сейчас нет на сайте | На лабораторной дали задание реализовать программу, использую список на основе массива. Объясните пожалуйста, что это за список. Это какой-то массив структур. Или что? До сих пор понять не могу. В интернете ничего толкового не нашел. Заранее благодарю 
 
   
   |  |  |  |  | 
| 
| linux | Дата: Среда, 14 Октября 2015, 12:06 | Сообщение # 2 |  | частый гость Сейчас нет на сайте | Я так понимаю - это список в котором ссылки на следующие элементы - это индексы элементов в массиве. И весь список лежит в одном массиве. |  |  |  |  | 
| 
| Ramilyanamana | Дата: Среда, 14 Октября 2015, 12:10 | Сообщение # 3 |  |   Биззи Джей Ужасный Сейчас нет на сайте | linux, не совсем вас понял. можно подробней? 
 
   
   |  |  |  |  | 
| 
| Gudleifr | Дата: Среда, 14 Октября 2015, 15:42 | Сообщение # 4 |  |   почти ветеран Сейчас нет на сайте | Ramilyanamana, ну, если Вы хотите стать крутым программистом, запомните: нет структур данных кроме массивов! Все эти STL-разносолы - для умственно недоразвитых пользователей. Какую бы фиговину вы не собрали из данных, на самом дне, все равно, будут массивы... 
 Далее Вы можете продолжать читать мой ответ или сразу перейти к 1-му тому "Искусства программирования" Кнута - там списки разжеваны подробно.
 
 Что такое список? Это набор элементов, каждый из которых, кроме собственно данных содержит ссылку на следующий. "Мышка - за Кошку, Кошка - за Жучку, Жучка - за Внучку..."
 
 Как это засунуть в массив? Если данные целочисленные (или массив состоит из структур), то поле "следующий" (со значением "номер следующего") вполне может быть приписан к данным.
 
 Иначе, например, как у нас выше, где массив строковый - "Внучка", "Жучка".., нужен отдельный массив с номерами.
 
 Далее должна следовать (у Кнута так и есть) лабуда про вставку и удаление элементов, циклические и двусвязные списки и т.п. и т.д.
 
 Наконец, зачем в это влезать, если есть STL? Повторю, STL - для дебилов. Работа со сложными типами данных окупается только тогда, когда эти данные сложны и велики в объеме (поэтому ООП - тоже для дебилов), но когда это так, "стандартные" структуры нас не устроят и надо их писать под себя с нуля.
 
 Просто об этом: Керниган Б., Пайк Р. Практика программирования.
 Сложно: Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов.
 
 Добавлено (14 октября 2015, 15:42)
 ---------------------------------------------
 P.S. Вообще же, если есть проблема со структурами данных, то ее сначала надо локализовать.
 В чем проблема:
 1. Как использовать списки в программе?
 2. Как работают//устроены операции над списками?
 3. Как работают/устроены те ("атомарные") операции над списками, которые зависят от представления списка?
 4. Непонятно, как разделить на (1)-(3)?
 
 Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
 
 
 Сообщение отредактировал Gudleifr - Среда, 14 Октября 2015, 15:44 |  |  |  |  | 
| 
| falcoware | Дата: Среда, 14 Октября 2015, 17:11 | Сообщение # 5 |  |   старожил Сейчас нет на сайте | Ramilyanamana, я бы помог, но ты + в репу не даешь. Обидно!   |  |  |  |  | 
| 
| linux | Дата: Среда, 14 Октября 2015, 17:13 | Сообщение # 6 |  | частый гость Сейчас нет на сайте | Ramilyanamana, берёшь классический список, но вместо выделения памяти под каждый элемент раскладываешь их по массиву. Вместо указателя, хранишь индекс. Подробнее, только готовый код написать, но мне оно без надобности...
 |  |  |  |  | 
| 
| Ramilyanamana | Дата: Четверг, 15 Октября 2015, 10:39 | Сообщение # 7 |  |   Биззи Джей Ужасный Сейчас нет на сайте | Спасибо, разобрался. Нужно использовать динамический массив 
 
   
   |  |  |  |  | 
| 
| Gudleifr | Дата: Четверг, 15 Октября 2015, 10:46 | Сообщение # 8 |  |   почти ветеран Сейчас нет на сайте | Скорее всего, нет. Если только препод не указал на это явно.Цитата Ramilyanamana (  )  Нужно использовать динамический массив.
 
 Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
 |  |  |  |  | 
| 
| Saitei | Дата: Четверг, 15 Октября 2015, 23:21 | Сообщение # 9 |  | старожил Сейчас нет на сайте | Цитата Ramilyanamana (  ) Спасибо, разобрался. Нужно использовать динамический массивНеобязательно. Узлы списка можно располагать и в статическом массиве
 |  |  |  |  |