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生成静态HTML速度快类库
Mar 18 PHP
PHP连接SQLServer2005 的问题解决方法
Jul 19 PHP
PHP面向对象学习笔记之一 基础概念
Oct 06 PHP
codeigniter自带数据库类使用方法说明
Mar 25 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
关于php中一些字符串总结
May 05 PHP
PHP析构函数destruct与垃圾回收机制的讲解
Mar 22 PHP
php传值和传引用的区别点总结
Nov 19 PHP
浅析PHP echo 和 print 语句
Jun 30 PHP
PHP安全之register_globals的on和off的区别
Jul 23 PHP
php中配置文件保存修改操作 如config.php文件的读取修改等操作
May 12 PHP
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
Apr 11 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设计模式 Facade(外观模式)
2011/06/26 PHP
PHP实现显示照片exif信息的方法
2014/07/11 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
2017/06/11 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
再谈IE中Flash控件的自动激活 ObjectWrap
2007/03/09 Javascript
jquery插件制作 图片走廊 gallery
2012/08/17 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
简单的js表单验证函数
2013/10/28 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
微信小程序教程系列之新建页面(4)
2017/04/17 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
vue+mock.js实现前后端分离
2019/07/24 Javascript
JS实现打字游戏
2019/12/17 Javascript
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
Python字符串匹配之6种方法的使用详解
2019/04/08 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
Django bulk_create()、update()与数据库事务的效率对比分析
2020/05/15 Python
python脚本和网页有何区别
2020/07/02 Python
Html5无刷新修改browser Url的方法
2014/01/15 HTML / CSS
马来西亚在线时尚女装商店:KEI MAG
2017/09/28 全球购物
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
广告学专业推荐信范文
2013/11/23 职场文书
小学教师管理制度
2014/01/18 职场文书
班主任班级寄语大全
2014/04/04 职场文书
护士找工作求职信
2014/07/02 职场文书
音乐兴趣小组活动总结
2014/07/07 职场文书
大学生交通专业求职信
2014/09/01 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
好人好事新闻稿
2015/07/17 职场文书
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
Python+Selenium实现读取网易邮箱验证码
2022/03/13 Python