Welcome 微信登录

首页 / 网页编程 / PHP / php链表用法实例分析

本文实例讲述了php链表用法。分享给大家供大家参考。具体如下:
这里简单介绍了php链表的基本用法,包括链表节点的创建、遍历、更新等操作。
<?php/** * @author MzXy * @copyright 2011 * @param PHP链表 *//****节点类*/class Node{private $Data;//节点数据private $Next;//下一节点public function setData($value){$this->Data=$value;}public function setNext($value){ $this->Next=$value;}public function getData(){return $this->Data;}public function getNext(){return $this->Next;}public function __construct($data,$next){$this->setData($data);$this->setNext($next);}}//功能类class LinkList{private $header;//头节点private $size;//长度public function getSize(){$i=0;$node=$this->header;while($node->getNext()!=null){$i++;$node=$node->getNext();} return $i;}public function setHeader($value){$this->header=$value;}public function getHeader(){return $this->header;}public function __construct(){ header("content-type:text/html; charset=utf-8");$this->setHeader(new Node(null,null));}/***@author MzXy*@param $data--要添加节点的数据* */public function add($data){$node=$this->header;while($node->getNext()!=null){$node=$node->getNext();}$node->setNext(new Node($data,null));} /***@author MzXy*@param $data--要移除节点的数据* */public function removeAt($data){$node=$this->header;while($node->getData()!=$data){$node=$node->getNext();}$node->setNext($node->getNext());$node->setData($node->getNext()->getData());} /***@author MzXy*@param 遍历* */public function get(){$node=$this->header;if($node->getNext()==null){print("数据集为空!");return;}while($node->getNext()!=null){print($node->getNext()->getData());if($node->getNext()->getNext()==null){break;}$node=$node->getNext();}} /***@author MzXy*@param $data--要访问的节点的数据* @param 此方法只是演示不具有实际意义* */public function getAt($data){$node=$this->header->getNext(); if($node->getNext()==null){print("数据集为空!");return;}while($node->getData()!=$data){if($node->getNext()==null){break;}$node=$node->getNext();}return $node->getData();} /***@author MzXy*@param $value--需要更新的节点的原数据 --$initial---更新后的数据* */public function update($initial,$value){ $node=$this->header->getNext(); if($node->getNext()==null){print("数据集为空!");return;}while($node->getData()!=$data){if($node->getNext()==null){break;}$node=$node->getNext();} $node->setData($initial); }}?>
希望本文所述对大家的php程序设计有所帮助。