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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

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