• 技术文章 >后端开发 >php教程

    php单链怎么实现?php单链的实现代码

    不言不言2018-12-30 09:11:31转载2011
    本篇文章给大家带来的内容是关于php单链怎么实现?php单链的实现代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    //单个节点
    class node {
        //初始化变量,包括存储的内容 和 下一个数据的指针
        public $id = 0;
        public $data = '';
        public $next = null;
    
        //构造函数,设置存储内容的数据
        public function __construct($id,$nodedata){
            $this->id = $id;
            $this->data = $nodedata;
        }
    }
    class singleLink {
        public $head = '';
        public $size = 0;
        public function insert($id,$value,$prenodeid = 0){
            $node = new node($id,$value);
            //空链表,直接添加
            if ($this->size == 0){
                $this->head = $node;
            } elseif ($prenodeid == 0) {
                //如果不是空链表,且并没有指定在某一个节点前添加
                //则在当前节点前添加
                $node->next = $this->head;
                $this->head = $node;
            } else {
                //在某一节点后添加新节点
                $cruntnode = $this->head;
                while($cruntnode->next != null ){
                    if($cruntnode->next->id == $prenodeid){
                        $node->next = $cruntnode->next;
                        $cruntnode->next = $node;
                        break;
                    }
                    $cruntnode = $cruntnode->next;
                }
            }
            $this->size++;
            return $this;
        }
    
        public function edit($id,$value){
            $flag = false;
            $current = $this->head;
            while(@$current->id !=null){
                if($current->id == $id){
                    $current->data = $value;
                    $flag = true; 
                    break;
                } 
                $current = $current->next;
            }
            return $flag;
        }
    
        public function get($id=0){
            $current = $this->head;
            while(@$current->id !=null){
                if($id !=0 && $current->id==$id){
                    $node = $current;
                    break;
                } else {
                    $node[] = array($current->id,$current->data);
                }
                $current = $current->next;
            }
            return $node;
        }
    
        public function sort(){
            
        }
    
        public function delete($id){
            $flag = false;
            $current = $this->head;
            while(@$current->id !=null){
                if($current->next->id == $id){
                    $current->next = $current->next->next;
                    $this->size--;
                    $flag = true; 
                    break;
                } 
                $current = $current->next;
            }
            return $flag;
        }
    
    }
    
    $linklist = new singleLink();
    $linklist->insert(1,'stark');
    $linklist->insert(2,'shudong.wang');
    $linklist->insert(3,'rdhub.cn');
    $linklist->insert(4,'haha4');
    $linklist->insert(5,'haha5');
    $linklist->insert(6,'haha6');
    $linklist->insert(7,'haha7');
    
    $linklist->delete(5);
    $linklist->insert(8,'haha8')->insert(9,'haha9')->insert(10,'haha10')->insert(11,'haha11');
    var_dump($linklist);

    以上就是php单链怎么实现?php单链的实现代码的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:segmentfault,如有侵犯,请联系admin@php.cn删除
    专题推荐:php单链
    上一篇:PHP如何查找两个数组的交集 下一篇:php如何使用array_merge()函数?(代码示例)
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• php单链表实现• PHP单链表的基本操作• php代码 php单链表实现代码分享• php代码 PHP单链表的实现代码• PHP单链表翻转• PHP单链表的基本操作实例分享
    1/1

    PHP中文网