"Информатика", Рудченко Т.А., Семёнов А.Л. / Под ред. Семёнова А.Л.
Бусины нанизаны в цепочку, но слова «следующая» и «предыдущая» сами по себе не указывают на конкретные элементы. Сначала нужно договориться, в каком направлении мы рассматриваем цепочку. Тогда следующей будет ближайшая бусина впереди, а предыдущей — ближайшая позади. Такая договорённость помогает точно описывать порядок элементов и выполнять команды перехода от одной бусины к другой, даже если их цвет или внешний вид не подсказывает порядок.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Бусина — отдельный элемент нанизанной цепочки. Элементы можно различать по цвету, форме, размеру или условным обозначениям, например буквам и номерам. Это нужно, чтобы точно указать, о какой бусине идёт речь, даже если несколько бусин выглядят одинаково.
Направление обхода — выбранное направление, в котором рассматривают бусины цепочки. Его можно задать словами: например, двигаться от красной бусины к зелёной, или указать начало и сторону движения. Договорённость нужна, потому что у бусины могут быть соседи с обеих сторон.
Следующая бусина — бусина, которую встречают первой после данной, если двигаться в согласованном направлении. Значит, это ближайший элемент впереди, а не любой элемент, расположенный дальше. Такое название помогает задавать порядок переходов по цепочке.
Предыдущая бусина — бусина, которую встречают первой перед данной, если двигаться в согласованном направлении. Это ближайший элемент позади при выбранном движении. Понятие нужно, чтобы описывать, откуда мы пришли, и проверять порядок бусин.
У цепочки есть расположение элементов, но слова «слева» и «справа» зависят от того, как на неё смотрят. Если развернуть цепочку или посмотреть на неё с другой стороны, видимая сторона может поменяться. Поэтому для точного разговора сначала выбирают направление обхода: оно создаёт общую договорённость для всех участников.
Когда направление задано, у каждой бусины можно посмотреть на соседей по ходу движения. Ближайший сосед впереди называется следующей бусиной, а ближайший позади — предыдущей. Такое правило не позволяет перепутать непосредственный переход с перемещением через одну или несколько бусин. Если у крайней бусины линейной цепочки нет соседа с нужной стороны, следующей или предыдущей в этом направлении у неё нет.
При движении в обратную сторону меняется то, какой сосед находится впереди, а какой позади. Поэтому прежняя следующая бусина становится предыдущей, а прежняя предыдущая — следующей. Сами бусины и их положение в цепочке не переставляются: меняются только названия, связанные с направлением. Это похоже на дорогу: один и тот же дом будет впереди или позади в зависимости от того, куда идти.
Цвет, форма и другие особенности помогают узнавать бусины, но не задают порядок движения. Красная бусина может оказаться следующей, предыдущей или вовсе не соседней — всё зависит от выбранного направления и положения бусин. Сначала фиксируют направление, затем находят ближайшего соседа. Благодаря этому правило работает и с разноцветными элементами, и с одинаковыми бусинами, если их обозначить.
Чтобы описать цепочку от заданной бусины, сначала называют эту бусину и направление обхода. Затем переходят к ближайшей следующей, после неё — к следующей уже для неё, и продолжают, пока не дойдут до конца цепочки или указанной цели. При проверке можно пройти цепочку обратно, каждый раз обращаясь к предыдущей бусине. Если обратный порядок совпал с исходным, переходы были поняты верно.
| Что определяем | Как определить | Что изменится при смене направления |
|---|---|---|
| Направление обхода | Заранее договориться, куда двигаться вдоль цепочки. | Выбранная сторона движения станет противоположной. |
| Следующая бусина | Найти ближайшую бусину впереди по выбранному направлению. | Ею станет прежняя предыдущая бусина. |
| Предыдущая бусина | Найти ближайшую бусину позади по выбранному направлению. | Ею станет прежняя следующая бусина. |
Сначала прочитайте первую строку и убедитесь, что направление задано однозначно. Затем для нужной бусины найдите ближайших соседей и примените определения следующей и предыдущей. В последнем столбце указано, как переименуются соседи, если пойти в обратную сторону.
Условие. На цепочке подряд нанизаны красная, синяя и зелёная бусины. Договорились двигаться от красной к зелёной. Нужно назвать следующую и предыдущую бусины для синей. Важно не определять ответ по цвету: направление уже задано условием.
Ответ: следующая для синей — зелёная, предыдущая — красная.
Условие. Бусины расположены в порядке А, Б, В, Г. Сначала движение задано от А к Г. Нужно определить следующую и предыдущую бусины для В, а затем выяснить, что будет при движении от Г к А. Сравним ближайших соседей В в обоих направлениях.
Ответ: при движении от А к Г следующая для В — Г, предыдущая — Б; при движении от Г к А следующая — Б, предыдущая — Г.
Условие. Дана цепочка с различимыми бусинами и выбранным направлением. По описанию «начни с указанной бусины и каждый раз переходи к следующей» нужно восстановить порядок, а затем проверить его в обратную сторону. Обозначим бусины буквами, чтобы не путать их при записи.
Ответ: порядок восстанавливают последовательными переходами к ближайшей следующей бусине, а проверяют переходами назад к предыдущей. Если на обратном пути порядок не совпал, нужно проверить направление или один из соседних переходов.
Называть следующей бусину справа или слева без указания направления — ошибка, потому что сторона зависит от того, как расположена цепочка. Так делают, когда принимают своё положение за общее правило. Проверьте себя: можете ли вы объяснить, куда именно движетесь, не используя слова «право» и «лево»?
Считать, что следующая бусина обязательно красная или имеет иной признак, неверно: внешний вид не задаёт порядок. Такая ошибка возникает, когда запоминают пример вместо правила. Для проверки мысленно поменяйте цвета местами: направление и соседство останутся прежними, значит, ответ должен определяться ими.
Менять направление обхода, но оставлять прежние названия соседей нельзя: роли следующей и предыдущей меняются. Путаница появляется, если продолжить чтение списка в прежнем порядке. Проверьте себя, назвав направление вслух и заново определив, какой сосед впереди, а какой позади.
Следующей называют не любую бусину дальше по цепочке, а ближайшую впереди по выбранному направлению. Ошибка возникает, когда перескакивают через один или несколько элементов. Чтобы проверить ответ, проследите путь шаг за шагом: между исходной и следующей бусинами не должно быть другой бусины.
Чтобы пользоваться договорённостью, нужно различать элементы цепочки и замечать, какие бусины соседствуют. Это основа описания последовательностей: сначала задают начальный элемент, затем указывают порядок переходов. В алгоритмах похожее правило помогает рассматривать элементы по очереди в заданном направлении и не пропускать их. Поэтому слова «следующая» и «предыдущая» важны не только для цепочек бусин, но и для точного выполнения команд.
Почему нельзя просто сказать, какая бусина следующая?
Потому что у бусины обычно есть два соседа, и без выбранного направления непонятно, к какому из них переходить. Сначала договоритесь, в какую сторону рассматриваете цепочку.
Как понять, где у цепочки начало и конец?
Начало и конец задают условием или договорённостью: например, начинают с красной бусины и движутся к зелёной. Если такого указания нет, выбирают направление отдельно; для замкнутой цепочки начало тем более нужно указать.
Может ли одна и та же бусина быть следующей и предыдущей?
Да, если изменить направление обхода. Один и тот же сосед окажется впереди при движении в одну сторону и позади — при движении в другую.
Что происходит с названиями бусин, если идти в обратную сторону?
Соседние элементы остаются теми же, но их роли меняются местами. Бусина, которая была следующей, становится предыдущей, и наоборот.
Как определить следующую бусину, если бусины выглядят одинаково?
Цвет и внешний вид для этого не нужны. Зафиксируйте направление и выберите ближайший элемент цепочки впереди; если элементы невозможно различить словами, обозначьте их по месту или номерами.
Договариваемся о том, какую бусину мы будем называть следующей и какую — предыдущей