![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 07.12.2010
Сообщений: 15
|
![]()
Общая задача. Имеется самая простая обыкновенная очередь(с одной головой), и её нужно с помощью heapSort отсортировать. У меня имеется код АТД очередь но суть вопроса пока что не в самом коде, а в логике. Чтобы отсортировать очередь нужно просеять элемент через неё. В общем вопрос как просеять элемент через очередь. Грубо говоря составить в этой очереди бинарное дерево. Чтобы отсеять сомнения - я прекрасно понимаю что внутри самой очереди это сделать нельзя. Следовательно нужны другие методы, там перестановки в несколько очередей как внешние карманы или работа с адресами. есть предложения какие ?
Последний раз редактировалось Jigarkhwar; 27.09.2011 в 21:03. |
![]() |
![]() |
![]() |
#2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 07.12.2010
Сообщений: 15
|
![]() |
![]() |
![]() |
![]() |
#4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 07.12.2010
Сообщений: 15
|
![]()
ну впринципе какая разница какая сортировка. Проблема заключается в том, как вытащить данные и обработать их грубо говоря как массивные. (но очередь построена на указателях). Допустим у нас 10 элементов. как вытащить i-ый элемент 2i и 2i+1 и куда деть остальные данные. Потом если нужно поменять местами их и составить последовательность с этими же данным и послать её опять в очередь.
1) 2 3 5 1 10 6 9 4 7 8 2) выбираем элементы 3 5 1 3) 3(родитель) меняем местами с большим сыном - 5 4) выстраиваем новую последовательность 2 5 3 1 10 6 9 4 7 8 что то вроде этого Последний раз редактировалось Jigarkhwar; 27.09.2011 в 23:09. |
![]() |
![]() |
![]() |
#6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 07.12.2010
Сообщений: 15
|
![]()
а по какому параметру цикл то запускать ? в масивах по индексам а в указателях как ? или добавить инкремент при добавлении в очередь ?
|
![]() |
![]() |
![]() |
#8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Поройся по форуму в поисках тем про динамические списки. Вот например здесь: http://www.programmersforum.ru/showt...279#post713279 Пример проходя по списку в виде функции printlist() P.S. Я надеюсь что под словом "очередь " имелась ввиду списочная структура а не просто динмассив?
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 07.12.2010
Сообщений: 15
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Очереди | Ame | Помощь студентам | 0 | 30.06.2011 22:15 |
Очереди в С++ | Radzhab | Общие вопросы C/C++ | 4 | 31.03.2011 00:02 |
Очереди | Lucefer2007 | Общие вопросы C/C++ | 1 | 13.03.2011 16:58 |
Очереди | anuta90 | Помощь студентам | 3 | 09.10.2010 22:07 |
очереди | Nostalgia | Помощь студентам | 2 | 22.03.2010 17:48 |