1. 程式人生 > 實用技巧 >順序儲存結構php實現

順序儲存結構php實現

<?php
// php實現順序儲存
$arr = [1,3];
ListInsert($arr, 2, 6);
var_dump($arr);

$e = GetElem($arr, 2);
var_dump($e);

// 順序儲存結構的插入
function ListInsert(Array &$arr, int $i, int $e){
    $count = count($arr);
    if($i < 1 || $i > $count + 1){
        throw new Exception('資料非法');
    }
    // 將要插入位置後資料元素向後移動一位
    for($k = $count - 1; $k >= $i - 1; $k--){
        $arr[$k + 1] = $arr[$k];
    }
    // 將新元素插入
    $arr[$i - 1] = $e;
    ListDelete($arr, 2);
    var_dump($arr);
    // 總結:可以快速取,但插入和刪除需要移動大量元素
}   
// 順序儲存結構的刪除
function ListDelete(Array &$arr, int $i){
    $count = count($arr);
    if($i < 1 || $count === 0 || $i > $count){
        throw new Exception('資料非法');
    }
    // 刪除位置之後的元素向前移動一位
    for($k = $i; $k < $count; $k++){
        $arr[$k - 1] = $k;
    }

    unset($arr[$i - 1]);
}
// 順序儲存結構的獲取
function GetElem(Array $arr, int $i){
    $count = count($arr);
    if($i < 1 || $count === 0 || $i > $count){
        throw new Exception('資料非法');
    }
    return $arr[$i - 1];
}