我試圖寫一個方法Queue
反轉類Queue
。運行程序後,它給出瞭如下問題:當他試圖在倒置Queue
再次使用printOut
方法PHP隊列類問題
不能聯機使用類型隊列的對象數組
echo($i.". ".$this->kolejka[$i-1]."<br>");
顯然。請幫忙!
請不要笑(太難),因爲我嘗試了很多事情來使這項工作,我迷路了。
這裏是整個代碼:
<?php
class Queue
{
private $Queue = array(); //Init
public function clear() //Clears the Queue
{
$this->Queue = array();
}
public function isMember($item) //Returns True if element is in the Queue
{
foreach($this->Queue as $x)
{
if($item === $x)
{
return true;
}
}
return false;
}
public function remove() //Removes first element
{
return array_shift($this->Queue);
}
public function add($item) //Adds element to the end
{
$this->Queue[] = $item;
}
public function first() //Returns the first element
{
return current($this->Queue);
}
public function printOut() //Writes down in order all the elements
{
for($i=1;$i < count($this->Queue)+1;$i++)
{
echo($i.". ".$this->Queue[$i-1]."<br>");
}
}
public function length() //Returnts length
{
return count($this->Queue);
}
public function invert() //Reverts the Queue
{
$newQueue = new Queue();
for ($i = $this->length() - 1;$i>=0;$i--)
{
$newQueue->add($this->first());
$this->remove();
}
$this->Queue = $newQueue;
}
}
$kolej = new Queue();
$kolej->add("Apple");
$kolej->add("Orange");
$kolej->add("Banana");
$kolej->add("Mandarin");
$kolej->add("Raspberry");
echo $kolej->first()."<br>";
$kolej->remove();
echo $kolej->first()."<br>";
echo $kolej->isMember("Apple")."<br>";
echo $kolej->isMember("Orange")."<br>";
$kolej->printOut();
echo "Currently Queue is of length ".$kolej->length()."<br>";
$kolej->invert();
$kolej->printOut();
?>
非常感謝,現在我明白了。除此之外,我還看到了算法的另一個重要問題。該方法不會恢復它,而是完全複製它。現在它已經修復了。再次感謝:-) –
不客氣!在將來,如果您發現答案有用,那麼您可以通過點擊旁邊的向上箭頭進行投票,或者您可以單擊小號複選框將其標記爲接受的問題答案。 –