Maison > Article > développement back-end > PHP implémente des listes chaînées de structures de données couramment utilisées
PHP implémente des listes chaînées de structures de données couramment utilisées
Récemment, j'ai complété mes connaissances sur les structures de données et j'ai vu quelques algorithmes liés aux listes chaînées, j'ai donc utilisé PHP pour simplement mettre en œuvre la création d’une liste à chaînage unique.
Ajouter des classes liées aux nœuds :
<?php namespace App\Libraries; class ListNode { //节点数据域 public $data; //节点指针域 public $next; //构建节点 public function __construct($data = null, $next = null) { $this->data = $data; $this->next = $next; } }
Classes d'opérations liées à une liste à chaînage unique :
<?php namespace App\Libraries; 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; } }
Utiliser
<?php namespace App\Http\Controllers; // use Illuminate\Http\Request; use App\Libraries\SingleLinkList; class IndexController extends Controller { public function index () { $list = new SingleLinkList(); dd($list->headInsert(10)); //dd($list->tailInsert(10)); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!