PHP 實現常用資料結構之連結串列

2020-07-16 10:05:43
PHP 實現常用資料結構之連結串列

最近在惡補資料結構相關的知識,看到連結串列相關的一些演算法,就用 PHP 簡單實現了單連結串列的建立。

新增節點相關類:

<?php
namespace AppLibraries;
class ListNode
{
    //節點資料域
    public $data;
    //節點指標域
    public $next;
    //構建節點
    public function __construct($data = null, $next = null)
    {
        $this->data = $data;
        $this->next = $next;
    }
}

單連結串列相關操作類:

<?php
namespace AppLibraries;
class SingleLinkList
{
    //頭部插入建立單連結串列
    public function headInsert($n)
    {
        //新建頭結點
        $head = new ListNode();
        for ($i=$n; $i > 0; $i--) { 
            //新增節點
            $newNode = new ListNode($i, $head->next);
            $head->next = $newNode;
        }
        return $head;
    }
    //尾部插入建立單連結串列
    public function tailInsert($n)
    {
        //新建頭尾節點,指向同一個節點
        $head = $tail = new ListNode();
        for ($i=1; $i <= $n; $i++) { 
            //新增節點
            $newNode = new ListNode($i);
            //將尾結點指標指向新的節點
            $tail->next = $newNode;
            //將新節點標記為尾結點
            $tail = $newNode;
        }
        return $head;
    }
}

使用

<?php
namespace AppHttpControllers;
// use IlluminateHttpRequest;
use AppLibrariesSingleLinkList;
class IndexController extends Controller
{
    public function index ()
    {
        $list = new SingleLinkList();
        dd($list->headInsert(10));
        //dd($list->tailInsert(10));
    }
}

以上就是PHP 實現常用資料結構之連結串列的詳細內容,更多請關注TW511.COM其它相關文章!