<?php
 
 
require "autoloader.php";
 
use Resource\Native\Objective as Objective;
 
use Resource\Native\String as String;
 
use Resource\Collection\ArrayList as ArrayList;
 
use Resource\Utility\Comparative as Comparative;
 
use Resource\Collection\ArrayList as ArrayList;
 
use Resource\Collection\ArrayDeque as ArrayDeque;
 
use Resource\Collection\PriorityQueue as PriorityQueue;
 
 
class StringComparator implements Comparative{
 
 
    public function compare(Objective $object = NULL, Objective $object2 = NULL){
 
        $length = ($object == NULL)?0:$object->count();
 
        $length2 = ($object2 == NULL)?0:$object2->count();
 
        $diff = $length - $length2;
 
        return $diff;
 
    }
 
 
}
 
 
$mithos = new String("Mithos Yggdrasill");
 
$martel = new String("Martel Yggdrasill");
 
$yuan = new String("Yuan Ka-fei");
 
$kratos = new String("Kratos Aurion");
 
$remiel = new String("Remiel");
 
$zelos = new String("Zelos");
 
$colette = new String("Colette");
 
$botta = new String("Botta");
 
 
$arraylist = new ArrayList(3);
 
$arraylist->add($mithos);
 
$arraylist->add($martel);
 
$arraylist->add($yuan);
 
$arraylist->add($kratos); 
 
$arraylist->add($remiel);
 
$arraylist->add($zelos); 
 
$arraylist->add($colette);
 
$arraylist->add($botta);
 
$queue = new PriorityQueue($arraylist);
 
//$queue = new PriorityQueue(4, new StringComparator);
 
//$queue = new PriorityQueue;
 
//$queue->offer($mithos);
 
//$queue->offer($martel);
 
//$queue->offer($yuan);
 
//$queue->offer($kratos);
 
//var_dump($queue);
 
//var_dump($queue->getArray());
 
 
echo "Elements inside PriorityQueue are<br>";
 
while($queue->peek()){
 
    echo $queue->poll();
 
    echo "<br>";
 
}
 
 
$deque = new ArrayDeque;
 
$deque->offerLast($mithos);
 
$deque->addLast($martel);
 
$deque->addLast($yuan);
 
$deque->offerLast($kratos);
 
$deque->addLast($remiel);
 
 
/*
 
var_dump($deque);
 
$deque->clear();
 
var_dump($deque->contains($mithos));
 
echo $deque->getFirst();
 
echo $deque->peekLast();
 
*/
 
 
$deque->remove($yuan);
 
$deque->offerLast($yuan);
 
echo "<br>Elements inside Deque are: <br>";
 
$iterator = $deque->iterator();
 
//$iterator = $deque->descendingIterator();
 
while($iterator->hasNext()){
 
    echo $iterator->next();
 
    echo "<br>";
 
}
 
 
/*
 
echo "<br>Now polling elements: <br>";
 
while(!$deque->isEmpty()){
 
    echo "Polling out {$deque->pollLast()}<br>";
 
    echo "Deque size shrinks to {$deque->size()}<br>";
 
}
 
echo "Deque is now empty!";
 
*/
 
 
?>
 
 |