文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php教程>php实现单链表的实例代码

php实现单链表的实例代码

时间:2021-01-19  来源:互联网

php实现单链表的实例代码,需要的朋友可以来php爱好者来参考一下

代码如下:

<?php

//链表节点 

class node { 

    public $id; //节点id 

    public $name; //节点名称 

    public $next; //下一节点 

    public function __construct($id, $name) { 

        $this->id = $id; 

        $this->name = $name; 

        $this->next = null; 

    } 

}

//单链表 

class singelLinkList { 

    private $header; //链表头节点 

    //构造方法 

    public function __construct($id = null, $name = null) { 

        $this->header = new node ( $id, $name, null ); 

    } 

    //获取链表长度 

    public function getLinkLength() { 

        $i = 0; 

        $current = $this->header; 

        while ( $current->next != null ) { 

            $i ++; 

            $current = $current->next; 

        } 

        return $i; 

    } 

    //添加节点数据 

    public function addLink($node) { 

        $current = $this->header; 

        while ( $current->next != null ) { 

            if ($current->next->id > $node->id) { 

                break; 

            } 

            $current = $current->next; 

        } 

        $node->next = $current->next; 

        $current->next = $node; 

    } 

    //删除链表节点 

    public function delLink($id) { 

        $current = $this->header; 

        $flag = false; 

        while ( $current->next != null ) { 

            if ($current->next->id == $id) { 

                $flag = true; 

                break; 

            } 

            $current = $current->next; 

        } 

        if ($flag) { 

            $current->next = $current->next->next; 

        } else { 

            echo "未找到id=" . $id . "的节点!<br>"; 

        } 

    } 

    //获取链表 

    public function getLinkList() { 

        $current = $this->header; 

        if ($current->next == null) { 

            echo ("链表为空!"); 

            return; 

        } 

        while ( $current->next != null ) { 

            echo 'id:' . $current->next->id . '   name:' . $current->next->name . "<br>"; 

            if ($current->next->next == null) { 

                break; 

            } 

            $current = $current->next; 

        } 

    } 

    //获取节点名字 

    public function getLinkNameById($id) { 

        $current = $this->header; 

        if ($current->next == null) { 

            echo "链表为空!"; 

            return; 

        } 

        while ( $current->next != null ) { 

            if ($current->id == $id) { 

                break; 

            } 

            $current = $current->next; 

        } 

        return $current->name; 

    } 

    //更新节点名称 

    public function updateLink($id, $name) { 

        $current = $this->header; 

        if ($current->next == null) { 

            echo "链表为空!"; 

            return; 

        } 

        while ( $current->next != null ) { 

            if ($current->id == $id) { 

                break; 

            } 

            $current = $current->next; 

        } 

        return $current->name = $name; 

    } 

}

$lists = new singelLinkList (); 

$lists->addLink ( new node ( 5, 'eeeeee' ) ); 

$lists->addLink ( new node ( 1, 'aaaaaa' ) ); 

$lists->addLink ( new node ( 6, 'ffffff' ) ); 

$lists->addLink ( new node ( 4, 'dddddd' ) ); 

$lists->addLink ( new node ( 3, 'cccccc' ) ); 

$lists->addLink ( new node ( 2, 'bbbbbb' ) ); 

$lists->getLinkList (); 

echo "<br>-----------删除节点--------------<br>"; 

$lists->delLink ( 5 ); 

$lists->getLinkList ();

echo "<br>-----------更新节点名称--------------<br>"; 

$lists->updateLink ( 3, "222222" ); 

$lists->getLinkList ();

echo "<br>-----------获取节点名称--------------<br>"; 

echo $lists->getLinkNameById ( 5 );

echo "<br>-----------获取链表长度--------------<br>"; 

echo $lists->getLinkLength (); 

?>

以上就是php实现单链表的实例代码的全部内容,希望对你的学习有所帮助。

相关阅读更多 +
最近更新
排行榜 更多 +
元梦之星最新版手游

元梦之星最新版手游

棋牌卡牌 下载
我自为道安卓版

我自为道安卓版

角色扮演 下载
一剑斩仙

一剑斩仙

角色扮演 下载