Ymilij 27.04.2010 17:47
Я идиот! — Активные игры в односвязные списки
Представляю вашему вниманию придуманную мной серию активных игр в односвязные списки. Кому-то может показаться, что они из разряда «застольных». Не скажу, что это так, но, может быть, от этого класса они что-то и унаследовали.Предложения и дополнения приветствуются. Идеи о том, какие могут быть задания также.
Игра в список
Для игры нам потребуется как минимум три человека — программист, первый элемент списка, последний элемент списка. Промежуточных элементов списка может быть бесчисленное множество. Если проводить ассоциацию с застольными играми, то программистом стоит выбирать самого адекватного, по возможности наиболее трезвого участника.
Все участники собираются в некоторой комнате. Выбирается программист, затем он удаляется за дверь. Элементы списка берутся за руки (последний и первый элементы списка никого держат только одного человека), крайний (первый) элемент списка выходит за дверь, предварительно выключив свет. Каждый элемент списка обладает как минимум двумя полями — указателем на следующий элемент списка (рука) и полем данных, поля данных предварительно оговариваются играющими, ими могут быть «имя», «пол», «цвет волос», «цвет глаз» и т.п. Вариантность напрямую зависит от фантазии играющих.
Затем начинается игра. У программиста есть задание (задания), они либо оговариваются заранее, либо предлагаются первым элементом списка. Изначально программист имеет доступ только к первому элементу списка, знает какие данные хранятся в нём. Получать доступ к данным, хранящимся в других элементах программист может только перемещаясь по указателям и спрашивая об этих данных у элементов, рядом с которыми находится. Ввиду некоторой подпитости элементов возможны креши памяти и нарушения связей элементов, что будет усложнять выполнение заданий программисту.
Задание может быть любое, например, найти элемент списка, содержащий определёные данные, найти последний элемент списка и поставить его после элемента, содержащего определённые данные, поставить некоторый элемент на место первого элемента и т.п.
Игра в стэк
Игра в стэк отличается от игры в список тем, что мы можем считывать данные только из первого элемента, а получить доступ к последующему только удалив его. Действительно хорошая метафора на стэк — это стопка тарелок.
Как по мне, так игру в стэк уже реализовали. Со своими, просто ужасными крэшами памяти, и называется она слэм.
Игра в очередь
Игра в очередь абсолютно идентична игре в список за исключением того, что программист имеет два указателя вместо одного — на первый и последний элементы списков. Возможно реализовать в помещении с двумя дверьми.
Якие драконы и принцессы??? А вообще да, занимательная игрушка))
Теги ок.
Хотя всё разнообразие веществ в данном контексте можно свести к банальному этанолу, ящитаю :)
Вообще эти игрухи пойдут на ура после второй. Вот прям ваще, там драконы и принцессы еще появятся.