Anthill Game Framework

Tiny framework for creating Flash games.

Инструменты пользователя

Инструменты сайта


anthill:antlist

AntList

Данный класс является реализаций односвязного списка. Связные списки считаются наиболее быстрыми и в некоторых случаях удобными в использовании. Данные списки содержат лишь элементы данных и доступ к каждому из элементов не возможно произвести по индексу, так как индексы отсутствуют. Для добавления, удаления или простого получения доступа к одному из элементов, необходимо перебрать весь список.


Пример работы

var list:AntList;

// Добавление данных в список.
function addData(aData:Object):void
{
  // Если список еще не создан, то это первый элемент
  if (list == null)
  {
    list = new AntList(aData);
    return;
  }
  
  // Иначе перебираем весь список, чтобы получить элемент с нулевым указателем
  var curItem:AntList = list;
  while (curItem.next != null)
  {
    curItem = curItem.next;
  }
  
  // Добавляем новый элемент в конец списка
  curItem.next = new AntList(aData);
}

// Удаление данных из списка.
function removeData(aData:Object):void
{
  if (list == null)
  {
    return;
  }
  
  var curItem:AntList = list;
  var prevItem:AntList = null;
  
  // Перебираем весь список
  while (curItem.next != null)
  {
    // Если нашли удаляемые данные, то..
    if (curItem.data == aData)
    {
      // Удаляем указатель на данные внутри элемента
      curItem.data = null;
      
      // Если данные были найдены в первом элементе списка, то...
      if (prevItem == null)
      {
        // Первым элементом списка становится следующий элемент
        list = curItem.next;
      }
      else
      {
        // Иначе устанавливаем предыдущему элементу указатель на следующий за удаляемым элементом
        prevItem.next = curItem.next;      
      }
      
      // Зануляем указатель на следующий элемент.
      curItem.next = null;
      
      // Заканчиваем работу метода.
      return;
    }
    
    prevItem = curItem;
  }
}

// Удаление списка
list.destroy();

anthill/antlist.txt · Последние изменения: 11.05.2013 00:52 — Илья Уткин