棧是限定僅在表尾進行插入和刪除操作的線性表
佇列是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表我們把允許插入和刪除的一端稱為棧頂(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...