資料結構詳解 棧與佇列

2021-10-05 02:54:51 字數 2172 閱讀 2605

棧是限定僅在表尾進行插入和刪除操作的線性表

佇列是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表

我們把允許插入和刪除的一端稱為棧頂(top),另一端稱為棧底(bottom),不含任何資料元素的棧稱為空棧。棧又稱為後進先出的線性表,簡稱lifo結構

棧的順序儲存結構及實現

<?php

namespace

;/**

* 順序儲存

* 棧*/class

arraystack

/** * 入棧操作

*/function

push

($value

)$this

->

top++

;$this

->

data

[$this

->

top]

=$value

;return

true;}

/** * 出棧操作

*/function

pop(

)$index

=$this

->

top;

$this

->

top--

;return

$this

->

data

[$index];

}function

isempty()

return

false;}

private

function

checklen()

return

true;}

function

list()

}

棧的鏈式儲存結構及實現
<?php

namespace

;use

;/**

* 鏈式儲存

* 棧* 鏈棧

*/class

linktable

/** * 在鏈棧新增元素

*/function

push

($data

)function

isempty()

return

false;}

/** * 刪除線性表指定位置的元素

*/function

pop(

)$elem

=$this

->

top;

//把要彈出的棧頂返回

$this

->

top=

$this

->

top-

>

next

;//把棧頂指向原來棧頂的下乙個元素

$this

->

len--

;return

$elem;}

}

佇列鍊錶的實現
<?php

namespace

;use

;/**

* 鏈式儲存

* 佇列

* 鏈佇列

*/class

linkqueue

/** * 在鏈佇列新增元素

*/function

push

($data

)function

isempty()

return

false;}

/** * 在鏈佇列彈出元素

*/function

pop(

)$elem

=$this

->

front

->

next

;//把要彈出的佇列頭返回

$this

->

front

->

next

=$elem

->

next

;//把佇列頭指向原來佇列頭的下乙個元素

$this

->

len--

;return

$elem;}

}

資料結構 棧與佇列

題目 1.編寫函式,採用鏈式儲存實現棧的初始化 入棧 出棧操作 2.編寫函式,採用順序儲存實現棧的初始化 入棧 出棧操作 3.編寫函式,採用鏈式儲存實現佇列的初始化 入隊 出隊操作 4.編寫函式,採用順序儲存實現佇列的初始化 入隊 出隊操作 5.編寫乙個主函式,在主函式中設計乙個簡單的選單,分別除錯...

資料結構 棧與佇列

棧的原則是後進先出,即插入與刪除元素均在棧頂進行。獲取棧頂元素 s.top 佇列的原則是先進先出,即插入資料在隊尾進行,刪除資料在隊頭進行。獲取隊頭元素 q.front 思路 用兩個棧,乙個棧用來進隊,乙個棧用來出隊,當資料進入佇列的時候,我們將其壓入乙個棧,當資料出隊的時候,我們將儲存在棧內的資料...

資料結構 棧與佇列

1.順序棧 基本操作 typedef int elemtype 定義 順序棧 typedef struct sqstack 判空 bool stackempty sqstack s 進棧 bool push sqstack s elemtype x 出棧操作 bool pop sqstack s e...