zoukankan      html  css  js  c++  java
  • 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);
    
    
    ?>
  • 相关阅读:
    test20190805 夏令营NOIP训练20
    test20190803 夏令营NOIP训练19
    test20190802 夏令营NOIP训练18
    「SDOI2016」征途
    LG4195 【模板】exBSGS
    test20190731 夏令营NOIP训练16
    CF600E Lomsat gelral 和 CF741D Dokhtar-kosh paths
    CF623E Transforming Sequence
    LG4351 [CERC2015]Frightful Formula
    CF553E Kyoya and Train
  • 原文地址:https://www.cnblogs.com/HKUI/p/3278423.html
Copyright © 2011-2022 走看看