PHP 实现常用数据结构之链表
16lz
2021-01-22
PHP 实现常用数据结构之链表
最近在恶补数据结构相关的知识,看到链表相关的一些算法,就用 PHP 简单实现了单链表的创建。
添加节点相关类:
<?phpnamespace App\Libraries;class ListNode{ //节点数据域 public $data; //节点指针域 public $next; //构建节点 public function __construct($data = null, $next = null) { $this->data = $data; $this->next = $next; }}
单链表相关操作类:
<?phpnamespace 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; }}
使用
<?phpnamespace 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)); }}
更多相关文章
- jQuery的DOM操作实例(3)——创建节点&&编写一个弹窗
- jQuery编程基础精华02(属性、表单过滤器,元素的each,表单选择器,子元
- 如何在java脚本中获取节点内部文本?
- 用replaceWith()对DOM结点操作时应注意的问题
- Study JQuery《zTree自动点击第一个节点》
- 如何使用ajax GET或POST方法将数据传递到amazon lambda节点。js
- jQuery.zTree 点击节点展开折叠子节点
- easyui-tree根据叶子节点获取父节点值(N层)
- PHP递归函数删除所有子节点导致stackoverflow