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 相关文章推荐
Get或Post提交值的非法数据处理
Oct 09 PHP
php面向对象全攻略 (十七) 自动加载类
Sep 30 PHP
php开发过程中关于继承的使用方法分享
Jun 17 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
Aug 06 PHP
php var_export与var_dump 输出的不同
Aug 09 PHP
php实现水仙花数示例分享
Apr 03 PHP
PHP三元运算的2种写法代码实例
May 12 PHP
ThinkPHP实例化模型的四种方法概述
Aug 22 PHP
PHP中的随机性 你觉得自己幸运吗?
Jan 22 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
THINKPHP3.2使用soap连接webservice的解决方法
Dec 13 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
Oct 30 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
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
PHP的FTP学习(二)[转自奥索]
2006/10/09 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
javascrip关于继承的小例子
2013/05/10 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
jQuery知识点整理
2015/01/30 Javascript
jQuery平滑旋转幻灯片特效代码分享
2015/09/07 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
关于vue面试题汇总
2018/03/20 Javascript
vue计算属性computed的使用方法示例
2019/03/13 Javascript
python实现网页链接提取的方法分享
2014/02/25 Python
Tensorflow 查看变量的值方法
2018/06/14 Python
在Pycharm中自动添加时间日期作者等信息的方法
2019/01/16 Python
tensor和numpy的互相转换的实现示例
2019/08/02 Python
python实现银行管理系统
2019/10/25 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
新东方旗下远程教育网站:新东方在线
2020/03/19 全球购物
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
中专生学习生活的自我评价分享
2013/10/27 职场文书
偷看我的初中毕业鉴定
2014/01/29 职场文书
政治表现评语
2014/05/04 职场文书
个人安全生产承诺书
2014/05/22 职场文书
求职信怎么写
2014/05/23 职场文书
锦旗标语大全
2014/06/23 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
从严治党主题教育活动总结
2015/05/07 职场文书
2016秋季幼儿园开学寄语
2015/12/03 职场文书
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript
Redis+AOP+自定义注解实现限流
2022/06/28 Redis