#### 在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+树**、**堆**以及这些树的相关应用