自己手寫乙個queuelink

2022-03-20 12:34:00 字數 2871 閱讀 4572

**如下:

<?php 

class

queuelink

$this->length=$length;//

儲存佇列長度

$this->key_array=array_keys($list);//

儲存鍵$this->value_array=array_values($list);//

儲存值$this->reset_first_last_key();

$this->reset_first_last_value();

}/**

* 彈出第乙個元素

* @return array [返回第乙個元素的陣列]

*/public

function

out_left_first()

/*** 彈出最後乙個元素

* @return array [返回最後乙個元素的陣列]

*/public

function

out_right_last()

/*** 返回第乙個鍵

* @return int [返回第乙個鍵]

*/public

function

get_first_key()

/*** 返回第乙個值

* @return int [返回第乙個值]

*/public

function

get_first_value()

/*** 返回最後乙個鍵

* @return int [返回最後乙個鍵]

*/public

function

get_last_key()

/*** 返回最後乙個值

* @return int [返回最後乙個值]

*/public

function

get_last_value()

/*** 重置鍵值列表

*/public

function

reset_key_value_list()

/*** 重置第乙個和最後乙個key

*/public

function

reset_first_last_key()

/*** 重置第乙個和最後乙個值

*/public

function

reset_first_last_value()

/*** 重置鍵陣列

*/public

function

reset_key_array()

/*** 重置值陣列

*/public

function

reset_value_array()

/*** 將佇列的資料長度進行自增

* @param int $num [對自減做自增]

*/public

function list_length_add($num=1)

/*** 將佇列的資料長度進行自減

* @param int $num [對自減做處理]

*/public

function list_length_desc($num=1)

/*** 從陣列中根據key返回資料

* @param string $key [要獲取的key]

* @param bool $is_delete [是否要從佇列中刪除]

* @return array|bool [返回找到的陣列]

*/public

function get_data_by_key($key='',$is_delete=true

)

//如果在key列表中

$value=$this->value_array[$find_position

];

if($is_delete

)

return

compact("key","value");

}/**

* 根據找到的位置移除該元素

* @param int $find_position [查詢到的位置]

*/private

function remove_from_list_by_find_position($find_position=0)

elseif($find_position==$this->length-1)

else

}}$list=array

( "id"=>"first",

"name"=>"second",

"pid"=>"third",

"content"=>"fourth",

"title"=>"fifth",);

$obj = new queuelink($list);//

例項化佇列

//var_dump($obj);

$first = $obj->out_left_first();//

左邊第乙個

$last = $obj->out_right_last();//

右邊最後乙個

//按照鍵取出某個資料

$key="pid";

$value=$obj->get_data_by_key($key,true

);var_dump($first

);var_dump($last

);var_dump($value

);var_dump($obj

);?>

效果如圖:

自己動手寫乙個單鏈表

單向鍊錶 單鏈表 是鍊錶的一種,其特點是鍊錶的鏈結方向是單向的,對鍊錶的訪問要通過順序讀取從頭部開始。鏈式儲存結構的線性表將採用一組任意的儲存單元存放線性表中的資料元素。由於不需要按順序儲存,鍊錶在插入 刪除資料元素時比順序儲存要快,但是在查詢乙個節點時則要比順序儲存要慢 使用鏈式儲存可以克服順序線...

自己動手寫乙個單鏈表

單向鍊錶 單鏈表 是鍊錶的一種,其特點是鍊錶的鏈結方向是單向的,對鍊錶的訪問要通過順序讀取從頭部開始。鏈式儲存結構的線性表將採用一組任意的儲存單元存放線性表中的資料元素。由於不需要按順序儲存,鍊錶在插入 刪除資料元素時比順序儲存要快,但是在查詢乙個節點時則要比順序儲存要慢 使用鏈式儲存可以克服順序線...

自己動手寫乙個單鏈表

單向鍊錶 單鏈表 是鍊錶的一種,其特點是鍊錶的鏈結方向是單向的,對鍊錶的訪問要通過順序讀取從頭部開始。鏈式儲存結構的線性表將採用一組任意的儲存單元存放線性表中的資料元素。由於不需要按順序儲存,鍊錶在插入 刪除資料元素時比順序儲存要快,但是在查詢乙個節點時則要比順序儲存要慢 使用鏈式儲存可以克服順序線...