无为清净楼资源网 Design By www.qnjia.com
本文实例讲述了PHP实现链表的定义与反转功能。分享给大家供大家参考,具体如下:
PHP定义链表及添加、移除、遍历等操作:
<"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); } } $lists = new LinkList(); $lists -> add(1); $lists -> add(2); $lists -> get(); echo '<pre>'; print_r($lists); echo '</pre>'; "htmlcode">function ReverseList($pHead) { // write code here if($pHead == null || $pHead->next == null){ return $pHead; } $p = $pHead; $q = $pHead->next; $pHead->next = null;//$pHead 变为尾指针 while($q){ $r = $q->next; $q->next = $p; $p = $q; $q = $r; } return $p; }2. 使用递归方法。三个结点,头结点,首节点,第二个结点。把首节点后面的所有结点当成第二个结点,依次循环下去,由于要满足
$pHead != null || $pHead->next != null
;所以不会出现遍历不完的情况function ReverseList($pHead) { // write code here if($pHead == null || $pHead->next == null){ return $pHead; } $res = ReverseList($pHead->next); $pHead->next->next = $pHead; $pHead->next = null; return $res; }更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》及《PHP数学运算技巧总结》
希望本文所述对大家PHP程序设计有所帮助。
标签:
PHP,链表,定义,反转
无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com
暂无评论...
更新日志
2024年11月18日
2024年11月18日
- 群星《魅音绝唱》黑胶CD【WAV】
- 腾格尔.2002-四十独白【风潮】【WAV+CUE】
- 陈明真.1992-到哪里找那么好的人【华星】【WAV+CUE】
- 黄凯芹.2012-廿五年3CD【环球】【WAV+CUE】
- 证声音乐图书馆《七夕 爵士情缘》[320K/MP3][64.8MB]
- 证声音乐图书馆《七夕 爵士情缘》[FLAC/分轨][327.79MB]
- 杨泰瑞《City Boy》[320K/MP3][28.71MB]
- 胡彦斌《失业情歌》首版[WAV+CUE]
- 杨泰瑞《City Boy》[FLAC/分轨][159.66MB]
- APM亚流新世代《一起冒险》[320K/MP3][68.66MB]
- FIM《天伦乐》(DaydreamsAndLullabies)24K金碟[WAV+CUE]
- 【雨果唱片】中国管弦乐《鹿回头》
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]