栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

php 双向链表

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

php 双向链表

class student
{
    public $name;                    //姓名
    public $id;                      
    public $gender;                  // 性别
    public $chinese;                               
    public $math;                                  
    public $english;                            
    public $computer;                            
    public $prev = null;            //前节点
    public $next = null;            //后节点
 
    function __construct($name="",$id="",$gender="",$chinese="",$math="",$english="",$computer="") {
        $this->name = $name;
        $this->id = $id;
        $this->gender = $gender;                          
        $this->chinese = $chinese;
        $this->math = $math;
        $this->english = $english;
        $this->computer = $computer;
    }
     
    public static function findStudent($head,$student,$type='id')
    {
        $temp = $head;
        $isFind = false;
        while (!is_null($temp)) {
            if ($temp->$type == $student->$type) {
                $isFind = true;
                break;
            }
            $temp=$temp->next;
        }
        if ($isFind) {
             echo "n找到:学生姓名:".$temp->name."  学号:".$temp->id."  性别:".$temp->gender."  语文:".$temp->chinese."  数学:".$temp->math."  英语:".$temp->english."  计算机:".$temp->computer."";
        }else {
            echo "没有找到该学生信息";
        }
    }
     
 
   
    public static function insertStudent($head,$student)
    {
        $temp = $head;
        if(is_null($temp->next)){
            $temp->next = $student;
            $student->prev = $temp;
        }else{
            $isAdd = true;
            while ( !is_null($temp->next)) {
                if ($temp->next->id > $student->id) {
                    break;
                }elseif ($temp->next->id == $student->id)
                {
                    echo "学号相同";
                    $isAdd = false;
                }
                $temp = $temp->next;
            }
            if ($isAdd) {
                $student->next = $temp->next;
                $student->prev = $temp;
                //$temp->next->prev = $student;
                $temp->next = $student;
            }
        }
    }
 
   
    public static  function delStudent($head,$student)
    {
        $temp = $head->next;
        $isFind = false;
        while (!is_null($temp)) {
            if ($temp->id == $student->id) {
                $isFind = true;
                break;
            }
            $temp=$temp->next;
        }
        if ($isFind) {
            if (!is_null($temp->next)) {
                $temp->next->prev=$temp->prev;
            }
            $temp->prev->next=$temp->next;
 
            echo "删除的学生为".$temp->name."  学号:".$temp->id."  性别:".$temp->gender."  语文:".$temp->chinese."  数学:".$temp->math."  英语:".$temp->english."  计算机:".$temp->computer."";
        }else {
            echo "没有找到该学生信息";
        }
    }
 
   
    public static function showAllStudent($head)
    {
        $temp = $head->next;
        while (!is_null($temp)) {
            echo "n学生姓名:".$temp->name."  学号:".$temp->id."  性别:".$temp->gender."  语文:".$temp->chinese."  数学:".$temp->math."  英语:".$temp->english."  计算机:".$temp->computer."";
            $temp=$temp->next;
        }
    }
}
 
$head = new student();
$student1 = new student("张永伟","98","男","100","100","100","100");
$student2 = new student("魏海龙","99","男","100","100","100","100");
$student3 = new student("宋老师","100","男","100","100","100","100");
$student4 = new student("杨老师","97","男","100","100","100","100");
$student5 = new student("李杰","96","男","100","100","100","100");
 
 
student::insertStudent($head,$student1);
student::insertStudent($head,$student2);
student::insertStudent($head,$student3);
student::insertStudent($head,$student4);
student::insertStudent($head,$student5);
echo "n删除宋老师:n";
student::delStudent($head,$student3);
echo "n全部学生信息遍历:";
student::showAllStudent($head);
 
echo "n查找学生张永伟:";
student::findStudent($head,$student1);

?>

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/228819.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号