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

  • 相关阅读:
    【深入理解 Java 虚拟机】2. 自动内存管理
    【深入理解 Java 虚拟机】1. 走进 Java
    【JVM】体系结构和底层原理
    【JVM】JVM 入门与基础总结
    ios 个推推送集成
    iOS UIWebView 和 WKWebView 的 cookie 获取,设置,删除
    CUICatalog: Invalid asset name supplied: '(null)'
    iOS 警告收集快速消除
    ios 你必须了解的系统定义宏使用
    ios 开发常用函数
  • 原文地址:https://www.cnblogs.com/2881064178dinfeng/p/6217954.html
Copyright © 2020-2023  润新知