2.1 順序儲存結構

來源:互聯網
上載者:User

標籤:sse   ade   list   list()   php   clear   new   元素   err   

 

 

 

 

 下面用php實現線性表的順序儲存結構

<?phpheader("content-type:text/html;charset=utf-8");/** * 順序表基本操作 * *包括 *1.順序表的初始化 __contruct() *2.清空順序表 clearList() *3.根據下標返回順序表中的某個元素 getElement() *4.在指定位置插入一個新的結點 listInsert() *5.在指定的位置刪除元素listDelete() */class Linner_list{    public $linner_list;    public $size;//1.順序表的初始化 __contruct()    function __construct($linner_list,$size)    {        $this->linner_list =$linner_list;        $this->size = $size;    }//2.清空順序表 clearList()public function clearList(){    if(isset($this->linner_list)){        unset($this->linner_list);    }else{        $this->linner_list = array();        $this->size=0;    }}//3.根據下標返回順序表中的某個元素 getElement()//將線性表中第i個位置的元素返回,只要i的數值在下標範圍內,就是把數組第i-1下標的值返回即可    public function getElement($i){        if($this->size==0 || $i<1 || $i>$this->size){            echo "error";            return false;        }        if(isset($this->linner_list)&&is_array($this->linner_list)){            return $this->linner_list[$i-1];        }    }//4.插入操作//線上性表中第i個位置之前插入新的資料元素,線性表的長度+1/* * (1) 如果插入位置不合理,拋出異常 * (2)如果線性表的長度大於數組長度,則拋出異常或者動態增加容量 * (3)從最後一個元素開始向前遍曆到第i個位置,分別將他們都向後移動一個位置 * (4)將要插入的元素填入i處 * (5)表長加1 */    public function listInsert($i,$element){        if($i<1 || $i>$this->size){            echo "error";            return false;        } //       $this->size ++;        if(isset($this->linner_list)&&is_array($this->linner_list)){            if ($this->size==0){                $this->linner_list[0]=$element;                $this->size++;            }else{                for($j = $this->size-1;$j>=$i-1;$j--){                    $this->linner_list[$j+1] = $this->linner_list[$j];                }                $this->linner_list[$i-1] = $element;                $this->size ++;            }        }    }    //5.刪除操作    //刪除線性表中第i個位置的元素,線性表的長度-1    /*     * (1) 如果刪除位元置不合理,拋出異常     * (2)取出刪除的元素     * (3)從最後一個元素開始向前遍曆到第i個位置,分別將他們都向後移動一個位置     * (4)表長減1     */    public function listDelete($i){        if($i<1 || $i>$this->size){            echo "error";            return false;        }        if(isset($this->linner_list)&&is_array($this->linner_list)){            for($j = $i;$j<$this->size;$j++){                $this->linner_list[$j-1] = $this->linner_list[$j];            }            $this->size --;        }    }}?>

我們可以來驗證一下我們寫的函數

<?phpheader("content-type:text/html;charset=utf-8");include ‘linear_list.class.php‘;$array = array(1,2,3,4,5,6,7,8,9,10);$size = 10;$linear_list = new Linner_list($array,$size);//擷取元素for ($i=1;$i<=$size;$i++){    $num = $linear_list->getElement($i);    echo $num;    echo "</br>";}//在第二個位置插入元素66$linear_list->listInsert(2,66);print_r($linear_list);
echo "</br>";
//刪除第二個元素66 
$linear_list->listDelete(2);
print_r($linear_list);

?>

最後的結果是這樣的

2.1 順序儲存結構

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.