مقدمه ای به لیست های مرتبط در PHP: راهنمای مبتدی

لیست های پیوندی یک ساختار داده اساسی در علوم کامپیوتر است ، جایی که عناصر (گره ها به نام) به صورت متوالی از طریق نشانگرها متصل می شوند. بر خلاف آرایه ها ، لیست های مرتبط پویا هستند ، به این معنی که بدون نیاز به عملیات تغییر اندازه می توانند در اندازه رشد یا کوچک شوند. در این آموزش ، اصول اولیه اجرای یک لیست مرتبط در PHP را پوشش خواهیم داد.
ساختار یک گره لیست مرتبط
هر گره در یک لیست مرتبط از دو بخش تشکیل شده است:
- داده ها: مقدار ذخیره شده در گره.
- بعدی: یک مرجع (اشاره گر) به گره بعدی.
در اینجا یک مثال اجرای یک گره اساسی در PHP آورده شده است:
class Node {
public $data;
public $next;
public function __construct($data) {
$this->data = $data;
$this->next = null;
}
}
اجرای یک لیست مرتبط ساده
برای مدیریت گره ها ، ما یک کلاس LinkedList ایجاد می کنیم که سر لیست را حفظ می کند و روش هایی را برای دستکاری در آن فراهم می کند.
عملیات اساسی
1. گره را به انتها اضافه کنید
ما با تکرار گره ها ، یک گره را به انتهای لیست اضافه می کنیم تا اینکه به آخرین مورد برسیم.
class LinkedList {
private $head;
public function __construct() {
$this->head = null;
}
public function append($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;
}
}
}
2. لیست را نمایش دهید
ما می توانیم لیست را برای چاپ همه عناصر طی کنیم.
public function display() {
$current = $this->head;
while ($current !== null) {
echo $current->data . " -> ";
$current = $current->next;
}
echo "NULL\n";
}
3. یک گره را حذف کنید
حذف یک گره شامل یافتن گره و به روزرسانی نشانگر گره قبلی است.
public function delete($data) {
if ($this->head === null) {
return;
}
if ($this->head->data === $data) {
$this->head = $this->head->next;
return;
}
$current = $this->head;
while ($current->next !== null && $current->next->data !== $data) {
$current = $current->next;
}
if ($current->next !== null) {
$current->next = $current->next->next;
}
}
استفاده از مثال
در اینجا نحوه استفاده از اجرای لیست پیوندی آورده شده است:
$linkedList = new LinkedList();
$linkedList->append(10);
$linkedList->append(20);
$linkedList->append(30);
echo "Initial List:\n";
$linkedList->display();
$linkedList->delete(20);
echo "After Deleting 20:\n";
$linkedList->display();
*خروجی:
*
Initial List:
10 -> 20 -> 30 -> NULL
After Deleting 20:
10 -> 30 -> NULL
پایان
لیست های مرتبط ابزاری قدرتمند برای دستکاری داده های پویا است. در حالی که PHP دارای عملکردهای آرایه ای است که اغلب در خدمت اهداف مشابهی هستند ، درک لیست های مرتبط برای درک ساختار داده های اساسی و بهبود تفکر الگوریتمی ضروری است. این اجرای یک نقطه شروع برای سازه های پیشرفته تر مانند لیست های مضاعف و لیست های پیوندی دایره ای است.