• php单链表实现


    php单链表实现

    <?php
    //单链表
    class Hero{
    public $no;
    public $name; 
    public $nickname;
    public $next=null;
    
    function __construct($no='',$name=''){
    $this->no=$no;
    $this->name=$name;
      }
    
    }
    function addHero($head,$Hero){
        $cur=$head;
        $flag=true;
        while ($cur->next!=null) {
            if($cur->next->no>$Hero->no){
                $tmp=$cur->next;
                $cur->next=$Hero;
                $Hero->next=$tmp;
                $flag=false;break;
            }else if($cur->next->no==$Hero->no){echo "该位置已有人,不允许占位";$flag=false;break;}
            else{ $cur=$cur->next;}
        }
         if($flag){$cur->next=$Hero;}
    }
    //增加
    function showHero($head){
        $cur=$head;
        while($cur->next!=null){
            
            echo $cur->next->no.":".$cur->next->name."<br/>";
            $cur=$cur->next;
         }
    
     }
    //删除特定编号的
     function delHero($head,$no){
         $cur=$head;
         while($cur->next!=null){
             if($cur->next->no==$no)
                 {if($cur->next->next)$cur->next=$cur->next->next;
                     else $cur->next=null;
                     break;
                 }
                 $cur=$cur->next;
         }
    
     }
     //查找特定编号的信息
     function findHero($head,$no){
         $cur=$head;
         while($cur->next!=null){
             if($cur->next->no==$no){break;}
             $cur=$cur->next;
         }
         echo$cur->next->name;
    
     }
     //改特定编号的信息
     function updateHero($head,$no,$name){
         $cur=$head;
         while($cur->next!=null){
             if($cur->next->no==$no){break;}
             $cur=$cur->next;
         }
    $cur->next->name=$name;
     }
    $head=new Hero();
    $Hero=new Hero(1,"宋江");
    addHero($head,$Hero);
    $Hero=new Hero(6,"林冲");
    addHero($head,$Hero);
    $Hero=new Hero(2,"吴用");
    addHero($head,$Hero);
    $Hero=new Hero(4,"李逵");
    addHero($head,$Hero);
    showHero($head);
    //删除4号
    delHero($Hero,4);
    //查找6号
    findHero($head,6);
    // 修改6号
    updateHero($Hero,6,"林哥哥");
    showHero($head);
    
    
    ?>
  • 相关阅读:
    QML使用动画连续非线性改变int的取值
    QML粒子系统
    QML获取当前时间
    QML与C++混合编程
    QMLBinding
    QML图形渲染QtGraphicalEffects
    [九度][何海涛] 数组中只出现一次的数字
    [九度][何海涛] 扑克牌顺子
    [九度][何海涛] 最大子向量和
    [九度][何海涛] Move!Move!!Move!!!
  • 原文地址:https://www.cnblogs.com/HKUI/p/3278423.html
Copyright © 2020-2023  润新知