Мадера Posted October 19, 2009 Report Share Posted October 19, 2009 Здравствуйте форумчане, не могли бы вы мне помочь в реализации очереди в виде двусвязного списка на с++. Я понимаю какие должны быть переменные какие указатели, мне не понятен сам смысл реализации этого в с++, а именно вид написания. Очередь имеет указатели на начала и конец списка, а так же в этом случае имеет указатели на следующую и предыдущие записи. Есть указатель с помощью которого перемещаемся в очереди. Можете конечно направить изучать книги, но в книгах для меня не совсем все понятно. Если Вам не трудно помогите пожалуйста. Не прошу громоздких кодов, хотя бы функцию вставки в очередь элементов и желательно с комментарием. Заранее благодарю. Link to comment Share on other sites More sharing options...
Тролль Posted October 19, 2009 Report Share Posted October 19, 2009 Мадера: не могли бы вы мне помочь в реализации очереди в виде двусвязного спискаНесколько странное задание. Очередь есть очередь, а список есть список. В очереди элемент добавляется в конец очереди, а выходит из начала очереди. В стеке (стопке) элемент добавляется в верхушку стека и берется оттуда же, так что более старые элементы нельзя вытащить, пока не избавишься от того, что на верхушке. А в списке мы можем бегать по нему туда и сюда и вытащить и вставить элемент в любом месте списка. То есть в очереди двусвязность списка ни к чему. По описанию из задания это не очередь, а двусвязный список. Так или иначе: в теме Связанные списки в С++ пример и разбор связанного списка на C++ из книги Дж. Либерти, правда, односвязного, но дополнить еще одним методом несложно. Тут написанный мной на C++ пример двусвязного списка, он проще, так как я не стал вводить классы, при замене ввода-вывода на scanf и printf он и на на простом C пошел бы. Тут очередь на C++ на основе классов, но это нормальная очередь, написанная по заданию от Pathfinder'а, без возможности влезать в ее середину, и там можно было бы реализацию и упростить, но в задании требовалось для работы с очередью использовать перегруженные операции ++ и --, которые там ни к селу, ни к городу - как я понимаю, смысл задания был в показе перегрузки операций. Link to comment Share on other sites More sharing options...
Мадера Posted October 19, 2009 Author Report Share Posted October 19, 2009 Да но нам выдают именно такие задания как реализация стека в виде массива. А тут очередь заданно в виде двухсвязного списка. Да но нам выдают именно такие задания как реализация стека в виде массива. А тут очередь заданно в виде двухсвязного списка. Но все равно спасибо. Буду разбираться. Попробую написатьчто требуется. Link to comment Share on other sites More sharing options...
Форматцевт Posted October 19, 2009 Report Share Posted October 19, 2009 Мадера: двухсвязаный список... говорите... :blush2: на сколько я помню 2-й том тов. Кнута (а может и 3-й) - это есть дек, те массив динамических данных обладающих свойствами стека и очереди, а двухсвязаный список это усечённая реализация дека. Просто мысли вслух :g: PS И вот ещё. Ув. Мадера алгоритмической и программной реализации вашей задачи в интернете - "море", достаточно забить требуемое/искомое в Google. Link to comment Share on other sites More sharing options...
Мадера Posted October 20, 2009 Author Report Share Posted October 20, 2009 Спасибо за подсказку, знаете пробовала искать как алгоритм так и программу для моей задачи. И как-то ничего особого не нашлось. Уж не знаю может не так искала. Найти отдельно очередь и двусвязный список проблем не составит. Но если бы люди иногда объясняли, что они пишут. Пусть не все по ступенечкам, а хотя бы не большое пояснение. И очередь все-таки отличается от дека. В деке можно прибавлять и удалять элементы как с конца так и с начала. А в очереди подобное не допускается. Почему-то есть очередь в виде массива, в виде списка, а вот двусвязной очереди не встречала! Как только разберусь в написании моей задачи так выложу, если возникнут вопросы обязательно обращусь к Вам дорогие форумчане! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now