数据结构线性表代码
线性表是n个数据特性相同的元素的组成有限序列,是最基本且常用的一种线性结构(线性表,栈,队列,串和数组都是线性结构),同时也是其他数据结构的基础。
对于非空的线性表或者线性结构的特点:
(1)存在唯一的一个被称作“第一个”的数据元素;
(2)存在唯一的一个被称作“最后一个”的数据元素;
(3)除第一个外,结构中的每个数据元素均只有一个前驱;
(4)除最后一个外,结构中的每个数据元素均只有一个后继;
线性表结构顺序表示(顺序表)
概念:用一组地址连续的存储单元依次存储线性表的数据元素,这种存储结构的线性表称为顺序表。
特点:逻辑上相邻的数据元素,物理次序也是相邻的。
只要确定好了存储线性表的起始位置,线性表中任一数据元素都可以随机存取,所以线性表的顺序存储结构是一种随机存取的储存结构,因为高级语言中的数组类型也是有随机存取的特性,所以通常我们都使用数组来描述数据结构中的顺序储存结构,用动态分配的一维数组表示线性表。
下面是用php来实现数据结构线性表(顺序表)的代码:<?php
class ArrayList{
private $list;
private $size;
public function __construct()
{
$this->list=array();
$this->size=0;
}
//初始化链表
public function InitList(){
$this->list=array();
$this->size=0;
}
//删除链表
public function destoryList(){
if (isset($this->list)){
unset($this->list);
$this->size=0;
}
}
//清空链表
public function clearList(){
if (isset($this->list)){
unset($this->list);
}
$this->list=array();
$this->size=0;
}
//判断链表是否为空
public function emptyList(){
if (isset($this->list)){
if ($this->size==0){
return true;
}else{
return false;
}
}
}
//链表长度
public function lengthList(){
if (isset($this->list)){
return $this->size;
}else{
return false;
}
}
//取元素
public function getElem($i){
if ($i<1||$i>$this->size){
die('failed');
}
if (isset($this->list)&&is_array($this->list)){
return $this->list[$i-1];
}
}
//是否在链表中
public function locateElem($e){
if (isset($this->list)&&is_array($this->list)){
for ($i=0;$isize;$i++){
if ($this->list[$i]==$e){
return $i+1;
}
return 0;
}
}
}
//前驱
public function priorElem($i){
if ($i<1||$i>$this->size){
die('failed');
}
if ($i==1){
die('no prior');
}
if (isset($this->list)&&is_array($this->list)){
return $this->list[$i-2];
}
}
//后继
public function nextElem($i){
if ($i<1||$i>$this->size){
die('failed');
}
if ($i==$this->size){
die('no next');
}
if (isset($this->list)&&is_array($this->list)){
return $this->list[$i];
}
}
//插入元素
public function insertList($i,$e){
if ($i<1||$i>$this->size){
die('failed');
}
if (isset($this->list)&&is_array($this->list)){
if ($this->size==0){
$this->list[0]=$e;
$this->size++;
}else{
for($j=$this->size-1;$j>=$i;$j--){
$this->list[$j]=$this->list[$j-1];
}
$this->list[$i-1]=$e;
$this->size++;
}
}
}
//删除元素
public function deleteList($i){
if ($i<1||$i>$this->size){
die('failed');
}
if (isset($this->list)&&is_array($this->list)){
if ($i==$this->size){
unset($this->list[$i-1]);
}else{
unset($this->list[$i-1]);
for ($j=$i;$jsize;$j++){
$this->list[$j-1]=$this->list[$j];
}
}
$this->size--;
}
}
//遍历
public function printList(){
if (isset($this->list)&&is_array($this->list)){
foreach ($this->list as $value) {
echo $value.' ';
}
}
}
}
更多PHP相关知识,请访问PHP中文网!