Diaesh Antony Ответов: 2

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


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

Когда пользователь вводит запрос типа "название книги", он должен перечислить всю связанную с книгой информацию (например, индекс книги, имя автора).

Следующие операции, которые необходимо выполнить
1.вставка книги
2.Удаление книги
3.поиск книги.(Результаты поиска должны возвращать всю связанную с книгой информацию)

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

Что я уже пробовал:

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

Ps: ожидая ответа, используя структуры в C

#realJSOP

Вы, должно быть, не обращали внимания в классе...

2 Ответов

Рейтинг:
2

OriginalGriff

Для C у вас действительно есть только несколько вариантов. Для C++ у вас есть гораздо лучшие варианты!

Для C, создать struct называется книга, которая содержит соответствующую информацию для одной книги: название, автор, ISBN ....

Тогда у вас есть два варианта:
1) Создайте массив книжных структур.
2) Создайте связанный список объектов книги (для этого потребуется следующий указатель как часть вашей структуры)

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


Maciej Los

5ed!

Stefan_Lang

Хороший ответ, но на самом деле я предпочитаю Карло: в описании задачи нет ничего о производительности, и (максимальное) количество книг известно - это кричит массив повсюду.

Рейтинг:
1

CPallini

Использовать array от structС. просто и быстро. Вы можете иметь дело с удаленными книгами либо просто помечая их как удаленные, либо фактически удаляя их.


Maciej Los

5ed!

Stefan_Lang

Я согласен. Задача уже гласит, что существует фиксированное количество книг, поэтому бессмысленно усложнять дело списком. Мне также нравится ваше предложение только помечать книги как удаленные. Это действительно упрощает все операции.