php線性表順序儲存實現代碼(增刪查改)_php技巧

來源:互聯網
上載者:User
複製代碼 代碼如下:

<?php
/*
*檔案名稱:linearList.php
* 功能:資料結構線性表的順序儲存實現
* author:黎錦煥
* @copyright:www.drw1314.com
*/
class linearList {
private $arr;
private $length;
const MAXSIZE=100;
/*
*建構函式,判斷空表還是飛空表,並且進行執行個體化
* @param array $arr 輸入的數組
* @param int $n 輸入數組的長度
* @ruturn void;
*/
function __construct($arr,$n) {
if($n>self::MAXSIZE) {
echo '對不起,數組的長度'.$n.'超出了記憶體空間!'.self::MAXSIZE;
} else if($n<0) {
echo '異常,長度不能為負數。';
} else if($n==0) {
echo '<br/>....你建立了一張空表,數組長度為0....<br/><br/>';
$this->arr=$arr;
$this->length=$n;
}else{
echo '<br/>....成功建立一張表....<br/><br/>';
$this->arr=$arr;
$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 string;
* @param int $n 尋找的值
*/
function findSite($n) {
for($i=0;$i<$this->length;$i++){
if($this->arr[$i]==$n){
$b=$i+1;
return '你要找的值'.$n.'對應的位置為'.$b;
}else{
$v=false;
}
}
if(!$v){
return '你所找的值'.$n.'不存在';
}
}
/*
*在選定的位置處插入某個值
* @ruturn array;
* @param int $i 插入位置
* @param int $v 插入的值
*/
function insertValue($i,$v) {
if($i<1||$i>self::MAXSIZE){
echo '插入的位置'.$i.'不正確,請在1到'.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;
}
/*
*在選定的位置刪除某個值
* @ruturn array;
* @param int $i 位置
*/
function deleteValue($i) {
if($i<1||$i>$this->length){
echo '選定的位置'.$i.'不正確,請在1到'.$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 '<br/>...銷毀一張空表...<br/>';
}else{
echo '<br/>...成功銷毀一張表..<br/>';
}
}
}
//下面是使用案例
$arr=array(10,125,123,1,4);
$n=5;
$linearList=new linearList($arr, $n);
echo $linearList->findValue(5).'<br/>';
echo $linearList->findSite(4).'<br/>';
echo '<pre>';
print_r($linearList->insertValue(20,300));
echo '</pre>';
echo '<pre>';
print_r($linearList->deleteValue(1));
echo '</pre>';

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.