Мадера Опубликовано 19 октября, 2009 Жалоба Поделиться Опубликовано 19 октября, 2009 Здравствуйте форумчане, не могли бы вы мне помочь в реализации очереди в виде двусвязного списка на с++. Я понимаю какие должны быть переменные какие указатели, мне не понятен сам смысл реализации этого в с++, а именно вид написания. Очередь имеет указатели на начала и конец списка, а так же в этом случае имеет указатели на следующую и предыдущие записи. Есть указатель с помощью которого перемещаемся в очереди. Можете конечно направить изучать книги, но в книгах для меня не совсем все понятно. Если Вам не трудно помогите пожалуйста. Не прошу громоздких кодов, хотя бы функцию вставки в очередь элементов и желательно с комментарием. Заранее благодарю. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 19 октября, 2009 Жалоба Поделиться Опубликовано 19 октября, 2009 Мадера: не могли бы вы мне помочь в реализации очереди в виде двусвязного спискаНесколько странное задание. Очередь есть очередь, а список есть список. В очереди элемент добавляется в конец очереди, а выходит из начала очереди. В стеке (стопке) элемент добавляется в верхушку стека и берется оттуда же, так что более старые элементы нельзя вытащить, пока не избавишься от того, что на верхушке. А в списке мы можем бегать по нему туда и сюда и вытащить и вставить элемент в любом месте списка. То есть в очереди двусвязность списка ни к чему. По описанию из задания это не очередь, а двусвязный список. Так или иначе: в теме Связанные списки в С++ пример и разбор связанного списка на C++ из книги Дж. Либерти, правда, односвязного, но дополнить еще одним методом несложно. Тут написанный мной на C++ пример двусвязного списка, он проще, так как я не стал вводить классы, при замене ввода-вывода на scanf и printf он и на на простом C пошел бы. Тут очередь на C++ на основе классов, но это нормальная очередь, написанная по заданию от Pathfinder'а, без возможности влезать в ее середину, и там можно было бы реализацию и упростить, но в задании требовалось для работы с очередью использовать перегруженные операции ++ и --, которые там ни к селу, ни к городу - как я понимаю, смысл задания был в показе перегрузки операций. Ссылка на комментарий Поделиться на другие сайты Поделиться
Мадера Опубликовано 19 октября, 2009 Автор Жалоба Поделиться Опубликовано 19 октября, 2009 Да но нам выдают именно такие задания как реализация стека в виде массива. А тут очередь заданно в виде двухсвязного списка. Да но нам выдают именно такие задания как реализация стека в виде массива. А тут очередь заданно в виде двухсвязного списка. Но все равно спасибо. Буду разбираться. Попробую написатьчто требуется. Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 19 октября, 2009 Жалоба Поделиться Опубликовано 19 октября, 2009 Мадера: двухсвязаный список... говорите... :blush2: на сколько я помню 2-й том тов. Кнута (а может и 3-й) - это есть дек, те массив динамических данных обладающих свойствами стека и очереди, а двухсвязаный список это усечённая реализация дека. Просто мысли вслух :g: PS И вот ещё. Ув. Мадера алгоритмической и программной реализации вашей задачи в интернете - "море", достаточно забить требуемое/искомое в Google. Ссылка на комментарий Поделиться на другие сайты Поделиться
Мадера Опубликовано 20 октября, 2009 Автор Жалоба Поделиться Опубликовано 20 октября, 2009 Спасибо за подсказку, знаете пробовала искать как алгоритм так и программу для моей задачи. И как-то ничего особого не нашлось. Уж не знаю может не так искала. Найти отдельно очередь и двусвязный список проблем не составит. Но если бы люди иногда объясняли, что они пишут. Пусть не все по ступенечкам, а хотя бы не большое пояснение. И очередь все-таки отличается от дека. В деке можно прибавлять и удалять элементы как с конца так и с начала. А в очереди подобное не допускается. Почему-то есть очередь в виде массива, в виде списка, а вот двусвязной очереди не встречала! Как только разберусь в написании моей задачи так выложу, если возникнут вопросы обязательно обращусь к Вам дорогие форумчане! Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти