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 相关文章推荐
最省空间的计数器
Oct 09 PHP
PHP获取用户的浏览器与操作系统信息的代码
Sep 04 PHP
C#使用PHP服务端的Web Service通信实例
Apr 08 PHP
php中有关合并某一字段键值相同的数组合并的改进
Mar 10 PHP
PHP常用的排序和查找算法
Aug 06 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
May 31 PHP
基于PHPexecl类生成复杂的报表表头示例
Oct 14 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
May 19 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
Aug 10 PHP
Redis在Laravel项目中的应用实例详解
Aug 11 PHP
PHP排序二叉树基本功能实现方法示例
May 26 PHP
PHP面向对象程序设计之多态性的应用示例
Dec 19 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功能函数
2015/04/15 PHP
程序员的表白神器“520”大声喊出来
2016/05/20 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
php无限极分类实现方法分析
2019/07/04 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
关于document.cookie的使用javascript
2010/10/29 Javascript
JavaScript表达式:URL 协议介绍
2013/03/10 Javascript
jQuery实现为图片添加镜头放大效果的方法
2015/06/25 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
jquery实现手风琴效果
2015/11/20 Javascript
JS拖拽组件学习使用
2016/01/19 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
TensorFlow如何实现反向传播
2018/02/06 Python
python删除某个字符
2018/03/19 Python
python实现文本界面网络聊天室
2018/12/12 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
Python生成随机验证码代码实例解析
2020/06/09 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
Origins悦木之源香港官网:雅诗兰黛集团高端植物护肤品牌
2018/03/21 全球购物
新娘父亲婚礼致辞
2014/01/16 职场文书
个人承诺书
2014/03/26 职场文书
活动总结怎么写啊
2014/05/07 职场文书
观看建国大业观后感
2015/06/01 职场文书
2015年教师节感言
2015/08/03 职场文书
七年级之开学家长寄语35句
2019/09/05 职场文书
golang json数组拼接的实例
2021/04/28 Golang
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS
python开发制作好看的时钟效果
2022/05/02 Python