Заимствование книг библиотеки данных структуры - PullRequest
2 голосов
/ 13 февраля 2011

Прежде всего, я хотел бы упомянуть, что вопрос является домашним заданием.Я долго размышлял о реализации.

Мне нужно подумать и реализовать программное обеспечение библиотеки, которое имеет следующие функции:

  1. добавить / удалить нового подписчика.
  2. одолжить / вернуть книгу.
  3. какие книги есть у следующего подписчика?
  4. у какого подписчика есть следующая книга?
  5. список подписчиков с большинством книг.

Я думал о реализации кучи и 2 красных черных деревьев, проблема в том, что сложность пространства высока.Поэтому мне было интересно, если я что-то упустил.

Подписчики хранятся в I.Ds, в книгах есть кодовые имена.Одно красное черное дерево предназначено для подписчиков, а другое - для одолженных книг.Куча - это максимальная куча, чтобы выполнить последнее требование.

Я не могу использовать ничего, кроме структур данных.

Спасибо за любой идеи и ответы.

1 Ответ

0 голосов
/ 13 февраля 2011

Полагаю, вы также можете использовать контейнеры, например структуры?Использование:

  • Один хэш-набор / хеш-таблица для книг:Кроме того, сохраните флаг, который определяет, заимствована ли книга и заимствован ли подписчик.
  • Одна хеш-карта из списка книг, связанных по подписке, для хранения не только всех подписчиков, но и того, какие книги они одолжили.

Это позволяет выполнять все перечисленные задачи в O (1), за исключением сортировки подписчиков по количеству книг, которые они одолжили.

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