Задать вопрос
@Catmengi
Зачем я это делаю? Просто потому что

Структуры данных, как пользоваться,с чем едят и какие бывают кроме распространенных деревьев и хеш мапов?

Я изучаю C . И сейчас только 2 структуры данных которые я знаю и применял(массив и связанный список(круговой)). Я знаю о существование структур данных по типу деревьев и хеш мапов, но я не знаю где, как, и зачем их применять. Допустим есть условная игра с открытым миром, 3д,состоящим из блоков 128x128x128. Какую структуру данных тут применить? Единственное что мне приходит в голову это условный связанный список у которого есть 4 направления роста (x+,x-,y+,y-) но мне кажется что это костыль. Помогите разобраться со структурами данных. Где их применять и какие применяются в реальных примера, особенно в разработке игр, я знаю что C не лучший выбор для этого но мне очень нравиться его семантика.
  • Вопрос задан
  • 94 просмотра
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
mayton2019
@mayton2019
Bigdata Engineer
Для блочной игры типа Minecraft можно применять Octree https://en.wikipedia.org/wiki/Octree

Практически везде в С и других языках применяются хеш-мапы и красно-черные деревья. Они
закрывают 90% всех твоих потребностей. Вот изучи их и используй. Все прочие экзотические
структуры данных - надо обсуждать применительно к каждому случаю. Многие из них
являются просто композицией уже известных. Например LRU-лист это хеш-мапа и связный список.
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
Допустим есть условная игра с открытым миром, 3д,состоящим из блоков 128x128x128. Какую структуру данных тут применить?


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

Но кроме 3д мира, тебе еще надо персонажа хранить, инвентерь. А может быть несколько персонажей. Вот и думай.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы