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);


?>

 

posted @ 2013-08-23 19:14  H&K  阅读(566)  评论(0编辑  收藏  举报