順序儲存結構php實現
阿新 • • 發佈:2020-08-29
<?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]; }