Jump to content

Релизация очереди на с++


Recommended Posts

Здравствуйте форумчане, не могли бы вы мне помочь в реализации очереди в виде двусвязного списка на с++. Я понимаю какие должны быть переменные какие указатели, мне не понятен сам смысл реализации этого в с++, а именно вид написания. Очередь имеет указатели на начала и конец списка, а так же в этом случае имеет указатели на следующую и предыдущие записи. Есть указатель с помощью которого перемещаемся в очереди. Можете конечно направить изучать книги, но в книгах для меня не совсем все понятно. Если Вам не трудно помогите пожалуйста. Не прошу громоздких кодов, хотя бы функцию вставки в очередь элементов и желательно с комментарием. Заранее благодарю.

Link to comment
Share on other sites

Мадера:

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

Так или иначе: в теме Связанные списки в С++ пример и разбор связанного списка на C++ из книги Дж. Либерти, правда, односвязного, но дополнить еще одним методом несложно. Тут написанный мной на C++ пример двусвязного списка, он проще, так как я не стал вводить классы, при замене ввода-вывода на scanf и printf он и на на простом C пошел бы. Тут очередь на C++ на основе классов, но это нормальная очередь, написанная по заданию от Pathfinder'а, без возможности влезать в ее середину, и там можно было бы реализацию и упростить, но в задании требовалось для работы с очередью использовать перегруженные операции ++ и --, которые там ни к селу, ни к городу - как я понимаю, смысл задания был в показе перегрузки операций.

Link to comment
Share on other sites

Да но нам выдают именно такие задания как реализация стека в виде массива. А тут очередь заданно в виде двухсвязного списка.

Да но нам выдают именно такие задания как реализация стека в виде массива. А тут очередь заданно в виде двухсвязного списка. Но все равно спасибо. Буду разбираться. Попробую написатьчто требуется.

Link to comment
Share on other sites

Мадера: двухсвязаный список... говорите... :blush2: на сколько я помню 2-й том тов. Кнута (а может и 3-й) - это есть дек, те массив динамических данных обладающих свойствами стека и очереди, а двухсвязаный список это усечённая реализация дека.

Просто мысли вслух :g:

PS И вот ещё. Ув. Мадера алгоритмической и программной реализации вашей задачи в интернете - "море", достаточно забить требуемое/искомое в Google.

Link to comment
Share on other sites

Спасибо за подсказку, знаете пробовала искать как алгоритм так и программу для моей задачи. И как-то ничего особого не нашлось. Уж не знаю может не так искала. Найти отдельно очередь и двусвязный список проблем не составит. Но если бы люди иногда объясняли, что они пишут. Пусть не все по ступенечкам, а хотя бы не большое пояснение.

И очередь все-таки отличается от дека. В деке можно прибавлять и удалять элементы как с конца так и с начала. А в очереди подобное не допускается. Почему-то есть очередь в виде массива, в виде списка, а вот двусвязной очереди не встречала!

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

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...