欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php linkedlist

PHP Linked List簡(jiǎn)介

在程序設(shè)計(jì)中,我們經(jīng)常會(huì)用到一種數(shù)據(jù)結(jié)構(gòu)——鏈表。它是由一系列節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)包括數(shù)據(jù)和一個(gè)指向下一個(gè)節(jié)點(diǎn)的指針。與數(shù)組不同,鏈表的元素不必存儲(chǔ)在連續(xù)的內(nèi)存位置中。

在PHP中,我們可以使用LinkedList類來(lái)實(shí)現(xiàn)鏈表的功能。

class Node {
public $data;
public $next;
public function __construct($data) {
$this->data = $data;
$this->next = null;
}
}
class LinkedList {
private $head;
public function __construct() {
$this->head = null;
}
public function add($data) {
$newNode = new Node($data);
if ($this->head == null) {
$this->head = $newNode;
} else {
$current = $this->head;
while ($current->next != null) {
$current = $current->next;
}
$current->next = $newNode;
}
}
public function remove($data) {
if ($this->head == null) {
return;
}
if ($this->head->data == $data) {
$this->head = $this->head->next;
return;
}
$current = $this->head;
while ($current->next != null) {
if ($current->next->data == $data) {
$current->next = $current->next->next;
return;
}
$current = $current->next;
}
}
public function printList() {
$current = $this->head;
while ($current != null) {
echo $current->data . " ";
$current = $current->next;
}
}
}

在上面的代碼中,我們定義了兩個(gè)類:Node和LinkedList。Node類表示鏈表中的節(jié)點(diǎn),$data屬性保存節(jié)點(diǎn)中的數(shù)據(jù),$next屬性保存下一個(gè)節(jié)點(diǎn)的指針。LinkedList類保存了鏈表的頭節(jié)點(diǎn),提供了一些方法操作鏈表。

在LinkedList類中,我們定義了add方法,它可以往鏈表中添加一個(gè)節(jié)點(diǎn)。如果鏈表為空,那么新節(jié)點(diǎn)就是鏈表的頭節(jié)點(diǎn);否則,我們需要遍歷整個(gè)鏈表,找到最后一個(gè)節(jié)點(diǎn),然后將新節(jié)點(diǎn)添加到它的后面。

我們還定義了remove方法,它可以從鏈表中刪除一個(gè)節(jié)點(diǎn)。如果要?jiǎng)h除的節(jié)點(diǎn)是頭節(jié)點(diǎn),那么只需要將頭節(jié)點(diǎn)指向下一個(gè)節(jié)點(diǎn)。如果要?jiǎng)h除的節(jié)點(diǎn)不是頭節(jié)點(diǎn),那么我們需要遍歷整個(gè)鏈表,找到要?jiǎng)h除節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn),然后將前一個(gè)節(jié)點(diǎn)的指針指向要?jiǎng)h除節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)。

最后,我們定義了printList方法,它可以打印整個(gè)鏈表的內(nèi)容。

下面是一些使用LinkedList類的例子。

$list = new LinkedList();
$list->add(1);
$list->add(2);
$list->add(3);
$list->printList(); // 輸出:1 2 3
$list->remove(2);
$list->printList(); // 輸出:1 3

在這個(gè)例子中,我們首先創(chuàng)建了一個(gè)空鏈表。然后,我們使用add方法往鏈表中添加了三個(gè)節(jié)點(diǎn):1、2、3。最后,我們使用printList方法打印了整個(gè)鏈表的內(nèi)容。

接著,我們使用了remove方法從鏈表中刪除了值為2的節(jié)點(diǎn)。最后,我們?cè)俅问褂胮rintList方法打印了整個(gè)鏈表的內(nèi)容。你會(huì)發(fā)現(xiàn),節(jié)點(diǎn)2已經(jīng)從鏈表中被刪除了。

總結(jié)

PHP Linked List是一種常用的數(shù)據(jù)結(jié)構(gòu),可以用于存儲(chǔ)一系列的數(shù)據(jù)。它具有簡(jiǎn)單、靈活、高效的特點(diǎn),在實(shí)際編程中得到了廣泛的應(yīng)用。相信通過(guò)本文的介紹和示例,你已經(jīng)了解了如何使用LinkedList類實(shí)現(xiàn)鏈表的功能了。