php函数写法(数据结构与算法之PHP实现队列、栈)PHP函数 / PHP函数在算法中的实践...

wufei123 发布于 2024-05-24 阅读(22)

一、队列1)队列(Queue)是一种先进先出(FIFO)的线性表,它只允许在表的前端进行删除操作,在表的后端进行插入操作,进行插入操作的端称为队尾,进行删除操作的端称为队头即入队只能从队尾入,出队只能从队头出。

2)队列一般拥有队首(front指针)和队尾(rear指针),当一个队列并未存入数据的时候,front和rear指针均指向队首3)入队操作:rear后移,存入数据在rear指向的单元,队满不可入队,这同时也表明front总是指向队首元素的前驱。

4)出队操作:front后移,元素出队,队空不可出队。

5)在PHP函数中,array_push函数是向数组尾部添加元素,即入队操作;array_shift函数是删除数组头部元素,即出队操作$array = array(a, b); array_push($array, 。

c); //入队 array_shift($array); //出队$array = array(a, b); array_push($array, c); //入队 array_shift($array);

//出队队列的数组实现/** * php用数组实现队列:先进先出FIFO 1. getLength(): 获得队列的长度 2. isEmpty(): 判断队列是否为空 3. enqueue(): 入队,在队尾加入数据。

4. dequeue(): 出队,返回并移除队首数据队空不可出队 5. show(): 遍历队列,并输出 6. clear(): 清空队列 */classQueue{

// 队列数组public $dataStore = array(); // 获得队列的长度publicfunctiongetLength(){ return count($this

->dataStore); } // 判断队列是否为空publicfunctionisEmpty(){ return$this->getLength() === 0; }

// 入队,在队尾加入数据publicfunctionenqueue($element){ $this->dataStore[] = $element; // array_push($this->dataStore, $element);。

} // 出队,返回并移除队首数据队空不可出队publicfunctiondequeue(){ if (!$this->isEmpty()) { 。

return array_shift($this->dataStore); } returnfalse; } // 遍历队列,并输出publicfunction

show(){ if (!$this->isEmpty()) { for ($i = 0; $i getLength(); $i++) {

echo$this->dataStore[$i] . PHP_EOL; } } else { return"空"; } }

// 清空队列publicfunctionclearQueue(){ unset($this->dataStore); // $this->dataStore = array();

} } // 测试 $q = new Queue(); $q->enqueue(a); $q->enqueue(b); $q->enqueue(c); echo队列的长度为: . $q->getLength();

echo"

"; echo队列为:; $q->show(); echo"

"; $q->dequeue(); echo"

"; echo"a出队,队列为:"; $q->show(); $q->clearQueue();

echo"清空队列后,队列为" . $q->show(); 队列的链表实现创建链式队列时,需定义两个结构,一个用于描述节点,一个用于描述队列

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

河南中青旅行社综合资讯 奇遇综合资讯 盛世蓟州综合资讯 综合资讯 游戏百科综合资讯 新闻25891