/*
*File name: linearList.php
* Function: Sequential storage implementation of data structure linear table
* author:Li Jinhuan
* @copyright:www.drw1314.com
*/
class linearList {
private $arr;
private $length;
const MAXSIZE=100;
/*
* Constructor to determine whether the table is empty or empty, and instantiate it
* @param array $arr input Array
* @param int $n The length of the input array
* @ruturn void;
*/
function __construct($arr,$n) {
if($n>self: :MAXSIZE) {
echo 'Sorry, the length of the array '.$n.' exceeds the memory space!'.self::MAXSIZE;
} else if($n<0) {
echo ' Exception, length cannot be negative. ';
} else if($n==0) {
echo '
....You created an empty table with an array length of 0....
';
$this->arr=$arr;
$this->length=$n;
}else{
echo '
....Successfully created a table....
';
$this->arr=$arr;
$this-> length=$n;
}
}
/*
*Bitwise search, return the found value
* @ruturn string;
* @param int $n searched Position
*/
function findValue($n) {
if($n>$this->length||$n<1){
return 'Input position'.$n .' is incorrect, please be in the range of 1 to '.$this->length.';
}
return 'The value of the '.$n.'th position you are looking for is'. $this->arr[$n-1];
}
/*
* Search by value and return the found position
* @ruturn string;
* @param int $n value to find
*/
function findSite($n) {
for($i=0;$i<$this->length;$i++){
if($ this->arr[$i]==$n){
$b=$i+1;
return 'The value you are looking for'.$n.' corresponds to '.$b' ;
}else{
$v=false;
}
}
if(!$v){
return 'The value you are looking for'.$n.' No Exists';
}
}
/*
*Insert a value at the selected position
* @ruturn array;
* @param int $i insertion position
* @param int $v inserted value
*/
function insertValue($i,$v) {
if($i<1||$i>self::MAXSIZE){
echo 'The inserted position '.$i.' is incorrect, please be in the range from 1 to '.self::MAXSIZE.';
return ;
}
for($h= $this->length;$h>=$i;$h--){
$this->arr[$h]=$this->arr[$h-1];
}
if($i>$this->length){
$this->arr[$this->length]=$v;
}else{
$this- >arr[$i-1]=$v;
}
$this->length++;
return $this->arr;
}
/*
*Delete a value at the selected position
* @ruturn array;
* @param int $i position
*/
function deleteValue($i) {
if($i< ;1||$i>$this->length){
echo 'The selected position'.$i.' is incorrect, please be in the range of 1 to '.$this->length.' ';
return ;
}
for($j=$i;$j<$this->length;$j++){
$this->arr[$j-1 ]=$this->arr[$j];
}
unset($this->arr[$this->length-1]);
$this->length- -;
return $this->arr;
}
function __destruct(){
if($this->length==0){
echo '
...Destroy an empty table...
';
}else{
echo '
...Destroy a table successfully..
';
}
}
}
//The following is the use case
$arr=array(10,125,123,1,4);
$n=5; >$linearList=new linearList($arr, $n);
echo $linearList->findValue(5).'
';
echo $linearList->findSite(4) .'
';
echo '
'; <br>print_r($linearList->insertValue(20,300)); <br>echo '
';
echo '
'; <br>print_r($linearList->deleteValue(1)); <br>echo '
';