Как реализовать двусвязный список в PHP?

Я получил вопрос на собеседовании в пятницу, и я думаю, что завалил его. Возник вопрос:

Напишите класс, обрабатывающий двусвязный список в PHP.

Я понимаю концепцию, и вот код, который я дал:

class element {
 private $current;
 public function __construct($e) {
  $this->current = $e;
 }
 // method
 // etc..
}

class doublelist
{
  private $prev;
  private $next;
  private $current;
  private $list;
  public function add(element $e) {
   if($this->current == NULL) {
    $this->prev = $this->current;
   }
   $this->current = $e;
  }
}

$list = new doublelist();
$list->add(new element('a'));
$list->add(new element('b'));

Сначала это работает, но если я добавлю второй элемент, я «потеряю» первый, и я не понимаю, почему.

8
задан Jon 12 December 2011 в 03:27
поделиться