php实现链式队列

<?php 
header("Content-Type:text/html;charset=utf-8");
/**
 * 链式队列
 */
class node{
	public $nickname;
	public $next;
}

class queue
{
	public $front;//头部
	public $tail;//尾部
	public $maxSize;//容量
	public $next;//指针
	public $len=0;//长度

	public function __construct($size)
	{
		$this->init($size);
	}
	public function init($size)
	{
		$this->front = $this;
		$this->tail = $this;
		$this->maxSize = $size;
	}

	//入队操作
	public function inQ($nickname)
	{
		$node = new node();
		$node->nickname = $nickname;
		if ($this->len==$this->maxSize) 
		{
			echo '队满了</br>';
		} else {
		    $this->tail = $node;
			$this->tail->next = $node;
		    $this->len++;
		    echo $node->nickname.'入队成功</br>';
		}
		
	}
	//出队操作
	public function outQ()
	{

		if ($this->len==0)
		{
			echo '队空了</br>';
		} else {
			$p = $this->front->next;

		    $this->front->next = $p->next;
		    $this->len--;
		    echo $p->nickname.'出队成功</br>';
		}
		

	}

	//打印队
	public function show()
	{
		for ($i=$this->len;$i>0;$i--)
		{
			$this->outQ();
		}
	}
}

echo "**********入队操作******************</br>";
$q = new queue(5);

$q->inQ('入云龙');
$q->inQ('花和尚');
$q->inQ('青面兽');
$q->inQ('行者');
$q->inQ('玉麒麟');
$q->inQ('母夜叉');
echo "**********出队队操作******************</br>";
$q->outQ();
$q->outQ();
$q->outQ();
$q->outQ();
$q->inQ('操刀鬼');
$q->inQ('截江鬼');
$q->inQ('赤发鬼');
$q->outQ();
 ?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值