Форум программистов, компьютерный форум CyberForum.ru

Очереди - C++

Восстановить пароль Регистрация
 
Tattoquardas
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 21
08.10.2012, 00:54     Очереди #1
В очередь можно добавлять элемент только в конец, а удалят только сначала. Вопрос в следующем: если мне дана к примеру последовательность 3 5 6 4 7 и мне нужно удалить элемент 5, как это сделать? можете написать хотя бы алгоритм? не понятно.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
08.10.2012, 01:04     Очереди #2
Ну как, это напрямую зависит от того, как реализована очередь. Существует два варианта реализации: связный список и циклический массив:
Код
Циклический массив:
 h               t
 |               |
[3] [5] [6] [4] [7]

     h           t
     |           |
[3] [3] [6] [4] [7]

Связный список:
h                   t
|                   |
3 -> 5 -> 6 -> 4 -> 7

h                   t
|                   |
3 ------> 6 -> 4 -> 7
Tattoquardas
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 21
08.10.2012, 01:06  [ТС]     Очереди #3
у меня связный список. то есть мы тупо удаляем элемент, перебрасывая указатель на следующий и используя delete?
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
08.10.2012, 01:09     Очереди #4
Именно. Внимательно с граничными случаями только (начало, конец и пустая очередь).
Tattoquardas
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 21
08.10.2012, 01:11  [ТС]     Очереди #5
в чем же тогда смысл самой очереди?..
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
08.10.2012, 01:14     Очереди #6
Именно в этих отдельных методах "забрать с начала" и "добавить в конец". У очереди ж нет метода "добавить после n-го элемента"? Максимум есть только "удалить n-ый элемент" (обычно его тоже нет). Фактически это ограниченный список, да. Смысл именно в этом ограничении.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2012, 01:19     Очереди
Еще ссылки по теме:

Очереди в С++ C++
C++ править код (создание очереди и удаление элемента очереди по усмотрению пользователя)
Очереди (С++) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tattoquardas
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 21
08.10.2012, 01:19  [ТС]     Очереди #7
спасибо большое за обьяснения!
Yandex
Объявления
08.10.2012, 01:19     Очереди
Ответ Создать тему
Опции темы

Текущее время: 00:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru