Как мы можем понять, какая структура данных необходима? - PullRequest
3 голосов
/ 04 мая 2011

Предположим, я пытаюсь разработать алгоритм для решения проблемы.

Как мне поступить?

Как понять, какая структура данных подходит для решения моей проблемы?

Когда я пытался разработать алгоритм для оценки выражения инфикса, я подумал, что было бы целесообразно использовать два стека для решения проблемы. Но позже я обнаружил, что дерево нужно для работы.

Как разработчик узнал, что дерево будет подходящим?

Ответы [ 3 ]

2 голосов
/ 04 мая 2011

Эмпирического правила не существует. Для вашей конкретной проблемы может потребоваться совершенно новая структура данных. Это часто происходит в задачах ИИ, поэтому Lisp был таким удобным языком, потому что было легко создавать новые структуры данных из списков. (или на самом деле s-выражения, которые эквивалентны деревьям).

Но большинство проблем, с которыми вы сталкиваетесь в рабочем мире, гораздо более приземленные и могут быть легко решены с помощью стандартной структуры данных. Через некоторое время вы начинаете связывать определенные проблемы с определенными решениями (получить что-то быстрое - хеш-таблицу. Получить что-то быстрое, но также есть некоторые требования к порядку - дерево) и можете разложить более сложную проблему на более простые компоненты, которые можно решить с помощью этих тип стандартных структур данных.

0 голосов
/ 24 мая 2015

Сначала правильно поймите ситуацию, а затем подумайте, что является наиболее подходящим в этой проблеме.Подходящее средство, которое быстро и занимает меньше памяти.

0 голосов
/ 04 мая 2011

Первый: понять проблему.

Второе: укажите требования к хранилищу, поиску и логике.

Этого обычно достаточно, чтобы понять, какие структуры данных необходимы и уместны.

Кроме того, ваш вопрос слишком общий и содержит слишком мало информации для более точного ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...