/*
*ファイル名:linearList.php
* 機能:データ構造線形テーブルのシーケンシャルストレージ実装
* 著者:Li Jinhuan
* @copyright :www.drw1314.com
*/
class LinearList {
private $arr;
const MAXSIZE=100;
/*
*コンストラクター、リストが空か空かを判断し、インスタンス化しますit
* @param array $arr 入力配列
* @param int $n 入力配列の長さ
* @ruturn void;
if($n> self::MAXSIZE ) {
echo '配列 '.$n.' の長さがメモリ領域を超えています!' .self::MAXSIZE;
} else if($n<0) {
echo '例外、長さを負の数にすることはできません。 ';
} else if($n==0) {
echo '
....配列長が 0 の空のテーブルを作成しました....
< br />';
$this->arr=$arr;
}else{
echo '
...テーブルが正常に作成されました...
$this->length=$n;
}
*ビット単位検索し、見つかった値を返します
* @ruturn string;
* @param int $n 検索する位置
*/
function findValue($n) {
if($n>$this->length||$n< ;1){
return '入力位置 '.$n.' が正しくありません。1 から '.$this->length' の範囲内にしてください。
}
return '探している番号';ビット $n の値は '.$this->arr[$n-1];
/*
*値で検索して、見つかった位置を返します
* @ruturn 文字列;検索する int $n 値
*/
function findSite($n) {
for($i=0;$ilength;$i++){
if($this->arr[$ i ]==$n){
$b=$i+1;
return '.$n.' は '.$b; に対応します。 }
}
if(!$v){
return '探している値'.$n.' は存在しません'
}
}
/*
*選択した位置に値を挿入します
* @ ruturn 配列;
* @param int $i 挿入位置
* @param int $v 挿入値
*/
function insertValue($i,$v) {
if($i<1||$i>self :: MAXSIZE){
echo '.$i.' の挿入位置が間違っています。1 から '.self::MAXSIZE.' の範囲内にしてください。
}
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;
/*
*選択された位置の値を削除します
* @ruturn array; @param int $i Position
* /
function deleteValue ($i) {
if($iecho '選択された位置'.$i.' が間違っています。1 を ' .$this-> に変更してください;長さ。';
return ;
}
for($j=$i;$j$this->arr[ $j-1]=$this- >arr[$j];
}
unset($this->arr[$this->length-1]);
return $this->arr;
}
function __destruct(){
if($this->length==0){
echo '
...空のテーブルを破棄...< ;br/>'; }else{
echo '
...テーブルが正常に破棄されました..
';
}
}
}
//以下はユースケースです
$arr=array( 10,125,123,1,4);
$n=5;
$linearList($arr, $n);
echo $linearList->findValue(5).'
'; $linearList->findSite(4).'
';
echo '
'
print_r($linearList->insertValue(20,300)); ';
echo ''
print_r($linearList->deleteValue(1));
http://www.bkjia.com/PHPjc/324971.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/324971.html
技術記事
次のようにコードをコピーします: ?php /* *ファイル名:linearList.php *機能:データ構造線形テーブルのシーケンシャルストレージ実装* 著者:Li Jinhuan* @copyright:www.drw1314.com */ class Linear...