PHP小教程之实现链表


Posted in PHP onJune 09, 2014

看了很久数据结构但是没有怎么用过,在网上看到了关于PHP的数据结构,学习了一下,与大家一起分享一下。

class Hero
{
    public $no;//排名
    public $name;//名字
    public $next=null;//$next是一个引用,指向另外一个Hero的对象实例    public function __construct($no='',$name='')
    {
        $this->no=$no;
        $this->name=$name;
    }
    static public function showList($head)
    {
        $cur = $head;
        while($cur->next!=null)
        {
            echo "排名:".$cur->next->no.",名字:".$cur->next->name."<br>";
            $cur = $cur->next;
        }
    }
    //普通插入
    static public function addHero($head,$hero)
    {
        $cur = $head;
        while($cur->next!=null)
        {
            $cur = $cur->next;
        }
        $cur->next=$hero;
    }
    //有序的链表的插入  
    static public function addHeroSorted($head,$hero)
    {
        $cur = $head;
        $addNo = $hero->no;
        while($cur->next->no <= $addNo)
        {
            $cur = $cur->next;
        }
        /*$tep = new Hero();
        $tep = $cur->next;
        $cur->next = $hero;
        $hero->next =$tep;*/
        $hero->next=$cur->next;
        $cur->next=$hero;
    }
    static public function deleteHero($head,$no)
    {
        $cur = $head;
        while($cur->next->no != $no && $cur->next!= null)
        {
            $cur = $cur->next;
        }
        if($cur->next->no != null)
        {
            $cur->next = $cur->next->next;
            echo "删除成功<br>"; 
        }
        else
        {
            echo "没有找到<br>"; 
        }
    }
    static public function updateHero($head,$hero)
    {
        $cur = $head;
        while($cur->next->no != $hero->no && $cur->next!= null)
        {
            $cur = $cur->next;
        }
        if($cur->next->no != null)
        {
            $hero->next = $cur->next->next;
            $cur->next = $hero;
            echo "更改成功<br>"; 
        }
        else
        {
            echo "没有找到<br>"; 
        }
    }
}

//创建head头
$head = new Hero();
//第一个
$hero = new Hero(1,'111');
//连接
$head->next = $hero;
//第二个
$hero2 = new Hero(3,'333');
//连接
Hero::addHero($head,$hero2);
$hero3 = new Hero(2,'222');
Hero::addHeroSorted($head,$hero3);
//显示
Hero::showlist($head);
//删除
Hero::deleteHero($head,4);
//显示
Hero::showlist($head);
//更改
$hero4=new Hero(2,'xxx');
Hero::updateHero($head,$hero4);
//显示
Hero::showlist($head);

有序的插入的话需要遍历一遍链表,链表的一些知识就不介绍了哈。这里主要分享一下代码。

PHP 相关文章推荐
php面向对象的方法重载两种版本比较
Sep 08 PHP
关于Appserv无法打开localhost问题的解决方法
Oct 16 PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
Jan 17 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
Dec 24 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
May 06 PHP
PHP将session信息存储到数据库的类实例
Mar 04 PHP
PHP实现抓取迅雷VIP账号的方法
Jul 30 PHP
php根据数据id自动生成编号的实现方法
Oct 16 PHP
PHP实现小偷程序实例
Oct 31 PHP
PHP单例模式定义与使用实例详解
Feb 06 PHP
PHP切割汉字的常用方法实例总结
Apr 27 PHP
windows系统php环境安装swoole具体步骤
Mar 04 PHP
浅谈Eclipse PDT调试PHP程序
Jun 09 #PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
Jun 09 #PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
Oct 01 #PHP
PHP遍历目录并返回统计目录大小
Jun 09 #PHP
php中替换字符串中的空格为逗号','的方法
Jun 09 #PHP
使用php批量删除数据库下所有前缀为prefix_的表
Jun 09 #PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 #PHP
You might like
php中显示数组与对象的实现代码
2011/04/18 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
php中get_defined_constants函数用法实例分析
2015/05/12 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
使用canvas进行图像编辑的实例
2017/08/29 Javascript
原生JS实现简单的无缝自动轮播效果
2018/09/26 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
[47:52]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第二场 11.26
2020/11/30 DOTA
python创建文件时去掉非法字符的方法
2018/10/31 Python
Python编程中flask的简介与简单使用
2018/12/28 Python
python实现诗歌游戏(类继承)
2019/02/26 Python
python 操作hive pyhs2方式
2019/12/21 Python
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
英国领先的NHS批准的在线药店:Pharmacy2U
2017/01/06 全球购物
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
介绍下WebSphere的安全性
2013/01/31 面试题
教师岗位职责范本
2013/12/29 职场文书
医学生临床实习自我评价
2014/03/07 职场文书
库房保管员岗位职责
2014/04/07 职场文书
《海底世界》教学反思
2014/04/16 职场文书
法学求职信
2014/06/22 职场文书
2014年超市工作总结
2014/11/19 职场文书
歼十出击观后感
2015/06/11 职场文书
读完《骆驼祥子》的观后感!
2019/07/05 职场文书
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android
Go语言基础map用法及示例详解
2021/11/17 Golang
Javascript中async与await的捕捉错误详解
2022/03/03 Javascript