zoukankan      html  css  js  c++  java
  • 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);

  • 相关阅读:
    exe自启动的几种方式
    关于 CShellManager 的作用
    DLL 调用 对话框 以及 如何获取调用dll 应用程序(窗口程序)的窗口句柄
    VC++ 2010 创建高级Ribbon界面详解(4)
    HPU--1221 Fibonacci数列
    取一个数的前几位
    HDU--1875 畅通工程再续
    POJ--2485 Highways
    【模板】HDU--1233 畅通工程
    hdu--1856 More is better
  • 原文地址:https://www.cnblogs.com/2881064178dinfeng/p/6217954.html
Copyright © 2011-2022 走看看