首頁  >  文章  >  後端開發  >  【PHP學習】線性表的順序儲存結構原理分析以及程式碼範例

【PHP學習】線性表的順序儲存結構原理分析以及程式碼範例

little bottle
little bottle轉載
2019-04-25 15:55:501819瀏覽

本篇文章主要講述的是線性表的順序儲存結構原理分析以及程式碼範例,具有一定的參考價值,有興趣的朋友可以了解一下。

1.PHP中的陣列實際上是有序映射,可以當成數組,列表,散列表,字典,集合,棧,隊列,不是固定的長度
2.數組定義中多個單元都使用了同一個鍵名,則只使用了最後一個,之前的都被覆蓋了
3.想要函數的一個參數總是透過引用傳遞,可以在函數定義中該參數的前面加上符號&
4.PHP 的引用是別名,就是兩個不同的變數名字指向相同的內容;「預設情況下物件是透過引用傳遞的」。但其實這不是完全正確的,當對像作為參數傳遞,作為結果返回,或者賦值給另外一個變量,另外一個變量跟原來的不是引用的關係,只是他們都保存著同一個標識符的拷貝

<?php
class Sqlist{
        public $data=array();
        public $length=0;
}
//插入元素
function listInsert(&$sqlist,$i,$e){
        //位置是否超出范围
        if($i<1 && $i>$sqlist->length+1){
                return false;
        }   
        //从插入位置开始,后面的所有元素都退一位
        if($i<=$sqlist->length){//要插入的位置不是在尾部
                for($k=$sqlist->length-1;$k>=$i-1;$k--){
                        $sqlist->data[$k+1]=$sqlist->data[$k];
                }   
        }   
        //新元素插入
        $sqlist->data[$i-1]=$e;
        //长度加1
        $sqlist->length++;
        return true;
}
//获取元素
function getElement($sqlist,$i,&$e){
        if($sqlist->length==0 || $i<1 || $i>$sqlist->length){
                return false;
        }   
        $e=$sqlist->data[$i-1];
        return true;
}
//删除元素
function listDelete($sqlist,$i,&$e){
        if($sqlist->length==0 || $i<1 || $i>$sqlist->length){
                return false;
        }   
        $e=$sqlist->data[$i-1];
        //如果是最后一个元素
        if($i!=$sqlist->length){
                //在删除位置之后的元素,往前移动一位
                for($k=$i-1;$k<=$sqlist->length-1;$k++){
                        $sqlist->data[$k]=$sqlist->data[$k+1];
                }   
        }   
        $sqlist->length--;
}
//插入线性表
$sqlist=new Sqlist();
listInsert($sqlist,1,"Tau");
listInsert($sqlist,1,"Shihan");
//获取元素
$e="";
getElement($sqlist,2,$e);
echo $e."\n";//输出Tau
//删除元素
listDelete($sqlist,1,$e);
var_dump($sqlist);

相關教學:PHP影片教學

#

以上是【PHP學習】線性表的順序儲存結構原理分析以及程式碼範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除