Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2012, 13:50   #1
Artem_Kow
 
Регистрация: 14.03.2012
Сообщений: 9
По умолчанию Очередь

Заданы 2 непустые очереди; адреса начала и конца первой равны Р1 и Р2, а второй – Р3 и Р4. Элементы каждой из очередей упорядочены по возрастанию (в направлении от начала очереди к концу). Объединить очереди в одну с сохранением упорядоченности элементов. Вывести указатели на начало и конец полученной очереди. Операции выделения и освобождения памяти не использовать, поля Data не изменять.
Artem_Kow вне форума Ответить с цитированием
Старый 04.04.2012, 13:51   #2
Artem_Kow
 
Регистрация: 14.03.2012
Сообщений: 9
По умолчанию

Помогите хотя бы понять. Не могу сделать.
Artem_Kow вне форума Ответить с цитированием
Старый 04.04.2012, 14:37   #3
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Почитай про сортировку слиянием. Тебе тоже надо слить два отсортированных массива в один, но только не копируя их в новый масив, а переставляя ссылки её элементов.

Последний раз редактировалось ds.Dante; 04.04.2012 в 14:39.
ds.Dante вне форума Ответить с цитированием
Старый 04.04.2012, 15:20   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ага. забавная задачка. ds.Dante прав (что, в общем то, из задания видно) - тут нужно манипулировать ИСКЛЮЧИТЕЛЬНО ссылками на элементы.

Артём, давайте вашу реализацию очередей (не забудьте обеспечить из заполнение, желательно автоматическое, причём очереди должны быть обязательно упорядочены изначально!). Я прикину на досуге, как там попроще с указателями разобраться.
Интуитивно чувствую, что это в коде не должно быть сильно сложным!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.04.2012, 21:51   #5
Artem_Kow
 
Регистрация: 14.03.2012
Сообщений: 9
По умолчанию

Я на выходных сделаю свои наброски и выложу тогда)
Artem_Kow вне форума Ответить с цитированием
Старый 04.04.2012, 22:10   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Вывести указатели
В Шарпе??? Сильно, однако...

P.S. Зачем такая глупость, ведь есть LINQ... Прихоть преподавателя?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.04.2012, 09:47   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Stilet
Цитата:
Вывести указатели
В Шарпе??? Сильно, однако...
Оп-с.. а я проглядел, что это для C#.

да, беру свои слова о помощи обратно - у Вас преподаватель знает толк в извращениях!
А точно в C# это нужно сделать? не в Паскаль, не в C - именно в C# ?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.04.2012, 10:14   #8
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Указатели и не только в C#. Конечно, ни один хороший программист .NET работать с указателями не будет, так поставить задание мог преподаватель, который не знает C# или знает недостаточно. На месте студентов заставил бы его пересмотреть задания, опираясь на технологии языка и его паттерны.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 05.04.2012, 10:28   #9
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

По-моему, под указателем вполне очевидно подразумевалась ссылка. Не самая принципиальная оговорка.

Цитата:
Сообщение от Stilet Посмотреть сообщение
P.S. Зачем такая глупость, ведь есть LINQ... Прихоть преподавателя?
А как через линк слить очереди за O(n) и без дополнительной памяти?
ds.Dante вне форума Ответить с цитированием
Старый 05.04.2012, 10:50   #10
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

ds.Dante, AddRange().Sort() каждая операция практически оптимально(достаточно посмотреть в отладчике как это происходит). Если память столько важна, то использовать следует языки более низкого уровня, сам .Net так обладает меньшей производительностью из-за своей архитектуры ( JIT и т.д.). Есть модуль от которого требуется максимальная производительность? Тогда пиши dll на C и подрубай к проекту.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очередь Си svetikzo Помощь студентам 0 23.01.2010 10:03
Очередь C++ svetikzo Помощь студентам 2 23.01.2010 09:53
Очередь skiffter Помощь студентам 2 03.12.2009 17:39
Очередь Юлькин Общие вопросы C/C++ 4 30.05.2009 16:00