Помогите с очередями и односвязными списками? - PullRequest
2 голосов
/ 12 июня 2011

В настоящее время я пытаюсь понять списки, стеки и очереди в C ++. Я проверяю свой тест и наткнулся на вопрос: "efficiently implement a queue class using a singly linked list, with no header or tail nodes."

Я немного озадачен, кто-нибудь знает, как это сделать?

Ответы [ 2 ]

3 голосов
/ 12 июня 2011

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

2 голосов
/ 12 июня 2011

Вам необходимо отслеживать указатель на элементы головы и хвоста в вашем списке.

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

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

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