时间:2021-07-01 10:21:17 帮助过:5人阅读
classSqList
{public$elem;
public$length;
public$size;
}
classLinear
{const LIST_INIT_SIZE = 10;
const LIST_INCREMENT = 5;
private$list = null;
/**
* 构造一个空的线性表
*/publicfunctioninitList()
{$this->list = new SqList();
$this->list->elem = array();
$this->list->length = 0;
$this->list->size = self::LIST_INIT_SIZE;
returntrue;
}
/**
* 销毁线性表
*/publicfunctiondestoryList()
{if (is_object($this->list)) {
$this->list = null;
}
}
/**
* 是否为空表
*/publicfunctionlistEmpty()
{if (is_object($this->list)) {
return$this->list->length == 0 ? true : false;
}
}
/**
* 返回元素个数
*/publicfunctionlistLength()
{if (is_object($this->list)) {
return$this->list->length;
}
}
/**
* 获取指定位置的元素
*/publicfunctiongetElem($i)
{if ($i < 1 || $i > $this->list->length + 1) {
returnfalse;
}
return$this->list->elem[$i-1];
}
/**
* 在指定位置插入元素
*/publicfunctionlistInsert($i, $e)
{if ($i < 1 || $i > $this->list->length + 1) {
returnfalse;
}
if ($this->list->length >= $this->list->size) {
$this->list->size += self::LIST_INCREMENT;
}
for ($j = $this->list->length; $j >= $i; $j--) {
$this->list->elem[$j] = $this->list->elem[$j-1];
}
$this->list->elem[$i-1] = $e;
$this->list->length++;
}
/**
* 删除指定位置数据元素
*/publicfunctionlistDelete($i)
{if ($i < 1 || $i > $this->list->length) {
returnfalse;
}
$data = $this->list->elem[$i-1];
for ($j = $i -1; $j < $this->list->length -1; $j++) {
$this->list->elem[$j] = $this->list->elem[$j+1];
}
unset($this->list->elem[$this->list->length-1]);
$this->list->length--;
return$data;
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了PHP实现线性表的顺序存储结构,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。