程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php實現單鏈表,php實現單鏈

php實現單鏈表,php實現單鏈

編輯:關於PHP編程

php實現單鏈表,php實現單鏈


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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved