Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Двухсвязные цикличные списки

Автор: DarkWishmaster 3.04.2011 0:13

Привет. Только сейчас начал изучать динамичиские структуры, и вот задача:
Дан двухсвязный список их N игроков. Начиная с игрока m, каждый k-ый игрок должен быть удален из игры.

Вот что у меня получилось:

КОД (Показать/Скрыть)



Автор: volvo 3.04.2011 15:56

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

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

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

Автор: DarkWishmaster 3.04.2011 16:18

volvo, спасибо огромное! всё очень понятно обьяснил, теперь могу переходить к стекам и очередям

Автор: DarkWishmaster 10.04.2011 0:11

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

Если K>N тогда K:=K-N;

Автор: volvo 10.04.2011 0:16

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

Автор: DarkWishmaster 10.04.2011 0:36

Цитата(volvo @ 9.04.2011 20:16) *

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

K mod N
Пробовал рисовать связи, вот что получается:
Прикрепленное изображение

Автор: volvo 13.04.2011 18:58

Цитата
Пробовал рисовать связи, вот что получается:
И я пробовал. У меня вот что получилось:
Прикрепленное изображение

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