码迷,mamicode.com
首页 > Web开发 > 详细

php实现单链表

时间:2016-07-04 15:29:25      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

<?php
/**
  * 单链表
  */ 
class Demo
{
    private $id;
    public $name;
    public $next;

    public function __construct ($id = ‘‘, $name = ‘‘)
    {
        $this->id = $id;
        $this->name = $name;
    }

    static public function show ($head)
    {
        $cur = $head;
        while ($cur->next) {
            echo $cur->next->id,‘###‘,$cur->next->name,‘<br />‘;
            $cur = $cur->next;
        }
        echo ‘<hr />‘;
    }

    //尾插法
    static public function push ($head, $node)
    {
        $cur = $head;
        while (NULL != $cur->next) {
            $cur = $cur->next;
        }
        $cur->next  = $node;
        return $head;
    }

    static public function insert($head, $node)
    {
        $cur = $head;
        while (NULL != $cur->next) {
            if ($cur->next->id > $node->id) {
                break;
            }
            $cur = $cur->next;
        }
        $node->next = $cur->next;
        $cur->next  = $node;
        return $head;
    }

    static public function edit($head, $node)
    {
        $cur = $head;
        while (NULL != $cur->next) {
            if ($cur->next->id == $node->id) {
                break;
            }
            $cur = $cur->next;
        }
        $cur->next->name = $node->name;
        return $head;        
    }

    static public function pop ($head, $node)
    {
        $cur = $head;
        while (NULL != $cur->next) {
            if ($cur->next == $node) {
                break;
            }
            $cur = $cur->next;
        }
        $cur->next = $node->next;
        return $head;            
    }
}

$team = new Demo();
$node1 = new Demo(1, ‘唐三藏‘);
Demo::push($team, $node1);
$node1->name = ‘唐僧‘;
Demo::show($team);

// Demo::show($team);
$node2 = new Demo(2, ‘孙悟空‘);
Demo::insert($team, $node2);
// Demo::show($team);
$node3 = new Demo(5, ‘白龙马‘);
Demo::push($team, $node3);
// Demo::show($team);
$node4 = new Demo(3, ‘猪八戒‘);
Demo::insert($team, $node4);
// Demo::show($team);
$node5 = new Demo(4, ‘沙和尚‘);
Demo::insert($team, $node5);
// Demo::show($team);
$node4->name = ‘猪悟能‘;//php对象传引用,所以Demo::edit没有必要
// unset($node4);
// $node4 = new Demo(3, ‘猪悟能‘);
// Demo::edit($team, $node4);
Demo::pop($team, $node1);

Demo::show($team);

 

php实现单链表

标签:

原文地址:http://www.cnblogs.com/laipiyang/p/5640337.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!