#### 在C語言中,我們可以利用結構體和指針來實現各種數據結構.雖然在PHP中并沒有**結構體**和**指針**的概念,但是我們可以用**類**和**類的繼承**以及**變量的引用**來實現C語言結構體和指針同樣的效果.PHP中也有數組的概念,所以我們可以相對很方便的用它們來實現一些數據結構的構造.
* 下面的代碼簡單實現了單鏈表的插入
```
<?php
class structNode {
public $data;
private $next;
public function __construct($data)
{
$this->data = $data;
}
}
class Link
{
private $header;
public function __construct($headerData = 'header')
{
$this->header = new structNode($headerData);
}
public function insert($data,$pos)
{
$current = $this->header;
$i = 0;
while ( $i < $pos - 1) {
$current = $current->next;
$i++;
}
$tmp = $current->next;
$newNode = structNode($data);
$current->next = $newNode;
$newNode = $tmp;
return true;
}
}
```
#### 線性結構的相關內容放在了第一章,包括數組、鏈表、棧和隊列.其中重點講解的內容是鏈表、棧、隊列以及相關簡單應用,如**鏈表反轉**、**LRU算法**、**鏈表合并**等內容
#### 樹相關的內容在第二章,主要講解完全二叉樹、**二叉搜索樹**、**平衡二叉搜索樹**、B-Tree、**B+樹**、**堆**以及這些樹的相關應用