Помощь - Поиск - Пользователи - Календарь
Полная версия: Двухсвязные цикличные списки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
DarkWishmaster
Привет. Только сейчас начал изучать динамичиские структуры, и вот задача:
Дан двухсвязный список их N игроков. Начиная с игрока m, каждый k-ый игрок должен быть удален из игры.

Вот что у меня получилось:
КОД (Показать/Скрыть)


volvo
Значит, смотри, как решается твоя задача с использованием циклических списков (поищи по форуму со словом казнь, найдешь и другие решения).

Вот программа: (Показать/Скрыть)
В комментариях все сказано. Только одно замечание: в процедуре Start идет цикл от 1 до K. Это значит, что при отсчете не считается тот человек, с которого отсчет начинается. Если надо, чтоб и он учитывался, то... Ну, сам подумай, что надо сделать smile.gif

Update
Кстати, есть еще кое-что, что можно сделать. К примеру, если у тебя K > N, то зачем тебе делать целый круг (а может и не один, смотря насколько K больше чем N), перед тем, как ты доберешься до игрока, которого надо удалить? Подумай, что можно сделать, чтоб не крутить циклы впустую...
DarkWishmaster
volvo, спасибо огромное! всё очень понятно обьяснил, теперь могу переходить к стекам и очередям
DarkWishmaster
Цитата
Update
Кстати, есть еще кое-что, что можно сделать. К примеру, если у тебя K > N, то зачем тебе делать целый круг (а может и не один, смотря насколько K больше чем N), перед тем, как ты доберешься до игрока, которого надо удалить? Подумай, что можно сделать, чтоб не крутить циклы впустую...

Если K>N тогда K:=K-N;
volvo
Цитата
Если K>N тогда K:=K-N;
Уже лучше. А теперь представь, что K = 25, а N = 7, например... Что тогда делать будешь?
DarkWishmaster
Цитата(volvo @ 9.04.2011 20:16) *

Уже лучше. А теперь представь, что K = 25, а N = 7, например... Что тогда делать будешь?

K mod N
Пробовал рисовать связи, вот что получается:
Нажмите для просмотра прикрепленного файла
volvo
Цитата
Пробовал рисовать связи, вот что получается:
И я пробовал. У меня вот что получилось:
Нажмите для просмотра прикрепленного файла

Что именно из установки указателей непонятно? Попробуй нарисовать такую же схему, как у меня, для "кольца", в котором уже есть 2 элемента, и ты добавляешь третий, и покажи, что получилось.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.